Scalability of write-ahead logging on multicore and multisocket hardware

被引:24
作者
Johnson, Ryan [1 ]
Pandis, Ippokratis [2 ]
Stoica, Radu [3 ]
Athanassoulis, Manos [3 ]
Ailamaki, Anastasia [3 ]
机构
[1] Univ Toronto, Dept Comp Sci, Toronto, ON, Canada
[2] IBM Almaden Res Ctr, San Jose, CA USA
[3] Ecole Polytech Fed Lausanne, Sch Comp & Commun Sci, Lausanne, Vaud, Switzerland
关键词
Log manager; Early lock release; Flush pipelining; Log buffer contention; Consolidation array; Scaling to multisockets;
D O I
10.1007/s00778-011-0260-8
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
The shift to multi-core and multi-socket hardware brings new challenges to database systems, as the software parallelism determines performance. Even though database systems traditionally accommodate simultaneous requests, a multitude of synchronization barriers serialize execution. Write-ahead logging is a fundamental, omnipresent component in ARIES-style concurrency and recovery, and one of the most important yet-to-be addressed potential bottlenecks, especially in OLTP workloads making frequent small changes to data. In this paper, we identify four logging-related impediments to database system scalability. Each issue challenges different level in the software architecture: (a) the high volume of small-sized I/O requests may saturate the disk, (b) transactions hold locks while waiting for the log flush, (c) extensive context switching overwhelms the OS scheduler with threads executing log I/Os, and (d) contention appears as transactions serialize accesses to in-memory log data structures. We demonstrate these problems and address them with techniques that, when combined, comprise a holistic, scalable approach to logging. Our solution achieves a 20-69% speedup over a modern database system when running log-intensive workloads, such as the TPC-B and TATP benchmarks, in a single-socket multiprocessor server. Moreover, it achieves log insert throughput over 2.2 GB/s for small log records on the single-socket server, roughly 20 times higher than the traditional way of accessing the log using a single mutex. Furthermore, we investigate techniques on scaling the performance of logging to multi-socket servers. We present a set of optimizations which partly ameliorate the latency penalty that comes with multi-socket hardware, and then we investigate the feasibility of applying a distributed log buffer design at the socket level.
引用
收藏
页码:239 / 263
页数:25
相关论文
共 37 条
[1]  
[Anonymous], 1995, P 17 ANN ACM S PAR A
[2]  
[Anonymous], 2009, Proc. VLDB Endow
[3]  
[Anonymous], 1994, TPC BENCHMARK B STAN
[4]  
[Anonymous], 2008, P 2008 ACM SIGMOD IN, DOI [10.1145/1376616.1376713, DOI 10.1145/1376616.1376713]
[5]  
[Anonymous], 2007, VLDB
[6]  
[Anonymous], 2007, TPC BENCHMARK C OLTP
[7]  
[Anonymous], AS COMM POSTGRESQL 8
[8]  
[Anonymous], AS COMM OR DAT ADV A
[9]  
Bouganim L., 2009, CIDR 09, P48
[10]  
Cantrill B.M., 2004, USENIX ANN TECHN C