120 likes | 457 Views
Announcements. Outline. Time, clocks and the ordering of events in a Distributed System Leslie Lamport. Problem – happens before relationship. The notion of time or “happens before” relationship is fundamental in computer systems
E N D
Announcements CSCI {4,6}900: Ubiquitous Computing
Outline • Time, clocks and the ordering of events in a Distributed System Leslie Lamport CSCI {4,6}900: Ubiquitous Computing
Problem – happens before relationship • The notion of time or “happens before” relationship is fundamental in computer systems E.g. open(), read(), write(), close(). We want open() to happen before the read() and close() to happen after read() and write(). e.g. Airlines reservation: Reservation is granted if it is made before flight is full. CSCI {4,6}900: Ubiquitous Computing
Happens before in distributed systems • Distributed systems are a bunch of systems that communicate with each other. These messages take a finite time to propagate. The time taken varies between different machines. Messages can also arrive out of order among machines. • When two systems issue the open() and read(), it is sometimes impossible to tell which happened before the other (depending on the message delays) • It is hard to maintain physical time across machines • Hence, it is important to understand time and ordering of events within distributed systems. CSCI {4,6}900: Ubiquitous Computing
Partial ordering • Assume that the system is made of a number of processes. Each process consists of a sequence of events. • “happens before” relationship: • If a and b are events in the same process, a comes before b, then a happens before b. • If a is the sending a message and b is the receipt of it, then a happens before b. • If a happens before b and b happens before c, then a happens before c • If a does not happen before b and b does not happen before a, a and b are concurrent CSCI {4,6}900: Ubiquitous Computing
Partial Ordering • p3 and q3 are concurrent. Process P Process Q Process R p4 r4 q7 q6 q5 r3 p3 q4 r2 q3 p2 q2 r1 p1 q1 CSCI {4,6}900: Ubiquitous Computing
Logical clocks • Clock is just a way of assigning a number to an event, number is thought of the time at which the event occurred. • Clock C for each process P is a function that assigns a number Ci<a> to any event a. • Clock condition: • For any event a, b: if a happens before b, then C(a)<C(b) • Happens before condition holds if: • a and b are events in process P, and a comes before b, then C(a) < C(b) • a is the sending of a message and b is the receipt then C(a)<C(b) CSCI {4,6}900: Ubiquitous Computing
Implementable clock condition • Each process P, increments C between any two successive events • If event a is the sending of a message m by process Pi, then the message m contains a timestamp Tm=Ci(a). Upon receiving a message m, process Pj sets Cj greater than or equal to its present value and greater than Tm. CSCI {4,6}900: Ubiquitous Computing
Total ordering of events • We can use a system of clocks satisfying the clock condition to place a total ordering on the set of all system events. We order events by the times at which they occur. To break ties, we use any arbitrary total ordering of the processes • If a is an event in Pi and b is an event in Pj, then ab iff • Ci(a) < Cj(b) or • Ci(a) = Ci(b) and Pi < Pj • Total ordering depends on the clocks (C). Partial ordering is absolute CSCI {4,6}900: Ubiquitous Computing
Application • Algorithm for granting a resource which satisfies: • A process which has been granted the resource must release it before it can be granted to another process • Different requests for the resource must be granted in the order in which they are made • If event process which is granted the resource eventually releases it, then every request is eventually granted Central server based approaches that use the time received to grant resources does not work if two request take different times to reach the service CSCI {4,6}900: Ubiquitous Computing
Physical clocks • To synchronize clocks: • Sender sends message with time stamp • Receiver receives responses. The difference in expected and unexpected delay is the clock drift. • They derive a bound on time taken to synchronize clocks. CSCI {4,6}900: Ubiquitous Computing
Discussion CSCI {4,6}900: Ubiquitous Computing