草庐IT

这一次,彻底搞懵 CRDT

我是前端西瓜哥,今天我们来简单入门一下CRDT。CRDT是什么?CRDT,全称为conflict-freereplicateddatatype(无冲突复制数据类型),它是一种数据类型,或者说是方案,确保在网络中的不同副本最后数据保持一致的,可以用协同编辑领域。CRDT在2011年在论文中被正式提出,虽相比OT算法(1989年)起步晚了很长的时间,但实现难度低很多,且出现了高性能的CRDT库Y.js,越来越多产品选择使用CRDT来实现协同编辑功能。CRDT有以下特性:每个客户端可独自操作副本,即支持并发,不需要和其他副本协同沟通。这是一种乐观复制(Optimisticreplication)的策

初探富文本之CRDT协同实例

初探富文本之CRDT协同实例在前边初探富文本之CRDT协同算法一文中我们探讨了为什么需要协同、分布式的最终一致性理论、偏序集与半格的概念、为什么需要有偏序关系、如何通过数据结构避免冲突、分布式系统如何进行同步调度等等,这些属于完成协同所需要了解的基础知识,实际上当前有很多成熟的协同实现,例如automerge、yjs等等,本文就是关注于以yjs为CRDT协同框架来实现协同的实例。描述接入协同框架实际上并不是一件简单的事情,当然相对于接入OT协同而言接入CRDT协同已经是比较简单的了,因为我们只需要聚焦于数据结构的使用就好,而不需要对变换有过多的关注。当前我们更加关注的是Op-basedCRDT

初探富文本之CRDT协同实例

初探富文本之CRDT协同实例在前边初探富文本之CRDT协同算法一文中我们探讨了为什么需要协同、分布式的最终一致性理论、偏序集与半格的概念、为什么需要有偏序关系、如何通过数据结构避免冲突、分布式系统如何进行同步调度等等,这些属于完成协同所需要了解的基础知识,实际上当前有很多成熟的协同实现,例如automerge、yjs等等,本文就是关注于以yjs为CRDT协同框架来实现协同的实例。描述接入协同框架实际上并不是一件简单的事情,当然相对于接入OT协同而言接入CRDT协同已经是比较简单的了,因为我们只需要聚焦于数据结构的使用就好,而不需要对变换有过多的关注。当前我们更加关注的是Op-basedCRDT