{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,1]],"date-time":"2026-04-01T14:34:47Z","timestamp":1775054087628,"version":"3.50.1"},"reference-count":33,"publisher":"Association for Computing Machinery (ACM)","issue":"10","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2014,6]]},"abstract":"<jats:p>\n            In this paper we advocate that it is time for a radical rethinking of database systems design. Developers should be able to leverage high-level programming languages without having to pay a price in efficiency. To realize our vision of\n            <jats:italic>abstraction without regret<\/jats:italic>\n            , we present LegoBase, a query engine written in the high-level programming language Scala. The key technique to regain efficiency is to apply\n            <jats:italic>generative<\/jats:italic>\n            programming: the Scala code that constitutes the query engine, despite its high-level appearance, is actually a program generator that emits specialized, low-level C code. We show how the combination of high-level and generative programming allows to easily implement a wide spectrum of optimizations that are difficult to achieve with existing low-level query compilers, and how it can\n            <jats:italic>continuously<\/jats:italic>\n            optimize the query engine.\n          <\/jats:p>\n          <jats:p>We evaluate our approach with the TPC-H benchmark and show that: (a) with all optimizations enabled, our architecture significantly outperforms a commercial in-memory database system as well as an existing query compiler, (b) these performance improvements require programming just a few hundred lines of high-level code instead of complicated low-level code that is required by existing query compilers and, finally, that (c) the compilation overhead is low compared to the overall execution time, thus making our approach usable in practice for efficiently compiling query engines.<\/jats:p>","DOI":"10.14778\/2732951.2732959","type":"journal-article","created":{"date-parts":[[2015,5,12]],"date-time":"2015-05-12T15:37:52Z","timestamp":1431445072000},"page":"853-864","source":"Crossref","is-referenced-by-count":73,"title":["Building efficient query engines in a high-level language"],"prefix":"10.14778","volume":"7","author":[{"given":"Yannis","family":"Klonatos","sequence":"first","affiliation":[{"name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne (EPFL)"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Christoph","family":"Koch","sequence":"additional","affiliation":[{"name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne (EPFL)"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tiark","family":"Rompf","sequence":"additional","affiliation":[{"name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne (EPFL)"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hassan","family":"Chafi","sequence":"additional","affiliation":[{"name":"Oracle Labs"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2014,6]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1376616.1376712"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/358769.358784"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2094114.2094126"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/69.273032"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/304182.304242"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/67544.66962"},{"key":"e_1_2_1_7_1","first-page":"487","volume-title":"VLDB","author":"Harizopoulos S.","year":"2006","unstructured":"S. Harizopoulos , V. Liang , D. J. Abadi , and S. Madden . Performance tradeoffs in read-optimized databases . In VLDB , pages 487 -- 498 , 2006 . S. Harizopoulos, V. Liang, D. J. Abadi, and S. Madden. Performance tradeoffs in read-optimized databases. In VLDB, pages 487--498, 2006."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1243418.1243424"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.14778\/1454159.1454211"},{"key":"e_1_2_1_10_1","volume-title":"CIDR","author":"Koch C.","year":"2013","unstructured":"C. Koch . Abstraction without regret in data management systems . In CIDR , 2013 . C. Koch. Abstraction without regret in data management systems. In CIDR, 2013."},{"issue":"1","key":"e_1_2_1_11_1","first-page":"70","article-title":"Abstraction without regret in database systems building: a manifesto","volume":"37","author":"Koch C.","year":"2014","unstructured":"C. Koch . Abstraction without regret in database systems building: a manifesto . IEEE Data Eng. Bull. , 37 ( 1 ): 70 -- 79 , 2014 . C. Koch. Abstraction without regret in database systems building: a manifesto. IEEE Data Eng. Bull., 37(1):70--79, 2014.","journal-title":"IEEE Data Eng. Bull."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2010.5447892"},{"key":"e_1_2_1_13_1","unstructured":"C. Lattner. LLVM: An Infrastructure for Multi-Stage Optimization. http:\/\/llvm.org\/.  C. Lattner. LLVM: An Infrastructure for Multi-Stage Optimization. http:\/\/llvm.org\/."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.14778\/1687553.1687618"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.14778\/2002938.2002940"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1094811.1094815"},{"key":"e_1_2_1_17_1","unstructured":"Oracle Corporation. TimesTen Database Architecture. http:\/\/download.oracle.com\/otn_hosted_doc\/timesten\/603\/TimesTen-Documentation\/arch.pdf.  Oracle Corporation. TimesTen Database Architecture. http:\/\/download.oracle.com\/otn_hosted_doc\/timesten\/603\/TimesTen-Documentation\/arch.pdf."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/645484.656552"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2008.4497414"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2006.40"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1868294.1868314"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2429069.2429128"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1995441.1995446"},{"key":"e_1_2_1_24_1","first-page":"553","volume-title":"VLDB","author":"Stonebraker M.","year":"2005","unstructured":"M. Stonebraker , D. J. Abadi , A. Batkin , X. Chen , M. Cherniack , M. Ferreira , E. Lau , A. Lin , S. Madden , E. O'Neil , P. O'Neil , A. Rasin , N. Tran , and S. Zdonik . C-Store: A Column-oriented DBMS . In VLDB , pages 553 -- 564 , 2005 . M. Stonebraker, D. J. Abadi, A. Batkin, X. Chen, M. Cherniack, M. Ferreira, E. Lau, A. Lin, S. Madden, E. O'Neil, P. O'Neil, A. Rasin, N. Tran, and S. Zdonik. C-Store: A Column-oriented DBMS. In VLDB, pages 553--564, 2005."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2005.1"},{"key":"e_1_2_1_26_1","first-page":"1150","volume-title":"VLDB","author":"Stonebraker M.","year":"2007","unstructured":"M. Stonebraker , S. Madden , D. J. Abadi , S. Harizopoulos , N. Hachem , and P. Helland . The end of an architectural era: (it's time for a complete rewrite) . In VLDB , pages 1150 -- 1160 , 2007 . M. Stonebraker, S. Madden, D. J. Abadi, S. Harizopoulos, N. Hachem, and P. Helland. The end of an architectural era: (it's time for a complete rewrite). In VLDB, pages 1150--1160, 2007."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0304-3975(00)00053-0"},{"key":"e_1_2_1_28_1","unstructured":"Transaction Processing Performance Council. TPC-H a decision support benchmark. http:\/\/www.tpc.org\/tpch.  Transaction Processing Performance Council. TPC-H a decision support benchmark. http:\/\/www.tpc.org\/tpch."},{"key":"e_1_2_1_29_1","volume-title":"Optimized SQL code generation","author":"Zane B. M.","year":"2008","unstructured":"B. M. Zane , J. P. Ballard , F. D. Hinshaw , D. A. Kirkpatrick , and L. Premanand Yerabothu . Optimized SQL code generation , 2008 . US Patent 7430549 B2. B. M. Zane, J. P. Ballard, F. D. Hinshaw, D. A. Kirkpatrick, and L. Premanand Yerabothu. Optimized SQL code generation, 2008. US Patent 7430549 B2."},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2259016.2259025"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDEW.2012.43"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2012.110"},{"key":"e_1_2_1_33_1","volume-title":"IEEE Data Eng. Bull., (2):17--22","author":"Zukowski M.","year":"2005","unstructured":"M. Zukowski , P. A. Boncz , N. Nes , and S. H\u00c3l'man . MonetDB\/X100 - A DBMS In The CPU Cache . IEEE Data Eng. Bull., (2):17--22 , 2005 . M. Zukowski, P. A. Boncz, N. Nes, and S. H\u00c3l'man. MonetDB\/X100 - A DBMS In The CPU Cache. IEEE Data Eng. Bull., (2):17--22, 2005."}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/2732951.2732959","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T10:58:14Z","timestamp":1672225094000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/2732951.2732959"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,6]]},"references-count":33,"journal-issue":{"issue":"10","published-print":{"date-parts":[[2014,6]]}},"alternative-id":["10.14778\/2732951.2732959"],"URL":"https:\/\/doi.org\/10.14778\/2732951.2732959","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2014,6]]}}}