ABSTRACT
Principles of eventual consistency are normally applied in large-scale distributed systems. I report experiences applying EC in Web app development. Citrea is a collaborative rich text editor employing the Causal Trees[4] technology of concurrency/version control (note: CT is not an OT flavor). CT employs symbol ids and trees and, generally, belongs to the same family as WOOT, Logoot or Treedoc [1--3]. CT makes the ids-and-trees approach production-practical by limiting itself to simple and lightweight algorithms and data structures. Swarm is a JavaScript object sync library that works in the browser, in real time. Swarm fully employs client-side storage and works well under intermittent connectivity. Swarm employs "pure" op-based model, although I find that state- vs op-based separation is rather bogus in practice. Our top finding is a specifier, a serialized event description format that enables straightforward operation storage, caching and exchange.
- G. Oster et al. Data consistency for P2P collaborative editing. CSCW'2006, Banff, Canada, 2006 Google ScholarDigital Library
- M. Shapiro and N. Preguia, Designing a commutative replicated data type INRIA, INRIA Tech report RR-6320, 2007Google Scholar
- Stphane Weiss, Pascal Urso and Pascal Molli. Logoot: a P2P collaborative editing system. INRIA Tech Report N6713, 2008Google Scholar
- Victor Grishchenko. Deep hypertext with embedded revision control implemented in regular expressions. WikiSym'2010, Gdansk, Poland Google ScholarDigital Library
- Carlos Baquero, Paulo Sergio Almeida, and Ali Shoker. Making Operation-based CRDTs Operation-based. PaPEC'2014, Amsterdam, Netherlands Google ScholarDigital Library
- Mihai Letia, Nuno Preguia and Marc Shapiro. CRDTs: Consistency without concurrency control. INRIA N6956, 2009Google Scholar
- Marc Shapiro et al. Conflict-free replicated data types. SSS'2011, Grenoble, France, 2011 Google ScholarDigital Library
Index Terms
- Citrea and swarm: partially ordered op logs in the browser: implementing a collaborative editor and an object sync library in JavaScript
Recommendations
Composing and decomposing op-based CRDTs with semidirect products
Operation-based Conflict-free Replicated Data Types (CRDTs) are eventually consistent replicated data types that automatically resolve conflicts between concurrent operations. Op-based CRDTs must be designed differently for each data type, and current ...
Having your cake and eating it too: combining strong and eventual consistency
PaPEC '14: Proceedings of the First Workshop on Principles and Practice of Eventual ConsistencyGiven the limitations imposed on distributed systems that are necessary to maintain strong consistency guarantees there is a growing interest in relaxed consistency models. Such models are often sufficient for particular applications, but allow more ...
Comments