Merge operator based CRDT #3740
gritzko
started this conversation in
Show and tell
Replies: 1 comment
-
|
OK, this will work with pebbledb easily. I checked badger, its merge iterator is a bit simplistic. Not such a big deal to upgrade it though, if upstream would accept the changes. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Did you consider using the merge operator of the underlying store to implement the CRDT logic? That would be the "native" mode for the database, as opposed to the "emulated" mode of storing a chain of updates. Effectively, any LSM stores a chain of updates already.
You may see Chotki, an experimental database on top of the Pebble store.
It uses RDX CRDTs, although the version is a bit dated.
The best part, all the compaction logic happens at the storage engine level, natively.
Either way, guys use it in an actual high-load setting, a globally distributed usage/billing/limits database.
I made the first version of Chotki back in the day. Later, the story developed behind closed doors, it is not a proper open-source project as of now. Anyway, AMA.
Beta Was this translation helpful? Give feedback.
All reactions