Database management systems used in practice inherit their design from the early work of the database community. At the time, systems had limited memory and processing resources, and architectures were mainly centralized. Databases are often the “bottleneck” of performance-critical systems because of their heavy use of stable storage and mechanisms that allow concurrent transactions to be correctly executed. In this thesis we investigate the dsmDB approach for clustering in-memory databases. The dsmDB is designed for distributing database computation and storage over a cluster of machines. Performance is enhanced by emphasizing in-memory computation and minimizing disk use. This is achieved by using an optimistic concurrency control mechanism on top of an in-memory storage layer that guarantees only weak consistency. By combining the two components we achieve both high performance and strong consistency. The resulting architecture is also flexible enough to allow recovery of the state of crashed nodes from the state of the alive nodes, and incremental expansion by adding more nodes at runtime.
[1]
Fernando Pedone,et al.
dsmDB: a distributed shared memory approach for building replicated database systems
,
2008,
WDDDM '08.
[2]
Andrei Broder,et al.
Network Applications of Bloom Filters: A Survey
,
2004,
Internet Math..
[3]
Werner Vogels,et al.
Dynamo: amazon's highly available key-value store
,
2007,
SOSP.
[4]
Leslie Lamport,et al.
Paxos Made Simple
,
2001
.
[5]
Stewart S. Miller.
Parallel Databases
,
2001,
High-Performance Web Databases.
[6]
Michael Stonebraker,et al.
The End of an Architectural Era (It's Time for a Complete Rewrite)
,
2007,
VLDB.
[7]
Clifford Stein,et al.
Introduction to Algorithms, 2nd edition.
,
2001
.
[8]
Rachid Guerraoui,et al.
The Database State Machine Approach
,
2003,
Distributed and Parallel Databases.
[9]
Bill Nitzberg,et al.
Distributed shared memory: a survey of issues and algorithms
,
1991,
Computer.