Speedy transactions in multicore in-memory databases
Top Cited Papers
Open Access
- 3 November 2013
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM)
Abstract
Silo is a new in-memory database that achieves excellent performance and scalability on modern multicore machines. Silo was designed from the ground up to use system memory and caches efficiently. For instance, it avoids all centralized contention points, including that of centralized transaction ID assignment. Silo's key contribution is a commit protocol based on optimistic concurrency control that provides serializability while avoiding all shared-memory writes for records that were only read. Though this might seem to complicate the enforcement of a serial order, correct logging and recovery is provided by linking periodically-updated epochs with the commit protocol. Silo provides the same guarantees as any serializable database without unnecessary scalability bottlenecks or much additional latency. Silo achieves almost 700,000 transactions per second on a standard TPC-C workload mix on a 32-core machine, as well as near-linear scalability. Considered per core, this is several times higher than previously reported results.Keywords
Funding Information
- National Science Foundation (1065219, 0704424)
- Alfred P. Sloan Foundation
- Microsoft Research
This publication has 25 references indexed in Scilit:
- Lightweight locking for main memory database systemsProceedings of the VLDB Endowment, 2012
- OLTP on hardware islandsProceedings of the VLDB Endowment, 2012
- PLPProceedings of the VLDB Endowment, 2011
- Data-oriented transaction executionProceedings of the VLDB Endowment, 2010
- Performance of memory reclamation for lockless synchronizationJournal of Parallel and Distributed Computing, 2007
- Transactional Locking IILecture Notes in Computer Science, 2006
- Observations on optimistic concurrency control schemesInformation Systems, 1984
- Efficient locking for concurrent operations on B-treesACM Transactions on Database Systems, 1981
- On optimistic methods for concurrency controlACM Transactions on Database Systems, 1981
- The notions of consistency and predicate locks in a database systemCommunications of the ACM, 1976