[HN Gopher] Faster CRDTs (2021)
___________________________________________________________________
Faster CRDTs (2021)
Author : bpierre
Score : 125 points
Date : 2024-08-27 20:47 UTC (2 hours ago)
(HTM) web link (josephg.com)
(TXT) w3m dump (josephg.com)
| fredrikholm wrote:
| I remember stumbling over this post a few years ago. Really
| entertaining post, one of my favorites in recent years.
| anaclet0 wrote:
| IIRC the title was CRDTs go brrr
| luke-stanley wrote:
| Could be good to have the date put with the title?
| gchamonlive wrote:
| July 31 2021
| dang wrote:
| Added above.
| JohnDeHope wrote:
| Yeah, new rule: I don't believe anything in a published
| scientific paper until it has been independently verified for the
| third time. I don't even want to _hear_ about it, before then,
| unless I read the journal the original (or second) paper was
| published in. What I 'd really like, and would subscribe to even
| as a lay person, is the JOURNAL OF STUDIES WHOSE FINDINGS HAVE
| BEEN SUCCESSFULLY REPRODUCED FOR THE THIRD TIME. I'd pay for a
| subscription to that.
| lylejantzi3rd wrote:
| Me too.
| kirubakaran wrote:
| - https://news.ycombinator.com/item?id=28017204 (3 years ago, 151
| comments)
|
| - https://news.ycombinator.com/item?id=33903563 (2 years ago, 22
| comments)
|
| - https://news.ycombinator.com/item?id=41372833 (this post)
|
| - https://news.ycombinator.com/item?id=41373288 (this comment)
| dang wrote:
| Thanks! Macroexpanded:
|
| _5000x faster CRDTs: An adventure in optimization (2021)_ -
| https://news.ycombinator.com/item?id=33903563 - Dec 2022 (22
| comments)
|
| _Faster CRDTs: An Adventure in Optimization_ -
| https://news.ycombinator.com/item?id=28017204 - July 2021 (151
| comments)
| IshKebab wrote:
| (2021) and Automerge's Rust implementation seems to have landed
| so it would be interesting to see an updated benchmark.
| josephg wrote:
| Author here. Yjs has also been rewritten in rust (yrs). And
| I've got a totally different approach to solving this problem
| too.
|
| It would definitely be good to update the benchmarks.
| Everything has gotten faster.
| jzelinskie wrote:
| What are some real world apps using CRDTs that have really good
| experiences?
|
| IIRC Notion was supposed to be one of them but realistically
| taking notes with two people in Notion is almost unusable
| compared to Google Docs.
| danielvaughn wrote:
| Figma uses a CRDT-ish approach. I'm working on one at the
| moment, but it'll be a while before it's publicly available. At
| the moment, I'm using Loro: https://loro.dev
| spacecadet wrote:
| Not a public high bandwidth example, but a consulting team I
| was on implemented CRDTs in a private mobile app used for a
| compliance documentation use case. More of a precaution, the
| actual number of end-users editing a record at any given time
| is expected to be 1, but while reviewing their system, we found
| that the clients system can support multiple and sometimes
| their employees don't communicate/follow procedures. We first
| tried to convince them to make changes on their end, but their
| development team straight up refused.
| yazaddaruvala wrote:
| In practice, Git
|
| Some CRDT purists would say "its not perfectly conflict free so
| its not a CRDT".
|
| Sure[0], but for the rest of us that are pragmatic about best
| effort conflict resolution Git is likely the most successful
| CRDT application.
|
| [0] https://en.wikipedia.org/wiki/No_true_Scotsman
| kiitos wrote:
| CRDT literally means Conflict-free Replicated Data Type.
| Expecting CRDTs to be conflict-free isn't purism, it's simple
| validation. Git is, inarguably, not a CRDT.
| vlovich123 wrote:
| This comes up every time but there's three criterion for
| CRDTs and git fails 2 of them. Even ignoring the requirement
| for automatic conflict resolution (which git can't meet since
| automatic resolution fails as a matter of course) and
| ignoring that the conflict resolution algorithm has to be
| part of the data type (it's not), it fails the requirement
| that separate different copies must eventually converge when
| brought online but that's demonstrably false as people may
| use different conflict resolution mechanisms AND the commit
| graph of a resolved conflict may itself then be different
| resulting in different histories from the process of brining
| git online.
|
| This is because the commit graph itself isn't CRDT. If I
| commit A and then B but someone's clone only has B applied,
| you can't synchronize even automatically; different git
| histories don't resolve in any way automatically at all and
| once you pick a solution manually your copy will not have the
| same history as anyone else that tries to redo your
| operations.
|
| No true Scotsman doesn't apply here because there is a very
| precise definition of what makes a CRDT that is a clear
| delineating line.
| Groxx wrote:
| [delayed]
| iced_beverage wrote:
| The code editor Zed uses them for collaboration. It was
| discussed in a Developer Voices episode -
| https://youtu.be/fV4aPy1bmY0?si=0O6fCmK8NziFf9Hi
| maccard wrote:
| Doesn't google docs use crdt?
| surfmike wrote:
| I believe it uses Operational Transforms
___________________________________________________________________
(page generated 2024-08-27 23:00 UTC)