These days, huge amounts of data are created by not only humans but also the Internet of Things (IoT). As databases increase in size, their buffer pool is becoming more crucial to the overall performance. Buffer flushing, i.e., writing dirty pages, is a key factor in buffer pool management. Tuning the buffer-flushing activity in a real system is often difficult because it depends on the workload and system configuration. It is usually done through trial and error. In this paper, we propose a self-tuning algorithm for automatically controlling the buffer-flushing activity. Our algorithm not only avoids synchronous writes, which block other operations, but also preserves the effectiveness of the buffer pool. Experimental results using TPC-C and TPC-H show that our algorithm gives up to a 2.1-fold higher throughput compared with the original buffer-flushing algorithm of MySQL and 1.5-fold compared with that of Percona Server, which is a variant of MySQL.
['Ki-Hoon Lee', 'Yun-Gu Lee', 'Jangyoung Kim']
A Self-Tuning Buffer-Flushing Algorithm for OLTP Workloads