Principles of Distributed SystemsDistributed computer systems are now widely available but, despite a number of recent advances, the design of software for these systems remains a challenging task, involving two main difficulties: the absence of a shared clock and the absence of a shared memory. The absence of a shared clock means that the concept of time is not useful in distributed systems. The absence of shared memory implies that the concept of a state of a distributed system also needs to be redefined. These two important concepts occupy a major portion of this book. Principles of Distributed Systems describes tools and techniques that have been successfully applied to tackle the problem of global time and state in distributed systems. The author demonstrates that the concept of time can be replaced by that of causality, and clocks can be constructed to provide causality information. The problem of not having a global state is alleviated by developing efficient algorithms for detecting properties and computing global functions. The author's major emphasis is in developing general mechanisms that can be applied to a variety of problems. For example, instead of discussing algorithms for standard problems, such as termination detection and deadlocks, the book discusses algorithms to detect general properties of a distributed computation. Also included are several worked examples and exercise problems that can be used for individual practice and classroom instruction. Audience: Can be used to teach a one-semester graduate course on distributed systems. Also an invaluable reference book for researchers and practitioners working on the many different aspects of distributed systems. |
Other editions - View all
Common terms and phrases
antichain application processes assume boolean causal ordering chain channel predicates Chapter checker process concurrent conjunctive predicate consistent cut cp[i critical section current cut cut satisfies cut[i defined definition denote deposet direct dependency clocks distributed algorithm distributed computation distributed program distributed systems element evaluated example execution exists false FIFO Figure global function global predicate global sequence global snapshot graph implies induction hypothesis initial input queue integer interval irreflexive k-ary tree label lcmvector Lemma linear LLeaf local predicates logical clock matrix clock Merge message sent messages received ml(s nodes number of messages ordering of messages output queue P₁ partial order partially ordered set permutation poset predicates are true problem processors Proof properties receive event satisfies the GCP send event snapshot algorithm synchronous ordering Theorem timestamp token total order variables vector clock vector clock algorithm