CERT: Finding Performance Issues in Database Systems Through the Lens of Cardinality Estimation
Database Management Systems (DBMSs) process a given query by creating an execution plan, which is subsequently executed, to compute the query’s result. Deriving an efficient query plan is challenging, and both academia and industry have invested decades into researching query optimization. Despite this, DBMSs are prone to performance issues, where a DBMS produces an unexpectedly inefficient query plan that might lead to the slow execution of a query. Finding such issues is a longstanding problem and inherently difficult, because no ground truth information on an expected execution time exists. In this work, we propose Cardinality Estimation Restriction Testing (CERT), a novel technique that finds performance issues through the lens of cardinality estimation. Given a query on a database, CERT derives a more restrictive query (e.g., by replacing a LEFT JOIN with an INNER JOIN), whose estimated number of rows should not exceed the estimated number of rows for the original query. CERT tests cardinality estimation specifically, because they were shown to be the most important part for query optimization; thus, we expect that finding and fixing such issues might result in the highest performance gains. In addition, we found that other kinds of query optimization issues can be exposed by unexpected estimated cardinalities, which can also be found by CERT. CERT is a black-box technique that does not require access to the source code; DBMSs expose query plans via the EXPLAIN statement. CERT eschews executing queries, which is costly and prone to performance fluctuations. We evaluated CERT on three widely used and mature DBMSs, MySQL, TiDB, and CockroachDB. CERT found 13 unique issues, of which 2 issues were fixed and 9 confirmed by the developers. We expect that this new angle on finding performance bugs will help DBMS developers in improving DMBSs’ performance.
Wed 17 AprDisplayed time zone: Lisbon change
16:00 - 17:30 | Testing: various bug types 1Research Track / Software Engineering in Practice at Eugénio de Andrade Chair(s): June Sallou Delft University of Technology | ||
16:00 15mTalk | CERT: Finding Performance Issues in Database Systems Through the Lens of Cardinality Estimation Research Track Pre-print | ||
16:15 15mTalk | Optimistic Prediction of Synchronization-Reversal Data Races Research Track Zheng Shi National University of Singapore, Umang Mathur National University of Singapore, Andreas Pavlogiannis Aarhus University | ||
16:30 15mTalk | Mozi: Discovering DBMS Bugs via Configuration-Based Equivalent Transformation Research Track Jie Liang , Zhiyong Wu Tsinghua University, China, Jingzhou Fu School of Software, Tsinghua University, Mingzhe Wang Tsinghua University, Chengnian Sun University of Waterloo, Yu Jiang Tsinghua University | ||
16:45 15mTalk | FlakeSync: Automatically Repairing Async Flaky Tests Research Track | ||
17:00 15mTalk | Testing the Limits: Unusual Text Inputs Generation for Mobile App Crash Detection with Large Language Model Research Track Zhe Liu Institute of Software, Chinese Academy of Sciences, Chunyang Chen Technical University of Munich (TUM), Junjie Wang Institute of Software, Chinese Academy of Sciences, Mengzhuo Chen Institute of Software, Chinese Academy of Sciences, Boyu Wu University of Chinese Academy of Sciences, Beijing, China, Zhilin Tian Pennsylvania State University, Yuekai Huang Institute of Software, Chinese Academy of Sciences, Jun Hu Institute of Software, Chinese Academy of Sciences, Qing Wang Institute of Software, Chinese Academy of Sciences | ||
17:15 15mTalk | AutoConsis: Automatic GUI-driven Data Inconsistency Detection of Mobile Apps Software Engineering in Practice Yongxiang Hu Fudan University, Hailiang Jin Meituan Inc., Xuan Wang Fudan University, Jiazhen Gu The Chinese University of Hong Kong, Shiyu Guo Meituan, Chaoyi Chen Meituan, Xin Wang Fudan University, Yangfan Zhou Fudan University |