CRDT: Fractional Indexing - Made by Evan
Collaborative peer-to-peer applications sometimes need to operate on sequences of objects with a consistent order across all peers. For example, a peer-to-peer photo album application might need to sync the order in which photos appear in an album. The algorithm presented here is one way to do this. It comes from a family of algorithms called CRDTs, which I will not describe here. Unlike my original article about this technique, the algorithm presented here uses random offsets to avoid requiring a central server, and works in true peer-to-peer scenarios. Compared to tree-based indexing, fractional indexing is simpler but doesn't prevent interleaving of concurrently-inserted runs, which makes it inappropriate for textual data. The algorithm: Each object is given a fractional position between 0 and 1 (exclusive). The object order is determined by sorting the objects by their positions (using object id as a tie-breaker). To insert an object between two other objects, set its position to a
CRDT: Fractional Indexing - Made by Evan ← Back to the algorithm list Published on November 12th, 2022 Collaborative peer-to-peer applications sometimes need to operate on sequences of objects with a consistent order across all peers. For example, a peer-to-peer photo album application might need to sync the order in which photos appear in an album. The algorithm presented here is one way to do this. It comes from a family of algorithms called CRDTs , which I will not describe here. Unlike my original article about this technique , the algorithm presented here uses random offsets to avoid
Explore this link on the map →related reading
- Building a BFT JSON CRDTjzhao.xyz
- An Interactive Intro to CRDTs | jakelazaroff.comjakelazaroff.com
- CRDT: Text Buffer - Made by Evanmadebyevan.com
- CRDTs go brrrjosephg.com
- Peritext: A CRDT for Rich-Text Collaborationinkandswitch.com
- CRDT optimizationsbartoszsypytkowski.com
- Actual: Using CRDTs in the Wildarchive.jlongster.com
- Data Laced with History: Causal Trees & Operational CRDTs — Archagon Was Herearchagon.net
- Fugue: A Basic List CRDT - Matthew Weidnermattweidner.com
- Designing Data Structures for Collaborative Apps - Matthew Weidnermattweidner.com
- Conflict-free replicated data type - Wikipediaen.wikipedia.org
- About CRDTs • Conflict-free Replicated Data Typescrdt.tech