识别事务延迟方差的主要来源:迈向更可预测的数据库
数据库
2016-03-04 v3
摘要
数十年的研究致力于提升数据库管理系统(DBMSs)中事务处理性能与可扩展性。然而,对性能可预测性的关注明显较少:即单个事务的执行延迟远离均值的频繁程度?当事务处理位于复杂企业软件或交互式网络服务的关键路径上,以及在新兴的数据库即服务市场中客户签约保证性能水平时,性能可预测性至关重要。本文中,我们采取若干步骤以实现更可预测的数据库系统。首先,我们提出称为 VProfiler 的剖析框架,该框架给定 DBMS 源代码,能够识别事务延迟中方差的主要来源。VProfiler 自动检测 DBMS 源代码,将事务延迟的总体方差分解为各个函数执行时间的方差与协方差,从而深入揭示方差的根本原因。其次,我们使用 VProfiler 分析 MySQL 和 Postgres —— 两个最流行且复杂的开源数据库系统。我们的案例研究揭示 MySQL 和 Postgres 中方差的主要原因分别是锁调度和集中式日志记录。最后,基于 VProfiler 的发现,我们进一步专注于通过(1)提出称为 Variance-Aware Transaction Scheduling (VATS) 的新锁调度算法,(2)增强缓冲池替换策略,以及(3)识别能显著降低方差的调优参数,来补救 MySQL 的性能方差。实验结果表明我们的方案在不损害吞吐量或平均延迟的情况下,平均减少总体事务延迟方差 37%(最高达 64%)。
引用
@article{arxiv.1602.01871,
title = {Identifying the Major Sources of Variance in Transaction Latencies: Towards More Predictable Databases},
author = {Jiamin Huang and Barzan Mozafari and Grant Schoenebeck and Thomas Wenisch},
journal= {arXiv preprint arXiv:1602.01871},
year = {2016}
}