1.76k likes | 1.77k Views
Explore the concepts of logical clocks, global states, and related algorithms in distributed systems. Learn about the implementation, rules, and benefits of using logical clocks and vector clocks for event ordering and synchronization.
E N D
Distributed Systems: Distributed algorithms Distributed systems: distributed algorithms
Overview of chapters • Introduction • Co-ordination models and languages • General services • Distributed algorithms • Ch 10 Time and global states, 11.4-11.5 • Ch 11 Coordination and agreement, 12.1-12.5 • Shared data • Building distributed services Distributed systems: distributed algorithms
This chapter: overview • Introduction • Logical clocks • Global states • Failure detectors • Mutual exclusion • Elections • Multicast communication • Consensus and related problems Distributed systems: distributed algorithms
Logical clocks • Problem: ordering of events • requirement for many algorithms • physical clocks cannot be used • use causality: • within a single process: observation • between different processes: sending of a message happensbeforereceiving the same message Distributed systems: distributed algorithms
Logical clocks (cont.) • Formalization: happens before relation • Rules: • if x happens before y in any process p thenx y • for any message m: send (m) receive (m) • ifx yandy zthenx z • Implementation: logical clocks x y Distributed systems: distributed algorithms
Logical clocks (cont.) • Logical clock • counter appropriately incremented • one counter per process • Physical clock • counts oscillations occurring in a crystal at a definitive frequency Distributed systems: distributed algorithms
Logical clocks (cont.) • Rules for incrementing local logical clock • for each event (including send) in process p:Cp := Cp + 1 • when a process sends a message m, it piggybacks on m the value of Cp • on receiving (m, t), a process q • computes Cq := max (Cq, t) • applies rule 1: Cq := Cq +1 • Cq is logical time for event receive(m) Distributed systems: distributed algorithms
0 5 3 2 4 1 3 1 • • • • • • • • P1 P2 P3 e a b g c f d Logical clocks (cont.) • Logical timestamps: example Distributed systems: distributed algorithms
Logical clocks (cont.) • C(x) logical clock value for event x • Correct usage: • ifx ythen C(x) < C(y) • Incorrect usage: • if C(x) < C(y) thenx y • Solution: Logical vector clocks Distributed systems: distributed algorithms
Logical clocks (cont.) • Vector clocks for N processes: • at process Pi: Vi[j] for j = 1, 2,…,N • Properties: • ifx ythen V(x) < V(y) • if V(x) < V(y) thenx y Distributed systems: distributed algorithms
Logical clocks (cont.) • Rules for incrementing logical vector clock • for each event (including send) in process Pi: Vi[i] := Vi[i] + 1 • when a process Pi sends a message m, it piggybacks on m the value of Vi • on receiving (m, t), a process Pi • apply rule 1 • Vi[j] := max(Vi[j] , t[j]) for j = 1, 2,…, N Distributed systems: distributed algorithms
Logical clocks (cont.) • Logical vector clocks : example Distributed systems: distributed algorithms
This chapter: overview • Introduction • Logical clocks • Global states • Failure detectors • Mutual exclusion • Elections • Multicast communication • Consensus and related problems Distributed systems: distributed algorithms
Global states • Detect global properties Distributed systems: distributed algorithms
Global states (cont.) • Local states & events • Process Pi : eik events sik state, before event k • History of Pi: hi = < ei0, ei1, ei2,…> • Finite prefix of history of Pi: hik = < ei0, ei1, ei2,…, eik > Distributed systems: distributed algorithms
Global states (cont.) • Global states & events • Global history H = h1 h2 h3 … hn • Global state (when?) S = ( s1p, s2q, …, snu)consistent? • Cut of the systems execution C = h1c1 h1c2 … h1cn Distributed systems: distributed algorithms
Global states (cont.) • Example of cuts: Distributed systems: distributed algorithms
Global states (cont.) • Finite prefix of history of Pi: hik = < ei0, ei1, ei2,…, eik > • Cut of the systems execution C = h1c1 h1c2 … h1cn • Consistent cut C e C, f e f C • Consistent global state corresponds to consistent cut Distributed systems: distributed algorithms
Global states (cont.) • Model execution of a (distributed) system S0 S1 S2 S3 … • Series of transitions between consistent states • Each transition corresponds to one single event • Internal event • Sending message • Receiving message • Simultaneous events order events Distributed systems: distributed algorithms
Global states (cont.) • Definitions: • Run = ordering of all events (in a global history) consistent with each local history’s ordering • Linearization =consistent run + consistent with • S’ reachable from S linearization: … S … S’… Distributed systems: distributed algorithms
Global states (cont.) • Kinds of global state predicates: • Stable • Safety • Liveness • = true in S S’, S … S’ = true in S’ = undesirable property S0 =initial state of system S, S0 … S = false in S = desirable property S0 =initial state of system S, S0 … S = true in S Distributed systems: distributed algorithms
Global states (cont.) • Snapshot algorithm of Chandy & Lamport • Record consistent global state • Assumptions: • Neither channels nor processes fail • Channels are unidirectional and provide FIFO-ordered message delivery • Graph of channels and processes is strongly connected • Any process may initiate a global snapshot • Process may continue their execution during the snapshot Distributed systems: distributed algorithms
Global states (cont.) • Snapshot algorithm of Chandy & Lamport • Elements of algorithm • Players: processes Pi with • Incoming channels • Outgoing channels • Marker messages • 2 rules • Marker receiving rule • Marker sending rule • Start of algorithm • A process acts as it received a marker message Distributed systems: distributed algorithms
Global states (cont.) Marker receiving rule for process pi On pi’s receipt of a marker message over channel c: if (pi has not yet recorded its state) it records its process state now; records the state of c as the empty set; turns on recording of messages arriving over other incoming channels; else pi records the state of c as the set of messages it has received over c since it saved its state. end if Marker sending rule for process pi After pi has recorded its state, for each outgoing channel c: pi sends one marker message over c (before it sends any other message over c). Distributed systems: distributed algorithms
Global states (cont.) • Example: Distributed systems: distributed algorithms
1. Global state S 0 c (empty) <$1000, 0> p p <$50, 2000> 2 1 2 c (empty) 1 2. Global state S 1 c (Order 10, $100), M <$900, 0> p p <$50, 2000> 2 1 2 c (empty) 1 3. Global state S 2 c (Order 10, $100), M p p <$900, 0> <$50, 1995> 2 1 2 c (five widgets) 1 4. Global state S 3 c (Order 10, $100) <$900, 5> p p <$50, 1995> 2 1 2 C1=<(five widgets)> C2 = <> c (empty) 1 Global states (cont.) (M = marker message) Distributed systems: distributed algorithms
1. Global state S 0 c (empty) <$1000, 0> p p <$50, 2000> 2 1 2 c (empty) 1 4. Global state S 6. Global state S 5. Global state S 5 3 4 c c c (Order 10, $100) (Order 10, $100) (Order 10, $100) <$900, 5> <$900, 5> <$900, 5> p p p p p p <$50, 1995> <$50, 1995> <$50, 1995> 2 2 2 1 1 1 2 2 2 C1=<(five widgets)> C1=<(five widgets)> C1=<(five widgets)> C2 = <> C2 = <> C2 = <> c c c M (empty) (empty) 1 1 1 Global states (cont.) (M = marker message) Distributed systems: distributed algorithms
Global states (cont.) • Observed state • Corresponds to consistent cut • Reachable! Distributed systems: distributed algorithms
This chapter: overview • Introduction • Logical clocks • Global states • Failure detectors • Mutual exclusion • Elections • Multicast communication • Consensus and related problems Distributed systems: distributed algorithms
No “P is here” within T + E sec No “P is here” within T + A sec Failure detectors • Properties • Unreliable failure detector: answers with • Suspected • Unsuspected • Reliable failure detector: answers with • Failed • Unsuspected • Implementation • Every T sec: multicast by P of “P is here” • Maximum on message transmission time: • Asynchronous system: estimate E • Synchronous system: absolute bound A Distributed systems: distributed algorithms
This chapter: overview • Introduction • Logical clocks • Global states • Failure detectors • Mutual exclusion • Elections • Multicast communication • Consensus and related problems Distributed systems: distributed algorithms
Mutual exclusion • Problem: how to give a single process temporarily a privilege? • Privilege = the right to access a (shared) resource • resource = file, device, window,… • Assumptions • clients execute the mutual exclusion algorithm • the resource itself might be managed by a server • Reliable communication Distributed systems: distributed algorithms
Mutual exclusion (cont.) • Basic requirements: • ME1: at most one process might execute in the shared resource at any time (Safety) • ME2: a process requesting access to the shared resource is eventually granted it (Liveness) • ME3: Access to the shared resource should be granted in happened-before order (Ordering or fairness) Distributed systems: distributed algorithms
Mutual exclusion (cont.) • Solutions: • central server algorithm • distributed algorithm using logical clocks • ring-based algorithm • voting algorithm • Evaluation • Bandwidth (= #messages to enter and exit) • Client delay (incurred by a process at enter and exit) • Synchronization delay (delay between exit and enter) Distributed systems: distributed algorithms
Mutual exclusion (cont.)central server algorithm • Central server offering 2 operations: • enter() • if resource free then operation returns without delayelse request is queued and return from operation is delayed • exit() • if request queue is emptythen resource is marked freeelse return for a selected request is executed Distributed systems: distributed algorithms
Server Queue: User Enter() P1 P4 P3 P2 Mutual exclusion (cont.)central server algorithm • Example: Distributed systems: distributed algorithms
Mutual exclusion (cont.)central server algorithm • Example: Server Queue: User 3 Enter() P1 P4 P3 P2 Distributed systems: distributed algorithms
Mutual exclusion (cont.)central server algorithm • Example: Server Queue: User 3 P1 P4 P3 P2 Distributed systems: distributed algorithms
Mutual exclusion (cont.)central server algorithm • Example: Server Queue: User 3 enter() P1 P4 P3 P2 Distributed systems: distributed algorithms
Mutual exclusion (cont.)central server algorithm • Example: Server Queue: 4 User 3 enter() P1 P4 P3 P2 Distributed systems: distributed algorithms
Mutual exclusion (cont.)central server algorithm • Example: Server Queue: 4 User 3 enter() enter() P1 P4 P3 P2 Distributed systems: distributed algorithms
Mutual exclusion (cont.)central server algorithm • Example: Server Queue: 4, 2 User 3 enter() enter() P1 P4 P3 P2 Distributed systems: distributed algorithms
Mutual exclusion (cont.)central server algorithm • Example: Server Queue: 4, 2 User 3 enter() exit() enter() P1 P4 P3 P2 Distributed systems: distributed algorithms
Mutual exclusion (cont.)central server algorithm • Example: Server Queue: 4, 2 User enter() enter() P1 P4 P3 P2 Distributed systems: distributed algorithms
Mutual exclusion (cont.)central server algorithm • Example: Server Queue: 2 User 4 enter() P1 P4 P3 P2 Distributed systems: distributed algorithms
Mutual exclusion (cont.)central server algorithm • Evaluation: • ME3 not satisfied! • Performance: • single server is performance bottleneck • Enter critical section: 2 messages • Synchronization: 2 messages between exit of one process and enter of next • Failure: • Central server is single point of failure • what if a client, holding the resource, fails? • Reliable communication required Distributed systems: distributed algorithms
Mutual exclusion (cont.)ring-based algorithm • All processes arranged in a • unidirectional • logical • ring • token passed in ring • process with token has access to resource Distributed systems: distributed algorithms
Mutual exclusion (cont.)ring-based algorithm P2 P1 P3 P6 P4 P5 Distributed systems: distributed algorithms
Mutual exclusion (cont.)ring-based algorithm P2 P1 P3 P2 can use resource P6 P4 P5 Distributed systems: distributed algorithms
Mutual exclusion (cont.)ring-based algorithm P2 P1 P3 P2 stopped using resource and forwarded token P6 P4 P5 Distributed systems: distributed algorithms