论文标题
合作:一个灵活而表现的CRDT协作框架
Collabs: A Flexible and Performant CRDT Collaboration Framework
论文作者
论文摘要
协作框架是一个分布式系统,可作为协作应用程序的数据层。无冲突复制的数据类型(CRDT)是实施协作框架的有希望的理论技术。但是,现有的框架是不灵活的:它们通常是研究论文的一次性实施,或者仅允许一组受限的CRDT语义,并且不允许使用特定于应用的优化。到目前为止,还没有一般框架可以让程序员混合,匹配和修改CRDT。 我们通过COMPORS解决此问题,这是一个基于CRDT的协作框架,使程序员可以从抓手或编写现有的构建块实施自己的CRDT。协作优先考虑语义灵活性和性能灵活性:它允许任意特定的CRDT行为和优化,同时仍然提供最终的一致性。我们通过示例应用程序和CRDT实现来演示合作的功能和编程模型。然后,我们证明,与现有的CRDT Frameworks和Google Docs不同,使用COMPORS内置CRDT的协作丰富文本编辑器可以扩展到100多个同时用户。与流行的操作转换框架相比,合作还具有较低的端到端延迟和服务器CPU使用情况,并且CRDT Metadata开销。
A collaboration framework is a distributed system that serves as the data layer for a collaborative app. Conflict-free Replicated Data Types (CRDTs) are a promising theoretical technique for implementing collaboration frameworks. However, existing frameworks are inflexible: they are often one-off implementations of research papers or only permit a restricted set of CRDT semantics, and they do not allow app-specific optimizations. Until now, there was no general framework that lets programmers mix, match, and modify CRDTs. We solve this with Collabs, a CRDT-based collaboration framework that lets programmers implement their own CRDTs, either from-scratch or by composing existing building blocks. Collabs prioritizes both semantic flexibility and performance flexibility: it allows arbitrary app-specific CRDT behaviors and optimizations, while still providing strong eventual consistency. We demonstrate Collabs's capabilities and programming model with example apps and CRDT implementations. We then show that a collaborative rich-text editor using Collabs's built-in CRDTs can scale to over 100 simultaneous users, unlike existing CRDT frameworks and Google Docs. Collabs also has lower end-to-end latency and server CPU usage than a popular Operational Transformation framework, with acceptable CRDT metadata overhead.