Abstraction Without Regret in Database Systems Building: a Manifesto

Yanif Ahmad, Hassan Chafi, Thierry Coppey, Mohammad Dashti, Vojin Jovanovic, Oliver Kennedy, Yannis Klonatos, Milos Nikolic, Andres Noetzli, Martin Odersky, Tiark Rompf, Amir Shaikhha

Research output: Contribution to journalArticlepeer-review

Abstract

It has been said that all problems in computer science can be solved by adding another level of indirection, except for performance problems, which are solved by removing levels of indirection. Compilers are our tools for removing levels of indirection automatically. However, we do not trust them when it comes to systems building. Most performance-critical systems are built in low-level programming languages such as C. Some of the downsides of this compared to using modern high-level programming languages are very well known: bugs, poor programmer productivity, a talent bottleneck, and cruelty to programming language researchers. In the future we might even add suboptimal performance to this list. In this article, I argue that compilers can be competitive with and outperform human experts at low-level database systems programming. Performance-critical database systems are a limited-enough domain for us to encode systems programming skills as compiler optimizations. However, mainstream compilers cannot do this: We need to work on optimizing compilers specialized for the systems programming domain. Recent progress makes their creation eminently feasible.
Original languageEnglish
Pages (from-to)70-79
Number of pages10
JournalBulletin of the Technical Committee on Data Engineering
Volume37
Issue number1
Publication statusPublished - Mar 2014

Fingerprint

Dive into the research topics of 'Abstraction Without Regret in Database Systems Building: a Manifesto'. Together they form a unique fingerprint.

Cite this