A scalable lock manager for multicores
Authors
NICTA
Seoul National University
University of Sydney
UNSW
Abstract
Modern implementations of DBMS software are intended to take advantage of high core counts that are becoming common in high-end servers. However, we have observed that several database platforms, including MySQL, Shore-MT, and a commercial system, exhibit throughput collapse as load increases, even for a workload with little or no logical contention for locks. Our analysis of MySQL identifies latch contention within the lock manager as the bottleneck responsible for this collapse.
We design a lock manager with reduced latching, implement it in MySQL, and show that it avoids the collapse and generally improves performance. Our efficient implementation of a lock manager is enabled by a staged allocation and de-allocation of locks. Locks are pre-allocated in bulk, so that the lock manager only has to perform simple list-manipulation operations during the acquire and release phases of a transaction. De-allocation of the lock data-structures is also performed in bulk, which enables the use of fast implementations of lock acquisition and release, as well as concurrent deadlock checking.
BibTeX Entry
@inproceedings{Jung_HFHY_13, address = {New York, USA}, author = {Jung, Hyungsoo and Han, Hyuck and Fekete, Alan and Heiser, Gernot and Yeom, Heon Y.}, booktitle = {ACM SIGMOD Conference}, doi = {10.1145/2463676.2465271}, month = jun, pages = {73--84}, paperurl = {https://trustworthy.systems/publications/nicta_full_text/6465.pdf}, slides = {https://trustworthy.systems/publications/nicta_slides/6465.pdf}, title = {A Scalable Lock Manager for Multicores}, year = {2013} }