Very large database systems require distributed storage for expansibility and high throughput, which means that they need distributed search structures for fast and efficient access to the data. In a highly parallel distributed search structure, parts of the index must be replicated to avoid serialization bottlenecks. Designing distributed and replicated search structures is made difficult by the complex interaction of the search structure concurrency control and the replica coherency algorithms. In this paper, we present an approach to maintaining distributed data structures that uses lazy updates, which take advantage of the semantics of the search structure operations to allow for scalable and low-overhead replication. Lazy updates can be used to design distributed search structures that support very high levels of concurrency. The alternatives to lazy update algorithms (eager updates) use synchronization to ensure consistency, while lazy update algorithms avoid blocking. Since lazy updates avoid the use of synchronization, they are much easier to implement than eager update algorithms. We develop a correctness theory for lazy update algorithms, then present lazy update algorithms to maintain a dB \Gamma tree, which is a distributed B tree that replicates its interior nodes for highly parallel access. We show how the algorithms can be applied to the construction of other distributed search structures. 1
|
1319
|
Concurrency Control and Recovery in Database Systems
– Bernstein, Hadzilacos, et al.
- 1987
|
|
796
|
Distributed snapshots: Determining global states of distributed systems
– Chandy, Lamport
- 1985
|
|
531
|
Linearizability: a correctness condition for concurrent objects
– Herlihy, Wing
- 1990
|
|
455
|
The ubiquitous B-tree
– Comer
- 1979
|
|
194
|
Recovery in distributed systems using optimistic message logging and checkpointing
– Johnson, Zwaenepoel
- 1990
|
|
177
|
The hB-tree: a multiattribute indexing method with good guaranteed performance
– Lomet, Salzberg
- 1990
|
|
164
|
Consistency in partitioned networks
– Davidson, Garcia-Molina, et al.
- 1985
|
|
117
|
Fault Tolerance Under UNIX
– Borg, Blau, et al.
- 1989
|
|
115
|
Efficient Locking for Concurrent Operations on B-Trees
– Lehman, Yao
- 1981
|
|
93
|
Efficient distributed recovery using message logging
– Sistla, Welch
- 1989
|
|
65
|
LH* : Linear Hashing for Distributed Files
– Litwin, Schneider, et al.
- 1993
|
|
65
|
RP* : A Family of Order Preserving Scalable Distributed Data Structures
– Litwin, Neimat, et al.
- 1994
|
|
47
|
The impact of recovery on concurrency control
– WEIHL
- 1989
|
|
46
|
Concurrent Search Structure Algorithms
– Shasha, Goodman
- 1988
|
|
35
|
A symmetric concurrent b-tree algorithm
– Lanin, Shasha
- 1986
|
|
30
|
Low cost management of replicated data in fault-tolerant distributed systems
– JOSEPH, BIRMAN
- 1986
|
|
26
|
Distributed File Organization with Scalable Cost/Performance
– Vingralek, Breitbart, et al.
- 1994
|
|
22
|
Concurrent operations on B ∗ -trees with overtaking
– Sagiv
- 1986
|
|
21
|
A Framework for the Performance Analysis of Concurrent B-tree Algorithms
– Johnson, Shasha
- 1990
|
|
20
|
Multi-version memory: Software cache management for concurrent B-trees
– Weihl, Wang
- 1986
|
|
18
|
A Distributed Data-Balanced Dictionary Based on the B-link Tree
– Johnson, Colbrook
- 1992
|
|
15
|
Distributed data structures: A case study
– Ellis
- 1985
|
|
14
|
An Efficient Method for Distributing Search Structures
– Matsliach, Shmueli
- 1991
|
|
14
|
Multi-disk B-trees
– Seeger, Larson
- 1991
|
|
12
|
An in-depth analysis of concurrent B-tree algorithms
– Wang
- 1991
|
|
11
|
Extendible Hashing for Concurrent Operations and Distributed Data
– Ellis
- 1983
|
|
11
|
The Performance of Concurrent Data Structure Algorithms
– Johnson
- 1990
|
|
11
|
Maintaining Dynamic Ordered Sets on Processor Networks
– Ranade
- 1992
|
|
10
|
Distributed data structures: A complexity oriented view
– Peleg
- 1990
|
|
9
|
An algorithm for concurrent search trees
– Colbrook, Brewer, et al.
- 1991
|
|
6
|
I-Ling Yen. Concurrent maintenance of data structures in a distributed system
– Bastani, Iyengar
- 1988
|
|
5
|
Compact deterministic distributed dictionaries
– Gilon, Peleg
- 1991
|
|
5
|
A Distributed, Replicated, Data-balanced Search Structure
– Johnson, Colbrook
- 1994
|
|
4
|
Implementing distributed search structures
– Krishna, Johnson
- 1992
|
|
4
|
A Concurrent Search Structure
– Parker
- 1989
|
|
4
|
Hash tables in massively parallel systems
– Yen, F
- 1992
|
|
3
|
auf der Hyde, An optimal parallel dictionary
– Dietzfelbinger, Meyer
- 1989
|
|
3
|
Highly scalable data balanced distributed b-trees
– Krishna, Johnson
- 1995
|
|
3
|
Providing high reliability using lazy replication
– Ladin, Liskov, et al.
- 1992
|
|
2
|
Index replication in a distributed b-tree
– Krishna, Johnson
- 1994
|
|
1
|
Optimistic recovery in distribtued systems
– Strom, Yemeni
- 1985
|
|
1
|
Context-based synchroniczation: An approach beyond semantics for concurrency control
– Wong, Agrawal
- 1993
|