3 ms·
Prolly Trees are Merkle-fied B-trees, essentially. I am working on related things[r], using Merkle-fied LSM trees. Ink&Switch do things that very closely resem
by gritzko 1y ago
Prolly Trees are Merkle-fied B-trees, essentially.
I am working on related things[r], using Merkle-fied LSM trees. Ink&Switch do things that very closely resemble Merklefied LSM[h], although they are not exactly LSM. I would not be surprised if someone else is doing something similar in parallel. The tricks are very similar to Prollies, but LSM instead of B-trees.
That reminds me my younger years when I "invented" the Causal Tree[c] data structure. It was later reinvented as RGA (Replicated Growable Array [a]), Timestamped Insertion Tree and, I believe, YATA. All seem to be variations of a very very old revision control data structure named "weave"[w].
Recently I improved CT to the degree that warranted a new algorithm name (DISCONT [d]). Fundamentally the same, but much cheaper. Probably, we should see all these "inventions" as improvements. All the Computer Science basics seem to have been invented in the 70s, 80s the latest.
[w]: https://docs.rs/weave/latest/weave/ https://docs.rs/weave/latest/weave/
[r]: https://github.com/gritzko/librdx https://github.com/gritzko/librdx
[d]: https://github.com/gritzko/go-rdx/blob/main/DISCOUNT.md https://github.com/gritzko/go-rdx/blob/main/DISCOUNT.md
[h]: https://www.inkandswitch.com/keyhive/notebook/05/ https://www.inkandswitch.com/keyhive/notebook/05/
[c]: https://dl.acm.org/doi/10.1145/1832772.1832777 https://dl.acm.org/doi/10.1145/1832772.1832777
[a]: https://pages.lip6.fr/Marc.Shapiro/papers/RR-7687.pdf https://pages.lip6.fr/Marc.Shapiro/papers/RR-7687.pdf links to the authors of RGA
- lifty 1y agoThis is the first time I hear about librdx and Chotki, very cool projects. I skimmed over both projects but I haven't seen much written about conflict resolution. Does it mean that last write wins based on version vectors?
- gritzko 1y agoI am a (co)author. Conflict resolution is CRDT in all cases. FIRST (Float Int Reference String Term): Last-Write-Wins based on the timestamp, PLEX: - Tuples: per-entry LWW or recursive, - Linear: DISCONT (CT/RGA type), - Eulerian: per-key LWW or recursive, - Multiplexed (version vectors, counters): per-author LWW or recursive.