|
Introduction to Reliable and Secure Distributed Programming
Content
The book is structured into six chapters, grouped in two parts.
Part I
- Chapter 1 motivates the need for distributed programming
abstractions by discussing various applications that typically make
use of such abstractions.
- Chapter 2 presents different kinds of assumptions
about the underlying distributed environment. It introduces the
system models used throughout the other chapters.
Part II
- Chapter 3 introduces communication abstractions for
broadcasting messages to a group of processes, which offer
diverse reliability guarantees for delivering messages to the
processes.
- Chapter 4 discusses shared memory, which models
distributed storage objects, accessed by read and write operations.
These could be files in a distributed storage system or registers in
the memory of a multi-processor computer.
- Chapter 5 addresses the consensus abstraction,
through which a set of processes can decide on a common value. They
must reach the same decision despite faulty processes, which may have
crashed or may even actively try to prevent the others from reaching a
common decision.
- Chapter 6 considers variants of consensus, which
are obtained by extending or modifying the consensus abstraction
according to the needs of important applications. This includes
total-order broadcast, terminating reliable broadcast, (non-blocking)
atomic commitment, group membership, and view-synchronous
communication.
Download the complete preface and table of content (© Springer Verlag 2011)
Table of contents
1 Introduction
1.1 Motivation
1.2 Distributed Programming Abstractions
1.3 The End-to-End Argument
1.4 Software Components
1.5 Classes of Algorithms
1.6 Chapter Notes
2 Basic Abstractions
2.1 Distributed Computation
2.2 Abstracting Processes
2.3 Cryptographic Abstractions
2.4 Abstracting Communication
2.5 Timing Assumptions
2.6 Abstracting Time
2.7 Distributed-System Models
2.8 Exercises
2.9 Solutions
2.10 Chapter Notes
3 Reliable Broadcast
3.1 Motivation
3.2 Best-Effort Broadcast
3.3 Regular Reliable Broadcast
3.4 Uniform Reliable Broadcast
3.5 Stubborn Broadcast
3.6 Logged Best-Effort Broadcast
3.7 Logged Uniform Reliable Broadcast
3.8 Probabilistic Broadcast
3.9 FIFO and Causal Broadcast
3.10 Byzantine Consistent Broadcast
3.11 Byzantine Reliable Broadcast
3.12 Byzantine Broadcast Channels
3.13 Exercises
3.14 Solutions
3.15 Chapter Notes
4 Shared Memory
4.1 Introduction
4.2 (1, N) Regular Register
4.3 (1, N) Atomic Register
4.4 (N, N) Atomic Register
4.5 (1, N) Logged Regular Register
4.6 (1, N) Byzantine Safe Register
4.7 (1, N) Byzantine Regular Register
4.8 (1, N) Byzantine Atomic Register
4.9 Exercises
4.10 Solutions
4.11 Chapter Notes
5 Consensus
5.1 Regular Consensus
5.2 Uniform Consensus
5.3 Uniform Consensus in the Fail-Noisy Model
5.4 Logged Consensus
5.5 Randomized Consensus
5.6 Byzantine Consensus
5.7 Byzantine Randomized Consensus
5.8 Exercises
5.9 Solutions
5.10 Chapter Notes
6 Consensus Variants
6.1 Total-Order Broadcast
6.2 Byzantine Total-Order Broadcast
6.3 Terminating Reliable Broadcast
6.4 Fast Consensus
6.5 Fast Byzantine Consensus
6.6 Nonblocking Atomic Commit
6.7 Group Membership
6.8 View-Synchronous Communication
6.9 Exercises
6.10 Solutions
6.11 Chapter Notes
7 Concluding Remarks
7.1 Implementation in Appia
7.2 Further Implementations
7.3 Further Reading
Download the complete preface and table of content (© Springer Verlag 2011)
|
|
|