TY - JOUR
T1 - Abstraction Without Regret in Database Systems Building: a Manifesto
AU - Ahmad, Yanif
AU - Chafi, Hassan
AU - Coppey, Thierry
AU - Dashti, Mohammad
AU - Jovanovic, Vojin
AU - Kennedy, Oliver
AU - Klonatos, Yannis
AU - Nikolic, Milos
AU - Noetzli, Andres
AU - Odersky, Martin
AU - Rompf, Tiark
AU - Shaikhha, Amir
PY - 2014/3
Y1 - 2014/3
N2 - 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.
AB - 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.
M3 - Article
VL - 37
SP - 70
EP - 79
JO - Bulletin of the Technical Committee on Data Engineering
JF - Bulletin of the Technical Committee on Data Engineering
IS - 1
ER -