Publication: On the Design and Implementation of High-Performance Transaction Processing in Main-Memory Databases
Open/View Files
Date
Authors
Published Version
Published Version
Journal Title
Journal ISSN
Volume Title
Publisher
Citation
Abstract
Main-memory databases are core to many applications, and the performance of modern main-memory database systems is a subject of intense study. It is long understood that the concurrency control algorithm underlying a database system is the deciding factor of how well the system performs under contended workloads. Optimistic concurrency control (OCC) can achieve excellent performance on uncontended workloads for main-memory transactional databases. Contention causes OCC's performance to degrade, however, and recent concurrency control designs, such as hybrid OCC/locking systems and variations of multiversion concurrency control (MVCC), have claimed to outperform the best OCC systems. We evaluate several concurrency control designs under varying contention and varying workloads, including TPC-C, and find that implementation choices unrelated to concurrency control may explain much of OCC's previously-reported degradation. When these implementation choices are made sensibly, OCC performance does not collapse on many high-contention workloads. We also present two optimization techniques, commit-time updates and timestamp splitting, that can dramatically improve the high-contention performance of both OCC and MVCC. Though these techniques are known, we apply them in a new context and highlight their potency: when combined, they lead to performance gains of 4.8x for OCC and 3.8x for MVCC in a TPC-C workload.