A general approach to scalable buffer pool management
Document Type
Article
Publication Date
8-1-2016
Abstract
In high-end data processing systems, such as databases, the execution concurrency level rises continuously since the introduction of multicore processors. This happens both on premises and in the cloud. For these systems, a buffer pool management of high scalability plays an important role on overall system performance. The scalability of buffer pool management is largely determined by its data replacement algorithm, which is a major component in the buffer pool management. It can seriously degrade the scalability if not designed and implemented properly. The root cause is its use of lock-protected data structures that incurs high contention with concurrent accesses. A common practice is to modify the replacement algorithm to reduce the contention on the lock(s), such as approximating the LRU replacement with the CLOCK algorithm or partitioning the data structures and using distributed locks. Unfortunately, the modification usually compromises the algorithm's hit ratio, a major performance goal. It may also involve significant effort on overhauling the original algorithm design and implementation. This paper provides a general solution to improve the scalability of a buffer pool management using any replacement algorithms for the data processing systems on physical on-premises machines and virtual machines in the cloud. Instead of making a difficult trade-off between the high hit ratio of a replacement algorithm and the low lock contention of its approximation, we design a system framework, called BP-Wrapper, that eliminates almost all lock contention without requiring any changes to an existing algorithm. In BP-Wrapper, we use a dynamic batching technique and a prefetching technique to reduce lock contention and to retain high hit ratio. The implementation of BP-Wrapper in PostgreSQL adds only about 300 lines of C code. It can increase the throughput by up to two folds compared with the replacement algorithms with lock contention when running TPC-C-like and TPC-W-like workloads.
Identifier
84978628274 (Scopus)
Publication Title
IEEE Transactions on Parallel and Distributed Systems
External Full Text Location
https://doi.org/10.1109/TPDS.2015.2484321
ISSN
10459219
First Page
2182
Last Page
2195
Issue
8
Volume
27
Grant
1217948
Fund Ref
National Science Foundation
Recommended Citation
Ding, Xiaoning; Shan, Jianchen; and Jiang, Song, "A general approach to scalable buffer pool management" (2016). Faculty Publications. 10356.
https://digitalcommons.njit.edu/fac_pubs/10356
