This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Time, Clocks, and the Ordering of Events in a Distributed System Lamport July 1978 Summary The paper shows a way of totally ordering events in distributed systems. Distributed system A process is a sequence of totally ordered events, i.e., for any event a and b in a process, either a comes before b or b comes before a . A distributed system is a set of distinct and spatially separated processes that communicate by sending messages to each other. A system is distributed if the time it takes to send a message from one process to another is significant compared to the time interval between events in a single process. Why is this distinction important? Review of ordering relations Taken from Introduction to Discrete Mathematics by Hirschfelder and Hirschfelder. A binary relation on a set A is reflexive if a a for every a A . A binary relation on a set A is symmetric if, whenever a b , then b a . A binary relation on a set A is transitive if, whenever x y and y z , then x z . A relation on a set A is antisymmetric if a b and b a imply a = b . A partial order relation on a set A is a relation that is reflexive, antisymmetric, and transitive. The term partial is used to indicate that it is not necessary for any two elements of the set to be related in some way. A total order relation on a set A is a partial order relation with the following additional property: If a and b are elements of A , then either a b or b a , i.e., any two elements of the set are related in some way. Examples: Relations and are partial order relations that are also total order relations on the set of integers. Relation < is not a partial order relation on the set of integers because it is not reflexive. 1 Happened before relation It is assumed that sending or receiving a message is an event. Definition . The relation on the set of events of a system is the smallest relation satisfying the following three conditions: 1. If a and b are events in the same process, and a comes before b , then a b . 2. If a is the sending of a message by one process and b is the receipt of the same message by another process, then a b . 3. If a b and b c then a c . Two distinct events a and b are concurrent if a 6 b and b 6 a . Assume a 6 a for any event a . So is an irreflexive partial ordering on the set of all events in the system. The ordering is only partial because events can be concurrent in which case it is not known which event happened first. One can also say that a b means that a caused b to happen, e.g., the sending of a message causes the receipt of the same message. Events a and b are concurrent if they in no way can causally affect each other, e.g., events p 3 and q 3 in Fig. 1. So concurrent events do not necessarily have to occur at the same time. As long as there is no causality between them, they are concurrent....
View Full Document
- Spring '11