5000x faster CRDTs: An Adventure in Optimization (CRDTs go brrr)
Some researchers in France put together a comparison showing lots of ways you could implement realtime collaborative editing (like Google Docs). They implemented lots of algorithms - CRDTs and OT algorithms and stuff. And they benchmarked them all to see how they perform. (Cool!!) Some algorithms worked reasonably well. But others took upwards of 3 seconds to process simple paste operations from their editing sessions. Yikes! Which algorithm was that? Well, this is awkward but .. it was mine. I mean, I didn't invent it - but it was the algorithm I was using for ShareJS. The algorithm we used for Google Wave. The algorithm which - hang on - I knew for a fact didn't take 3 seconds to process large paste events. Whats going on here? I took a closer look at the paper. In their implementation when a user pasted a big chunk of text (like 1000 characters), instead of creating 1 operation with 1000 characters, their code split the insert into 1000 individual operations. And each of those opera
CRDTs go brrr 5000x faster CRDTs: An Adventure in Optimization July 31 2021 A few years ago I was really bothered by an academic paper. Some researchers in France put together a comparison showing lots of ways you could implement realtime collaborative editing (like Google Docs). They implemented lots of algorithms - CRDTs and OT algorithms and stuff. And they benchmarked them all to see how they perform. (Cool!!) Some algorithms worked reasonably well. But others took upwards of 3 seconds to process simple paste operations from their editing sessions. Yikes! Which algorithm was that? Well, th
Explore this link on the map →saved by
related reading
- An Interactive Intro to CRDTs | jakelazaroff.comjakelazaroff.com
- Peritext: A CRDT for Rich-Text Collaborationinkandswitch.com
- CRDT: Text Buffer - Made by Evanmadebyevan.com
- Building a BFT JSON CRDTjzhao.xyz
- NYSRGnotes.ekzhang.com
- CRDT optimizationsbartoszsypytkowski.com
- abseil / Performance Hintsabseil.io
- Data Laced with History: Causal Trees & Operational CRDTs — Archagon Was Herearchagon.net
- CRDT optimizationsbartoszsypytkowski.com
- cbloom rantscbloomrants.blogspot.com
- yjs/INTERNALS.md at main · yjs/yjs · GitHubgithub.com
- You don't need a CRDT to build a collaborative experience | Hacker Newsnews.ycombinator.com