News for hackers. Stuff that matters.
Re:Faster CRDTs (2021) by kiitos on Tuesday August 27, 2024 @06:35PM (#41373978)
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.
Re:Faster CRDTs (2021) by yazaddaruvala on Tuesday August 27, 2024 @10:10PM (#41375324)
> CRDT literally means Conflict-free Replicated Data Type.

Git could be "conflict-free" with a simple `rand(ours, theirs)`.

It would be useless, but technically "conflict-free". Is the addition or removal of that rand function really, pragmatically the difference in the answer to "what is a CRDT?"

Re:Faster CRDTs (2021) by Groxx on Wednesday August 28, 2024 @12:00AM (#41375820)
>Git could be "conflict-free" with a simple `rand(ours, theirs)`.

This would still be order dependent, and different replicas would not converge.

Git is unambiguously not a CRDT, and adding extra rules on top of git to try to turn it into one doesn't make git one, even if you succeed. You can do that with a pencil and paper, but that doesn't make paper a CRDT.

Re:Faster CRDTs (2021) by jakelazaroff on Wednesday August 28, 2024 @12:20PM (#41381198)
`rand` wouldn’t work because all peers must reach the same state without coordination.
Re:Faster CRDTs (2021) by kiitos on Wednesday August 28, 2024 @05:25PM (#41384565)
This is definitely not true.

Are you open to understanding why this isn't true? If so, I'm happy to help you come to the correct understanding; please ask whatever questions are necessary. Otherwise, then, well, okay!

Re:Faster CRDTs (2021) by LAC-Tech on Tuesday August 27, 2024 @11:43PM (#41375722)
There are CDTS that have "multiple versions", which look an awful lot like conflicts to me, ie, the Multi-Value Register in this paper:

https://inria.hal.science/inria-00555588/

Re:Faster CRDTs (2021) by kiitos on Wednesday August 28, 2024 @04:43PM (#41384137)
Multi-value registers are CRDTs for sure. Conflict-free doesn't mean that values can't have concurrent histories (or, as you say, "multiple versions") -- it means that the merge operation always succeeds.
Re:Faster CRDTs (2021) by LAC-Tech on Wednesday August 28, 2024 @09:07PM (#41386196)
What's the definition of a conflict, then? Equations welcome.
Re:Faster CRDTs (2021) by kiitos on Thursday August 29, 2024 @05:13PM (#41395356)
Feel free to read up on CRDTs; I'm confident this will answer your question.

The short answer is, roughly, that a conflict is a discrepancy in state which cannot be mechanically resolved.

Re:Faster CRDTs (2021) by LAC-Tech on Friday August 30, 2024 @12:00AM (#41397618)
I've read a few CRDT papers. Perhaps you could name a specific one.