什么时候使用CRDT之类的东西代替paxos或Raft是个好主意?
最佳答案
如果可以使用CRDT之类的方法,请这样做。您应该获得更好的性能。它还启用了有趣的用例,例如脱机工作然后再合并。但是,并非总能设计出让CRDT为您服务的东西。在这种情况下,paxos可以为您解决难题。
但是,即使您决定使用paxos,通常也应该限制直接通过paxos算法完成的工作量。出于性能原因,您希望保留paxos以便进行必要的操作(例如主选举),然后让复制的主设置处理大多数决策。 (在高吞吐量环境中,主服务器可能会执行某些任务,例如将特定分片的委托(delegate)责任委派给特定子节点,这些子节点会相互复制。不要让主节点成为瓶颈...)
就是说,声称自己会挥动paxos的魔杖要比实际练习要容易得多。鉴于此,您可能会发现http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/archive/chubby-osdi06.pdf是对现实paxos实现可能遇到的困难的有趣描述。
关于scalability - 无冲突复制数据类型(CRDT)与Paxos或Raft,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11254318/