Chronofold: a data structure for versioned text

02/21/2020
by   Victor Grishchenko, et al.
0

Collaborative text editing and versioning is known to be a tough topic. Diffs, OT and CRDT are three relevant classes of algorithms which all have their issues. CRDT is the only one that works correctly and deterministically in a distributed environment, at the unfortunate cost of data structure complexity and metadata overheads. A chronofold is a data structure for editable linear collections based on the Causal Tree CRDT model. A chronofold maintains time-ordering and space-ordering of its elements. Simply put, a it is both a log and a text at the same time, which makes it very convenient for text versioning and synchronization. Being a simple array-based data structure with O(1) insertions, chronofold makes CRDT overheads acceptable for many practical applications.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset