Maybe better CRDTs for object_table, version_table and block_ref_table? #19

Closed
opened 2020-11-21 15:01:01 +00:00 by lx · 1 comment
Owner

(As started in #18)

But maybe not.

object_table: complex reconciliation logic, better suited for a custom CRDT.

version_table: we would need a crdt for a simple map, and not an LWWMap. Also we need to make it clear that Map CRDTs are ordered (they are, because the data is in fact just stored in a vec, it isn't even a btree or what), because the block list relies on the fact that blocks are ordered...

block_ref_table: the only crdt is a boolean, we could use crdt::Bool for that but then we would have to add a migration, and the logic is so simple it can't be messed up so there is no advantage of using crdt::Bool instead of just a bool

(As started in #18) But maybe not. object_table: complex reconciliation logic, better suited for a custom CRDT. version_table: we would need a crdt for a simple map, and not an LWWMap. Also we need to make it clear that Map CRDTs are ordered (they are, because the data is in fact just stored in a vec, it isn't even a btree or what), because the block list relies on the fact that blocks are ordered... block_ref_table: the only crdt is a boolean, we could use crdt::Bool for that but then we would have to add a migration, and the logic is so simple it can't be messed up so there is no advantage of using crdt::Bool instead of just a bool
Author
Owner

Mostly done in dev-0.2

Mostly done in `dev-0.2`
lx closed this issue 2021-03-10 16:47:46 +00:00
lx added this to the 0.2 milestone 2021-03-10 16:49:05 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Deuxfleurs/garage#19
No description provided.