3642112935
Title Page
Replication //
Theory and Practice
Preface
Contents
List of Authors
Consistency Models for Replicated Data
Introduction
Contributions
Defining the Sequential Data Type
Strong Consistency
Relaxing Inter-Client Operation Ordering
Weak Consistency
Transactions
Discussion
Conclusion
References
Replication Techniques for Availability
Introduction
Model
Environment
Specification
Fail-Stop Failure Model
Primary-Backup
Chain Replication
Queries
Crash Failure Model
Quorums
Stake Replication
Broker Replication
Recovery and Reconfiguration
Conclusion
References
Modular Approach to Replication for Availability
Introduction
Atomic Broadcast for State Machine Replication
The Consensus Problem, or How to Implement Atomic Broadcast in a Modular Way
Consensus
Implementation of Atomic Broadcast
Solving Consensus
About System Models
Partially Synchronous Systems
Asynchronous System Augmented with Failure Detectors
Discussion
Generic Broadcast
Dynamic Groups
Group Membership Service
Group Communication in Dynamic Groups
Conclusion
References
Stumbling over Consensus Research: Misunderstandings and Issues
Introduction
Misunderstandings
Asynchronous Systems
Eventually-Forever Assumptions
Eventual Guarantees
The Consensus Impossibility Result
Uses of Replication
Correlated Failures
Issues
The Application Interface
Violation of Abstraction Boundaries
Ambiguities and Errors
Unfriendly Formalisms
Lack of Feedback from Practitioners
Hidden Limitations in Algorithms
Conclusion
References
Replicating for Performance: Case Studies
Introduction
Replication Strategies
Replica Placement
Content Distribution
Strategy Evaluation
Replication Granularity
Example 1: Content Delivery Networks
Example 2: Edge-Server Computing
Example 3: Decentralized Wikipedia
Replicating for Performance versus Consistency
Replication Management
Conclusions
References
A History of the Virtual Synchrony Replication Model
Introduction
Distributed Consistency: Who Needs It?
Goals in This Chapter
Historical Context
Resilient Objects in Isis V1.0
Beyond Resilient Objects
The Isis Toolkit and the Virtual Synchrony Model
A Design Feature Motivated by Performance Considerations
Dynamic Membership
Local Reads and Fast Updates
Partitionable Views
Causally Ordered Multicast: cbcast
Time-Critical Applications
A Series of Commercial Successes, but Ultimately, a Market Failure
How Replication Was Used
Causal and Other Controversies
What Next? Live Objects and Quicksilver Scalable Multicast!
Closing Thoughts
References
From Viewstamped Replication to Byzantine Fault Tolerance
Introduction
Prehistory
Viewstamped Replication
Replica Groups
Architecture
Approach
The VR Protocol
Normal Operation
View Changes
Recovery
Discussion of VR
Differences from the Original
Two-Phase Commit
Optimizations
Performance in the Normal Case
Performance of View Changes
State Management
Non-deterministic Operations
Byzantine Fault Tolerance
Approach
The PBFT Protocol
View Changes
Discussion of PBFT
Cryptography
Optimizations
Selecting the Primary
Recovery
Non-determinism
Conclusions
References
Implementing Trustworthy Services Using Replicated State Machines
Introduction
The State-Machine Approach
Compromise and Proactive Recovery
Service Key Refresh and Scalability
Service Private Keys
Proactive Secret Sharing
Server Key Refresh
Trusted Hardware
Offline Keys
Attack Awareness
Processor Independence
Replica Coordination
Computing with Server Confidential Data
Discussion
References
State Machine Replication with Byzantine Faults
Introduction
Building Blocks
Broadcast Primitives
Distributed Cryptography
Byzantine Consensus
Atomic Broadcast Protocols
Consensus-Based Atomic Broadcast
Sequencer-Based Atomic Broadcast
Hybrid Atomic Broadcast
Service Replication
Replicating Cryptographic Services
Handling Responses Securely
Preserving Causality of Requests
Conclusion
References
Selected Results from the Latest Decade of Quorum Systems Research
Introduction
Quorum Systems for Byzantine Faults
Access Strategies and Load
Probabilistic Quorum Systems
Minimizing Delays of Quorum Accesses
Uses of Byzantine Quorums in Protocols
Read-Overwrite Protocols
State-Machine-Replication Protocols
Conclusion
References
From Object Replication to Database Replication
Introduction
Replication Model and Consistency
Generic Functional Model
Object and Database Consistency
From Object Replication to Database Replication: Multi-primary Passive Replication
Deferred Update Database Replication
Additional Definitions
Atomic Commit-Based Termination
Atomic Broadcast-Based Termination
Reordering-Based Termination
Generic Broadcast-Based Termination
Final Remarks
References
Database Replication: A Tutorial
Introduction
Why Replication
Organization of the Chapter
Basic Taxonomy for Replica Control Approaches
Eager Primary Copy
Eager Update Anywhere
Lazy Primary Copy
Lazy Update Anywhere
Eager vs. Lazy
Correctness Criteria
Atomicity and Consistency
Isolation
Session Consistency
Other Parameters
Message Management
Executing Writes
Concurrency Control Mechanisms
Architectural Alternatives
Cluster vs. WAN Replication
Degree of Replication
Recovery
Existing Systems
Early Work
Commercial Systems
Lazy Replication Made Serializable
Cluster Replication
Other Issues
Related Areas of Research
Conclusions
References
Practical Database Replication
Introduction
An Architecture for Practical Database Replication
Reflector: Replication-Friendly Database Support
Reflection for Replication
Processing Stages
Processing Contexts
Base-Level and Meta-level Calls
Exception Handling
Existing Reflector Bindings
GCS: Communication and Coordination Support
Architectural and Algorithmic Issues
Existing GCS Bindings
Replicator: Pluggable Replication Protocols
Consistent Database Replication
Replication with Conservative Execution
Replication with Optimistic Execution
Active Replication
Hybrid Replication
Evaluation
Conclusions
References
Index