E ff ortless Eventual Consistency Gossip, CRDTs, and Weave Mesh weave works -
Outline • Theory • Practice • Extension weave works -
Outline • Theory Gossip CRDT • Practice Weave Mesh Weave Net • Extension User data types Strong consistency weave works -
Motivating Example 0 Increment-only counter weave works -
Increment Motivating Example 0 Increment-only counter weave works -
Increment Motivating Example 1 Increment-only counter weave works -
Motivating Example 1 Increment-only counter weave works -
Increment Motivating Example 1 Increment-only counter weave works -
Increment Motivating Example 2 Increment-only counter weave works -
Motivating Example 2 Increment-only counter weave works -
Increment Increment Motivating Example 2 Increment-only counter Increment Increment weave works -
Increment Increment Motivating Example ☹ Increment-only counter Increment Increment weave works -
Increment Increment Motivating Example 😰 Increment-only counter Increment Increment weave works -
Increment Increment Motivating Example 2 Increment-only counter Increment Increment weave works -
Increment Increment Motivating Example 2 Increment-only counter Increment Increment weave works -
Increment Increment Motivating Example 3 Increment-only counter Increment Increment weave works -
Increment Motivating Example 3 Increment-only counter Increment Increment weave works -
Increment Motivating Example 3 Increment-only counter Increment Increment weave works -
Increment Motivating Example 4 Increment-only counter Increment Increment weave works -
Increment Motivating Example 4 Increment-only counter Increment weave works -
Increment Motivating Example 4 Increment-only counter Increment weave works -
Increment Motivating Example 5 Increment-only counter Increment weave works -
Increment Motivating Example 5 Increment-only counter weave works -
Increment Motivating Example 5 Increment-only counter weave works -
Increment Motivating Example 6 Increment-only counter weave works -
Motivating Example 6 Increment-only counter weave works -
Motivating Example 6 Increment-only counter weave works -
weave works -
weave works -
1x 1x weave works -
weave works -
1x weave works -
1x weave works -
☹ ☹ ☹ ☹ ☹ ☹ ☹ 1x weave works -
Theory: Gossip weave works -
Gossip solves… • Information dissemination in irregular networks • Unreliable links • Dynamic, changing topologies weave works -
Gossip requires… • Periodic and pairwise communication • Frequency of interaction ≪ individual message latency • Redundancy in delivered information weave works -
Gossip requires… • Periodic and pairwise communication • Frequency of interaction ≪ individual message latency • Redundancy in delivered information weave works -
Gossip modes • Push — if we know X, every round, tell a peer about X • Pull — every round, ask a peer about all possible X • Push/pull — push for some cycles, then pull for some cycles weave works -
Rumor weave works -
Rumor weave works -
Rumor weave works -
Rumor weave works -
Rumor weave works -
Rumor weave works -
Anti-entropy weave works -
Anti-entropy weave works -
Anti-entropy weave works -
Anti-entropy weave works -
Anti-entropy gossip weave works -
Aggregate weave works -
0 0 0 Motivating Example 0 0 0 Increment-only counter 0 0 0 weave works -
0 0 0 Motivating Example 0 0 0 Increment-only counter 0 0 0 weave works -
Increment 0 0 0 Motivating Example 0 0 0 Increment-only counter 0 0 0 weave works -
Increment 1 0 0 Motivating Example 0 0 0 Increment-only counter 0 0 0 weave works -
1 0 0 Motivating Example 0 0 0 Increment-only counter 0 0 0 weave works -
t=1 1 0 0 Motivating Example 0 0 0 Increment-only counter 0 0 0 weave works -
t=2 1 1 0 Motivating Example 0 0 0 Increment-only counter 0 0 0 weave works -
t=3 1 1 0 Motivating Example 1 1 0 Increment-only counter 0 0 0 weave works -
t=4 1 1 0 Motivating Example 1 1 0 Increment-only counter 1 1 0 weave works -
t=5 1 1 0 Motivating Example 1 1 0 Increment-only counter 1 1 1 weave works -
t=6 1 1 0 Motivating Example 1 1 1 Increment-only counter 1 1 1 weave works -
t=7 1 1 1 Motivating Example 1 1 1 Increment-only counter 1 1 1 weave works -
t=7 1 1 1 Motivating Example 1 1 1 Increment-only counter 1 1 1 weave works -
Motivating Example 0 Increment-only counter weave works -
Motivating Example 0 Increment-only counter weave works -
Motivating Example 1 Increment-only counter weave works -
Motivating Example 2 Increment-only counter weave works -
Motivating Example 2 Increment-only counter weave works -
1 1 1 Motivating Example 1 2 1 Increment-only counter 🤕 1 1 1 weave works -
👒 Motivating Example Increment-only counter weave works -
Increment 👒 Motivating Example 0 Increment-only counter weave works -
Increment 👒 Motivating Example 0 Increment-only counter weave works -
Increment 👒 Motivating Example 1 Increment-only counter weave works -
Read 👒 Motivating Example 1 Increment-only counter weave works -
😧 😧 😧 Motivating Example 👒 😧 😧 x Increment-only counter 😧 😧 😧 weave works -
Theory: CRDT weave works -
CRDTs solve… • Shared state in a distributed system • Provide availability (A) • Provide partition tolerance (P) weave works -
weave works -
weave works -
CRDTs require... • Operations that are • Associative — A • (B • C) = (A • B) • C • Commutative — A • B = B • A • Idempotent* — A • A = A weave works -
CRDTs require... • Operations that are • Associative — A • (B • C) = (A • B) • C • Commutative — A • B = B • A • Idempotent* — A • A = A 😍 weave works -
CRDT • Conflict-free • Replicated • Data • Type weave works -
CmRDT • Commutative Replicated Data Type • Operation-based: transmit the op itself — "edge trigger" • Assumes reliable, exactly-once delivery (ha!) weave works -
0 Motivating Example 0 Increment-only counter CmRDT 0 weave works -
0 0 0 Motivating Example 0 0 0 Increment-only counter CmRDT 0 0 0 weave works -
Increment 0 0 0 Motivating Example 0 0 0 Increment-only counter CmRDT 0 0 0 weave works -
Increment 1 0 0 Motivating Example 0 0 0 Increment-only counter CmRDT 0 0 0 weave works -
1 0 0 Motivating Example 0 0 0 Increment-only counter CmRDT 0 0 0 weave works -
1 0 0 A++ Motivating Example 0 0 0 Increment-only counter CmRDT 0 0 0 weave works -
1 0 0 A++ Motivating Example 1 0 0 Increment-only counter CmRDT 0 0 0 weave works -
1 0 0 Motivating Example 1 0 0 Increment-only counter CmRDT 0 0 0 weave works -
1 0 0 Motivating Example A++ 1 0 0 Increment-only counter CmRDT 0 0 0 weave works -
1 0 0 Motivating Example A++ 1 0 0 Increment-only counter CmRDT 1 0 0 weave works -
1 0 0 Motivating Example 1 0 0 Increment-only counter CmRDT 1 0 0 weave works -
1 0 0 Read Motivating Example 1 0 0 Increment-only counter CmRDT 1 0 0 weave works -
1 0 0 Read Motivating Example Σ 1 0 0 = 1 Increment-only counter CmRDT 1 0 0 weave works -
CvRDT • Convergent Replicated Data Type • State-based: transmit the complete state — "level trigger" • Achieve idempotency in fragile networks • All CmRDT can be expressed as CvRDT (Shapiro et. al.) weave works -
1 0 0 Motivating Example 1 0 0 Increment-only counter CmRDT 1 0 0 weave works -
1 0 0 Increment Motivating Example 1 0 0 Increment-only counter CmRDT 1 0 0 weave works -
Recommend
More recommend