Acknowledgments |
|
xi | |
Outline |
|
xiii | |
|
|
1 | (6) |
|
1.1 Shared Storage: A Landscape |
|
|
1 | (2) |
|
1.2 Distribution and Consistency |
|
|
3 | (4) |
|
|
7 | (12) |
|
|
7 | (6) |
|
2.1.1 Input/Output Automata and Executions |
|
|
7 | (2) |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
11 | (2) |
|
2.2 Consistency: Atomic Object Semantics |
|
|
13 | (3) |
|
|
16 | (1) |
|
|
17 | (2) |
|
|
19 | (4) |
|
|
19 | (1) |
|
3.2 Communication and Rounds |
|
|
19 | (1) |
|
|
20 | (1) |
|
|
21 | (2) |
|
4 The Single-Writer Setting |
|
|
23 | (24) |
|
4.1 SWMR Algorithm ABD: Basic Techniques |
|
|
23 | (7) |
|
4.1.1 Algorithm ABD Specification |
|
|
24 | (1) |
|
4.1.2 Algorithm ABD Correctness |
|
|
25 | (4) |
|
4.1.3 Efficiency of Algorithm ABD |
|
|
29 | (1) |
|
4.2 Algorithm Fast: Expediting Read Operations |
|
|
30 | (7) |
|
4.2.1 Algorithm Fast Specification |
|
|
30 | (4) |
|
4.2.2 Algorithm Fast Correctness |
|
|
34 | (3) |
|
4.3 Lower Bound: Limitations of Fast Implementations |
|
|
37 | (1) |
|
4.4 Algorithm SLIQ: Introducing Quorum Views |
|
|
38 | (7) |
|
4.4.1 Algorithmic Technique: Quorum Views |
|
|
39 | (1) |
|
4.4.2 Algorithm SLIQ Specification |
|
|
40 | (4) |
|
4.4.3 Algorithm SLIQ Correctness |
|
|
44 | (1) |
|
|
45 | (2) |
|
5 The Multiple-Writer Setting |
|
|
47 | (32) |
|
5.1 Algorithm MWABD: Multi-Writer ABD |
|
|
47 | (4) |
|
5.1.1 Algorithm MWABD Specification |
|
|
47 | (2) |
|
5.1.2 Algorithm MWABD Correctness |
|
|
49 | (2) |
|
5.2 Algorithm CWFR: Quorum View Generalization |
|
|
51 | (9) |
|
5.2.1 Algorithmic Technique: MW Quorum Views |
|
|
51 | (1) |
|
5.2.2 Algorithm CWFR Specification |
|
|
52 | (5) |
|
5.2.3 Algorithm CWFR Correctness |
|
|
57 | (3) |
|
5.3 Lower Bound: Inherent Limitations of MWMR on Fast Operations |
|
|
60 | (6) |
|
5.4 Algorithm SFW: Expediting Write Operations |
|
|
66 | (11) |
|
5.4.1 Algorithmic Technique: Server Side Ordering (SSO) |
|
|
67 | (1) |
|
5.4.2 Algorithmic Technique: Enhanced Tagging |
|
|
68 | (1) |
|
5.4.3 Algorithm SFW Specification |
|
|
69 | (4) |
|
5.4.4 Algorithm SFW Correctness |
|
|
73 | (4) |
|
|
77 | (2) |
|
6 The Dynamic Environment |
|
|
79 | (4) |
|
|
80 | (1) |
|
6.2 Group Communication Services |
|
|
81 | (1) |
|
6.3 Using Reconfiguration for Direct Implementations |
|
|
82 | (1) |
|
7 RAMBO: Reconfigurable Dynamic Memory |
|
|
83 | (32) |
|
7.1 Models and Definitions |
|
|
84 | (2) |
|
7.2 Rambo Service Specifications |
|
|
86 | (5) |
|
7.2.1 Rambo Service Specification |
|
|
86 | (2) |
|
7.2.2 Recon Service Specification |
|
|
88 | (3) |
|
7.3 Implementation of Rambo |
|
|
91 | (11) |
|
7.3.1 Overall Architecture |
|
|
92 | (1) |
|
7.3.2 Implementation of Joiner |
|
|
92 | (1) |
|
7.3.3 Implementation of Reader-Writer |
|
|
92 | (8) |
|
7.3.4 Implementation of the Recon Service |
|
|
100 | (2) |
|
7.3.5 The Complete Rambo Algorithm |
|
|
102 | (1) |
|
|
102 | (3) |
|
7.5 Conditional Performance Analysis: Latency Bounds |
|
|
105 | (3) |
|
|
108 | (3) |
|
7.7 GeoQuorums--Adaptation of Rambo for Mobile Settings |
|
|
111 | (2) |
|
|
113 | (2) |
|
8 RDS: Integrated Reconfigurations |
|
|
115 | (20) |
|
|
115 | (1) |
|
8.2 The Paxos Consensus Algorithm |
|
|
116 | (3) |
|
8.2.1 Tie Part-Time Parliament |
|
|
116 | (1) |
|
|
117 | (1) |
|
8.2.3 Deciding Upon a New Configuration |
|
|
118 | (1) |
|
8.3 Reconfigurable Distributed Storage |
|
|
119 | (9) |
|
8.3.1 Signature and State |
|
|
119 | (2) |
|
8.3.2 Read and Write Operations |
|
|
121 | (1) |
|
8.3.3 Communication and Independent Transitions |
|
|
122 | (3) |
|
|
125 | (3) |
|
|
128 | (1) |
|
8.5 Conditional Performance Analysis |
|
|
129 | (2) |
|
|
131 | (4) |
|
9 DynaStore: Incremental Reconfigurations |
|
|
135 | (20) |
|
|
136 | (2) |
|
9.1.1 Incremental Reconfiguration |
|
|
137 | (1) |
|
9.1.2 Activity of Processes |
|
|
137 | (1) |
|
9.1.3 Majority Assumption |
|
|
138 | (1) |
|
9.2 The Weak Snapshot Automaton |
|
|
138 | (4) |
|
9.3 Tie Reader-Writer-Recon Automaton |
|
|
142 | (5) |
|
9.3.1 Partially Ordered Configurations |
|
|
144 | (1) |
|
9.3.2 Adding New Configurations |
|
|
145 | (1) |
|
|
146 | (1) |
|
|
147 | (5) |
|
9.5 Implementation and Performance Considerations |
|
|
152 | (2) |
|
|
154 | (1) |
|
10 Concluding Remarks and Looking Ahead |
|
|
155 | (4) |
Bibliography |
|
159 | (12) |
Authors' Biographies |
|
171 | (2) |
Index |
|
173 | |