1

分布式一致性CRDTs的几个框架库推荐 - josephg

 3 years ago
source link: https://www.jdon.com/57030
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
分布式一致性CRDTs的几个框架库推荐 - josephg

CRDT (无冲突复制数据类型)是一种花哨的编程工具,可以让多个用户同时编辑相同的数据。它们让您可以毫无延迟地在本地工作。(您甚至不必在线)。当您与其他用户和设备同步时,一切都会神奇地同步并最终保持一致。CRDT 最好的部分是它们可以完成所有这些工作,甚至不需要云中的中央计算机来监视和控制一切。

  • 如果您今天要构建基于文档的协作应用程序,则应该使用Yjs。Yjs 具有稳定的性能、低内存使用和强大的支持。如果您需要帮助在您的应用程序中实现 Yjs,Kevin Jahns 有时会接受金钱以换取帮助将 Yjs 集成到各种应用程序中。他用它来资助全职从事 Yjs(和相关工作)的工作。Yjs 已经运行得很快,很快它应该会变得更快。
  • Automerge(一个流行的 CRDT,由一个流行的研究人员编写)需要将近 5 分钟才能运行。automerge 团队也很棒。我和他们就这些问题进行了一些很好的对话。他们将性能作为 2021 年的第一期,并计划使用许多这些技巧来加快自动合并。当您阅读本文时,它可能已经快得多了。
  • 有一个新的实现:Diamond,可以在 56 毫秒内处理相同的编辑跟踪。那是 0.056 秒,快了 5000 多倍。这是我从优化工作中获得的最大速度提升 。
  • 如果你想要数据库语义而不是文档语义,据我所知,还没有人在 CRDT 之上做得很好。您可以使用ShareDB,它使用 OT。我多年前编写了 ShareDB,它使用良好、维护良好并经过实战测试。

Diamond真的很快,但在我与 Yjs 和 Automerge 具有同等功能之前还有很多工作要做。一个好的 CRDT 库除了操作速度之外还有很多。CRDT 库还需要支持二进制编码、网络协议、非列表数据结构、存在(光标位置)、编辑器绑定等。在撰写本文时,Diamond几乎没有做这些。

展望未来,我对Redwood感到兴奋——它支持 P2P 编辑并计划全面支持 CRDT。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK