Detecting optimization bugs in database engines via non-optimizing reference engine construction
dc.contributor.author
Rigger, Manuel
dc.contributor.author
Su, Zhendong
dc.date.accessioned
2020-12-16T08:14:30Z
dc.date.available
2020-12-11T03:54:54Z
dc.date.available
2020-12-16T08:14:30Z
dc.date.issued
2020-11
dc.identifier.isbn
978-1-4503-7043-1
en_US
dc.identifier.other
10.1145/3368089.3409710
en_US
dc.identifier.uri
http://hdl.handle.net/20.500.11850/455890
dc.description.abstract
Database Management Systems (DBMS) are used ubiquitously. To efficiently access data, they apply sophisticated optimizations. Incorrect optimizations can result in logic bugs, which cause a query to compute an incorrect result set. We propose Non-Optimizing Reference Engine Construction (NoREC), a fully-automatic approach to detect optimization bugs in DBMS. Conceptually, this approach aims to evaluate a query by an optimizing and a non-optimizing version of a DBMS, to then detect differences in their returned result set, which would indicate a bug in the DBMS. Obtaining a non-optimizing version of a DBMS is challenging, because DBMS typically provide limited control over optimizations. Our core insight is that a given, potentially randomly-generated optimized query can be rewritten to one that the DBMS cannot optimize. Evaluating this unoptimized query effectively corresponds to a non-optimizing reference engine executing the original query. We evaluated NoREC in an extensive testing campaign on four widely-used DBMS, namely PostgreSQL, MariaDB, SQLite, and CockroachDB. We found 159 previously unknown bugs in the latest versions of these systems, 141 of which have been fixed by the developers. Of these, 51 were optimization bugs, while the remaining were error and crash bugs. Our results suggest that NoREC is effective, general and requires little implementation effort, which makes the technique widely applicable in practice. © 2020 ACM
en_US
dc.language.iso
en
en_US
dc.publisher
Association for Computing Machinery
dc.subject
database testing
en_US
dc.subject
DBMS testing
en_US
dc.subject
query optimizer bugs
en_US
dc.subject
test oracle
en_US
dc.title
Detecting optimization bugs in database engines via non-optimizing reference engine construction
en_US
dc.type
Conference Paper
dc.date.published
2020-11-08
ethz.book.title
Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
en_US
ethz.pages.start
1140
en_US
ethz.pages.end
1152
en_US
ethz.event
28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2020) (virtual)
en_US
ethz.event.location
Sacramento, CA, USA
ethz.event.date
November 8-13, 2020
en_US
ethz.notes
Due to the Coronavirus (COVID-19) the conference was conducted virtually.
en_US
ethz.identifier.scopus
ethz.publication.place
New York, NY
ethz.publication.status
published
en_US
ethz.leitzahl
ETH Zürich::00002 - ETH Zürich::00012 - Lehre und Forschung::00007 - Departemente::02150 - Dep. Informatik / Dep. of Computer Science::02664 - Inst. f. Programmiersprachen u. -systeme / Inst. Programming Languages and Systems::09628 - Su, Zhendong / Su, Zhendong
ethz.leitzahl.certified
ETH Zürich::00002 - ETH Zürich::00012 - Lehre und Forschung::00007 - Departemente::02150 - Dep. Informatik / Dep. of Computer Science::02664 - Inst. f. Programmiersprachen u. -systeme / Inst. Programming Languages and Systems::09628 - Su, Zhendong / Su, Zhendong
ethz.date.deposited
2020-12-11T03:55:04Z
ethz.source
SCOPUS
ethz.eth
yes
en_US
ethz.availability
Metadata only
en_US
ethz.rosetta.installDate
2020-12-16T08:14:40Z
ethz.rosetta.lastUpdated
2024-02-02T12:41:32Z
ethz.rosetta.versionExported
true
ethz.COinS
ctx_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.atitle=Detecting%20optimization%20bugs%20in%20database%20engines%20via%20non-optimizing%20reference%20engine%20construction&rft.date=2020-11&rft.spage=1140&rft.epage=1152&rft.au=Rigger,%20Manuel&Su,%20Zhendong&rft.isbn=978-1-4503-7043-1&rft.genre=proceeding&rft_id=info:doi/10.1145/3368089.3409710&rft.btitle=Proceedings%20of%20the%2028th%20ACM%20Joint%20Meeting%20on%20European%20Software%20Engineering%20Conference%20and%20Symposium%20on%20the%20Foundations%20of%20Software%20
Files in this item
Files | Size | Format | Open in viewer |
---|---|---|---|
There are no files associated with this item. |
Publication type
-
Conference Paper [35878]