A Conflict-Free Replicated JSON Datatype
arXiv:1608.03960 · doi:10.1109/TPDS.2017.2697382
Abstract
Many applications model their data in a general-purpose storage format such as JSON. This data structure is modified by the application as a result of user input. Such modifications are well understood if performed sequentially on a single copy of the data, but if the data is replicated and modified concurrently on multiple devices, it is unclear what the semantics should be. In this paper we present an algorithm and formal semantics for a JSON data structure that automatically resolves concurrent modifications such that no updates are lost, and such that all replicas converge towards the same state (a conflict-free replicated datatype or CRDT). It supports arbitrarily nested list and map types, which can be modified by insertion, deletion and assignment. The algorithm performs all merging client-side and does not depend on ordering guarantees from the network, making it suitable for deployment on mobile devices with poor network connectivity, in peer-to-peer networks, and in messaging systems with end-to-end encryption.
References in corpus (1)
Cited by in corpus (10)
- Verifying Strong Eventual Consistency in Distributed Systems
- Rearchitecting Kubernetes for the Edge
- FabricCRDT: A Conflict-Free Replicated Datatypes Approach to Permissioned Blockchains
- Analysis of the Matrix Event Graph Replicated Data Type
- OrderlessChain: Do Permissioned Blockchains Need Total Global Order of Transactions?
- Extending JSON CRDTs with Move Operations
- Byzantine Eventual Consistency and the Fundamental Limits of Peer-to-Peer Databases
- UPSS: a User-centric Private Storage System with its applications
- Collaborative Text Editing with Eg-walker: Better, Faster, Smaller
- The Art of the Fugue: Minimizing Interleaving in Collaborative Text Editing