Más contenido relacionado CRDTs for engineers4. Replicated
• Build to be used in distributed systems
• multiple replicas can be changed
concurrently
• do not require locking
4Thursday, June 27, 13
5. Conflict-Free
• the big one!
• replica merges with predictable behavior!
• predictable =:= desired?
5Thursday, June 27, 13
8. Commutative
• The values of operations can be swapped.
• x ∧ y = y ∧ x
• together
• we don’t need to care about order
8Thursday, June 27, 13
10. Types
• CmRDT message based
• CvRDT state based (v for vector)
• can be emulated
10Thursday, June 27, 13
11. CmRDT
• based on messages
• requires messages to be delivered
• needs controls of messages (complex)
11Thursday, June 27, 13
12. CvRDT
• Based on the objects state
• independent from underlaying structure
• that’s good!
12Thursday, June 27, 13
22. G Counter
Master 1
Master 2
Master 3
0 0 0
0 0 0
0 0 0
M1 M2 Merge
0
0
0
M3
0 0 0 0
= Max
= Max
= Max
SumSumSumSum
22Thursday, June 27, 13
23. G Counter
Master 1
Master 2
Master 3
1 1 1
0 0 0
0 0 0
M1 M2 Merge
1
0
0
M3
1 1 1 1
= Max
= Max
= Max
SumSumSumSum
23Thursday, June 27, 13
24. G Counter
Master 1
Master 2
Master 3
1 1 1
4 4 4
0 0 0
M1 M2 Merge
1
4
0
M3
5 5 5 5
= Max
= Max
= Max
SumSumSumSum
24Thursday, June 27, 13
25. G Counter
Master 1
Master 2
Master 3
1 1 1
4 4 4
0 0 0
M1 M2 Merge
1
4
0
M3
5 5 5 5
= Max
= Max
= Max
SumSumSumSum
25Thursday, June 27, 13
26. G Counter
Master 1
Master 2
Master 3
1 1 1
4 4 4
5 0 5
M1 M2 Merge
1
4
5
M3
10 5 10 10
= Max
= Max
= Max
SumSumSumSum
26Thursday, June 27, 13
27. G Counter
Master 1
Master 2
Master 3
1 1 1
4 4 4
5 0 5
M1 M2 Merge
1
4
5
M3
10 5 10 10
= Max
= Max
= Max
SumSumSumSum
27Thursday, June 27, 13
28. G Counter
Master 1
Master 2
Master 3
1 1 1
4 4 4
5 0 5
M1 M2 Merge
1
4
5
M3
10 5 10 10
= Max
= Max
= Max
SumSumSumSum
28Thursday, June 27, 13
29. G Counter
Master 1
Master 2
Master 3
1 1 1
4 4 4
5 7 7
M1 M2 Merge
1
4
7
M3
10 12 12 12
= Max
= Max
= Max
SumSumSumSum
29Thursday, June 27, 13
30. G Counter
Master 1
Master 2
Master 3
1 1 1
4 4 4
5 7 7
M1 M2 Merge
1
4
7
M3
10 12 12 12
= Max
= Max
= Max
SumSumSumSum
30Thursday, June 27, 13
34. 2P Set
• Can only be added once
• Deleted for good
34Thursday, June 27, 13
36. PN Set
7 A
0 B
3 C
-2 D
PN Counter
A
C
36Thursday, June 27, 13
37. PN Set
• Partial merges can lead to negative values
• Adds might (temporarily) have no effect
37Thursday, June 27, 13
42. OR Set
M1,1 A M1,1 A A
M1,2 B BM2,1 B
42Thursday, June 27, 13
43. OR Set
M1,1 A M1,1 A A
M1,2 B BM2,1 B
M1,2 B
43Thursday, June 27, 13
44. OR Set
M1,1 A M1,1 A A
M1,2 B BM2,1 B
M1,2 B
M1,3 B
44Thursday, June 27, 13
45. OR Set
M1,1 A M1,1 A A
M1,2 B M2,1 B
M1,2 B
M1,3 B
M2,1 B
M1,3 B
M2,1 B
M1,3 B
45Thursday, June 27, 13
46. OR Set
• Elements have a unique ID
• delete
• Elements might ‘reappear’ after a merge
• lots of trash
46Thursday, June 27, 13