Programming Distributed Systems
Consistency and Conflict-free Replication Annette Bieniusa
FB Informatik TU Kaiserslautern
Annette Bieniusa Programming Distributed Systems 1/ 76
Programming Distributed Systems Consistency and Conflict-free - - PowerPoint PPT Presentation
Programming Distributed Systems Consistency and Conflict-free Replication Annette Bieniusa FB Informatik TU Kaiserslautern Annette Bieniusa Programming Distributed Systems 1/ 76 KIDS OUT OF CONTROL? Inconsistency might be the problem!
Annette Bieniusa Programming Distributed Systems 1/ 76
Annette Bieniusa Programming Distributed Systems 2/ 76
Annette Bieniusa Programming Distributed Systems 3/ 76
Annette Bieniusa Programming Distributed Systems 4/ 76
Annette Bieniusa Programming Distributed Systems 5/ 76
Annette Bieniusa Programming Distributed Systems 6/ 76
Annette Bieniusa Programming Distributed Systems 7/ 76
Annette Bieniusa Programming Distributed Systems 8/ 76
xA : (5, t1) xB : (3, t2) xC : (3, t2)
sync sync sync read() 5 write(3)
read() 3
Annette Bieniusa Programming Distributed Systems 9/ 76
Annette Bieniusa Programming Distributed Systems 10/ 76
Annette Bieniusa Programming Distributed Systems 10/ 76
xA : (vxA, tA) yA : (vyA, t′
A)
xB : (vxB, tB) yB : (vyB, t′
B)
xC : (vxC, tC) yC : (vyC, t′
C)
sync sync
Annette Bieniusa Programming Distributed Systems 11/ 76
Annette Bieniusa Programming Distributed Systems 12/ 76
Annette Bieniusa Programming Distributed Systems 13/ 76
Annette Bieniusa Programming Distributed Systems 14/ 76
Annette Bieniusa Programming Distributed Systems 15/ 76
Annette Bieniusa Programming Distributed Systems 15/ 76
Annette Bieniusa Programming Distributed Systems 16/ 76
Annette Bieniusa Programming Distributed Systems 17/ 76
set of client operation events
set of client operation events
labels event with operation
set of client operation events
labels event with operation
labels event with the return value
set of client operation events
labels event with operation
labels event with the return value
“returns-before” partial order = client-observable order
set of client operation events
labels event with operation
labels event with the return value “returns-before” partial order = client-observable order
“same session” equivalence class; partitions events into ses- sions
Annette Bieniusa Programming Distributed Systems 18/ 76
Annette Bieniusa Programming Distributed Systems 19/ 76
Annette Bieniusa Programming Distributed Systems 20/ 76
Annette Bieniusa Programming Distributed Systems 21/ 76
Annette Bieniusa Programming Distributed Systems 22/ 76
Annette Bieniusa Programming Distributed Systems 23/ 76
Annette Bieniusa Programming Distributed Systems 24/ 76
Annette Bieniusa Programming Distributed Systems 25/ 76
Annette Bieniusa Programming Distributed Systems 26/ 76
Annette Bieniusa Programming Distributed Systems 27/ 76
Annette Bieniusa Programming Distributed Systems 28/ 76
Annette Bieniusa Programming Distributed Systems 29/ 76
Annette Bieniusa Programming Distributed Systems 30/ 76
Annette Bieniusa Programming Distributed Systems 31/ 76
Annette Bieniusa Programming Distributed Systems 32/ 76
Annette Bieniusa Programming Distributed Systems 33/ 76
Annette Bieniusa Programming Distributed Systems 34/ 76
Annette Bieniusa Programming Distributed Systems 35/ 76
Annette Bieniusa Programming Distributed Systems 36/ 76
Annette Bieniusa Programming Distributed Systems 37/ 76
1 Post(“Hi”):ok 2 rd():“Hey”
Annette Bieniusa Programming Distributed Systems 38/ 76
Annette Bieniusa Programming Distributed Systems 39/ 76
Annette Bieniusa Programming Distributed Systems 40/ 76
Annette Bieniusa Programming Distributed Systems 41/ 76
Annette Bieniusa Programming Distributed Systems 42/ 76
Annette Bieniusa Programming Distributed Systems 43/ 76
Annette Bieniusa Programming Distributed Systems 44/ 76
Annette Bieniusa Programming Distributed Systems 45/ 76
1 wr(“foo”):ok 2 wr(“bar”):ok 3 rd():“bar”
Annette Bieniusa Programming Distributed Systems 46/ 76
1 wr(“foo”):ok 2 wr(“bar”):ok 3 rd():“bar”
Annette Bieniusa Programming Distributed Systems 47/ 76
Annette Bieniusa Programming Distributed Systems 48/ 76
Annette Bieniusa Programming Distributed Systems 49/ 76
Annette Bieniusa Programming Distributed Systems 50/ 76
Annette Bieniusa Programming Distributed Systems 51/ 76
Annette Bieniusa Programming Distributed Systems 52/ 76
Annette Bieniusa Programming Distributed Systems 53/ 76
Annette Bieniusa Programming Distributed Systems 54/ 76
Annette Bieniusa Programming Distributed Systems 55/ 76
Annette Bieniusa Programming Distributed Systems 56/ 76
Annette Bieniusa Programming Distributed Systems 57/ 76
Annette Bieniusa Programming Distributed Systems 58/ 76
1 add(1):ok 2 add(1):ok 3 rem(1):ok 4 rd():{}
Annette Bieniusa Programming Distributed Systems 59/ 76
Annette Bieniusa Programming Distributed Systems 60/ 76
Annette Bieniusa Programming Distributed Systems 61/ 76
Annette Bieniusa Programming Distributed Systems 62/ 76
Annette Bieniusa Programming Distributed Systems 63/ 76
Annette Bieniusa Programming Distributed Systems 64/ 76
Annette Bieniusa Programming Distributed Systems 65/ 76
Annette Bieniusa Programming Distributed Systems 66/ 76
Annette Bieniusa Programming Distributed Systems 67/ 76
Annette Bieniusa Programming Distributed Systems 68/ 76
Annette Bieniusa Programming Distributed Systems 69/ 76
Annette Bieniusa Programming Distributed Systems 70/ 76
Annette Bieniusa Programming Distributed Systems 71/ 76
Annette Bieniusa Programming Distributed Systems 72/ 76
Annette Bieniusa Programming Distributed Systems 73/ 76
Annette Bieniusa Programming Distributed Systems 74/ 76
Annette Bieniusa Programming Distributed Systems 75/ 76
Annette Bieniusa Programming Distributed Systems 76/ 76