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. |
Contents
INTRODUCTION TO DISTRIBUTED SYSTEMS | 1 |
TIME | 9 |
Chapter | 16 |
Copyright | |
12 other sections not shown
Other editions - View all
Common terms and phrases
algorithm to detect antichain application processes assume boolean causal ordering causally precedes chains channel predicates chapter checker process color[i concurrent consistent cut constraints cp[i critical section current cut cut satisfies cut[i data structures debug messages defined definition denote deposet detection algorithm direct dependency distributed algorithm distributed computation distributed program distributed systems element endfor example execution exists false FIFO Figure global cut global function global predicate global sequence graph implies initial input queue integer irreflexive k-ary tree label Lamport's lcmvector leaf node Lemma LLeaf local predicates logical clock matrix clock Merge message sent messages received monitor process number of messages ordering of messages output queue P₁ partial order permutation poset predicate is true Proof r₁ receive events request satisfies the GCP send event snapshot algorithm step synchronous ordering Theorem timestamp token variables vector clock