Expand description
Implements Tree Conflict-Free Replicated Data Type (CRDT).
For usage/examples, see: examples/demo.rs tests/tree.rs
This code aims to be an accurate implementation of the tree crdt described in:
“A highly-available move operation for replicated trees and distributed filesystems” [1] by Martin Klepmann, et al.
[1] https://martin.kleppmann.com/papers/move-op.pdf
For clarity, data structures in this implementation are named the same as in the paper (State, Tree) or close to (OpMove –> Move, LogOpMove –> LogOp). Some are not explicitly named in the paper, such as TreeId, TreeMeta, TreeNode, Clock.
Structs§
- Clock
- Implements a
Lamport Clockconsisting of anActorand an integer counter. - LogOp
Move - Implements
LogOpMove, a log entry used byState - OpMove
- Implements
OpMove, the only way to manipulate tree data. - State
- Holds Tree CRDT state and implements the core algorithm.
- Tree
- Implements
Tree, a set of triples representing current tree structure. - Tree
Node TreeNodeis a node that is stored in aTree.- Tree
Replica TreeReplicaholds treeStateplus lamport timestamp (actor + counter)