有人能简单地解释一下操作转换和CRDT之间的主要区别吗?
据我所知,两者都是算法,允许分布式系统不发生冲突地在不同节点上汇聚数据。
在哪种情况下会使用哪种算法? 据我所知,OT主要用于文本,而CRDT更通用,可以处理更高级的结构,对吗?
CRDT比OT更强大吗?
我问这个问题是因为我正在尝试看如何为HTML文档实现协作编辑,并不确定应该先从哪方面入手。我看到了ShareJS项目,以及他们在浏览器上支持富文本协作的尝试,但在ShareJS中我并没有看到任何尝试使用CRDT的迹象。
我们也知道Google Docs使用OT,并且它在实时编辑富文档方面工作得非常好。 Google选择使用OT是因为当时CRDT并不是很出名吗?或者今天使用OT也是一个好选择吗?
我还对其他用例感兴趣,例如在数据库上使用这些算法。Riak似乎使用CRDT。OT是否也可用于同步数据库的节点,并成为Paxos/Zab/Raft的替代品?