一句话:提出 PUPPY,通过对比全优化与受限优化计划的响应时间来自动检测 DBMS 性能退化缺陷。
DBMS 优化器会组合多种优化操作生成执行计划,但优化间交互复杂,可能导致计划比未优化时更慢,即性能退化缺陷(PDB)。本文提出 PUPPY:比较同一 DBMS 中启用全部优化所得计划与仅启用部分优化所得计划的响应时间,若受限优化计划更快则提示 PDB。PUPPY 以优化操作序列覆盖率为指导生成查询,再分析查询计划并有选择地禁用特定优化,构造受限优化计划。作者在 MySQL、Percona、TiDB、PolarDB 和 PostgreSQL 上评估,并与 APOLLO、AMOEBA 对比,报告 62 个 PDB,其中 54 个确认为此前未知缺陷。
Database management systems (DBMSs) consistently strive for enhanced performance. For a given query, the optimizer of a DBMS aims to construct an optimal execution plan that incorporates multiple optimization operations. However, the resulting plan may sometimes perform worse than even if no optimizations were applied. This occurs because the interactions between optimizations are complex and some situations might be overlooked in the implementation. We refer to these issues as Performance Degradation Bugs (PDBs). PDBs can result in significant consequences from decreased system efficiency and prolonged query processing times to potential disruptions in critical business operations. In this paper, we present PUPPY, an automated approach for detecting PDBs in DBMSs using limited-optimization plan construction. The key idea is to compare the performance with the plan generated with all optimization operations enabled, against the plan generated with only a subset of optimization operations in the same DBMS. If the response time of the plan with the limited optimization set is shorter than that of the fully optimized plan, it indicates a potential PDB. Specifically, PUPPY first generates queries that incorporate multiple optimization sequences, guided by optimization operation sequence coverage. Secondly, PUPPY analyzes the query plan and selectively disables specific optimizations to construct the limited optimization plan. We evaluate PUPPY on five widely-used DBMSs, namely MySQL, Percona, TiDB, PolarDB, and PostgreSQL against the state-of-the-art DBMS performance testing tools APOLLO and AMOEBA. More importantly, PUPPY reports 62 PDBs, with 54 anomalies confirmed as previously unknown bugs.
DOI 原文 ·
@inproceedings{paperbot8763,
title = {PUPPY: Finding Performance Degradation Bugs in DBMSs via Limited-Optimization Plan Construction},
author = {Zhiyong Wu and Jie Liang and Jingzhou Fu and Mingzhe Wang and Yu Jiang},
booktitle = {ICSE},
year = {2025},
doi = {10.1109/icse55347.2025.00045}
}