Skip to main content

TS

A scalable lock manager for multicores

Authors

Hyungsoo Jung, Hyuck Han, Alan Fekete, Gernot Heiser and Heon Y. Yeom

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,
    doi              = {10.1145/2463676.2465271},
    author           = {Jung, Hyungsoo and Han, Hyuck and Fekete, Alan and Heiser, Gernot and Yeom, Heon Y.},
    month            = {jun},
    slides           = {http://www.nicta.com.au/pub-download/slides/6465},
    year             = {2013},
    title            = {A Scalable Lock Manager for Multicores},
    booktitle        = {ACM SIGMOD Conference},
    pages            = {73-84},
    address          = {New York, USA}
  }

Download