skip to main content
article

Just-in-time compilation for SQL query processing

Published:01 August 2013Publication History
Skip Abstract Section

Abstract

Just-in-time compilation of SQL queries into native code has recently emerged as a viable alternative to interpretation-based query processing. We present the salient results of research in this fresh area, addressing all aspects of the query processing stack. Throughout the discussion we draw analogies to the general code generation techniques used in contemporary compiler technology. At the same time we describe the open research problems of the area.

References

  1. J. Aycock. A brief history of just-in-time. ACM Comput. Surv., 35(2), 2003. Google ScholarGoogle Scholar
  2. P. Boncz. Monet: A Next-Generation DBMS Kernel For Query-Intensive Applications. PhD thesis, Universiteit van Amsterdam, 2002.Google ScholarGoogle Scholar
  3. D. D. Chamberlin et al. A history and evaluation of System R. Commun. ACM, 24, 1981. Google ScholarGoogle Scholar
  4. A. Demakov. Just-in-time compiler library, 2007.Google ScholarGoogle Scholar
  5. S. Finkelstein. Common expression analysis in database applications. In SIGMOD, 1982. Google ScholarGoogle Scholar
  6. Free Software Foundation. Using and porting GNU lightning, 2008.Google ScholarGoogle Scholar
  7. J. C. Freytag and N. Goodman. Translating aggregate queries into iterative programs. In VLDB, 1986. Google ScholarGoogle Scholar
  8. J. C. Freytag and N. Goodman. On the translation of relational queries into iterative programs. ACM Trans. Database Syst., 14, 1989. Google ScholarGoogle Scholar
  9. G. Graefe. Query Evaluation Techniques for Large Databases. ACM Comput. Surv., 25(2), 1993. Google ScholarGoogle Scholar
  10. R. Greer. Daytona And The Fourth-Generation Language Cymbal. In SIGMOD, 1999. Google ScholarGoogle Scholar
  11. L. Hammond et al. Transactional memory coherence and consistency. In ISCA, 2004. Google ScholarGoogle Scholar
  12. M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In ISCA, 1993. Google ScholarGoogle Scholar
  13. D. R. Hipp, D. Kennedy, and J. Mistachkin. SQLite Database, 2012.Google ScholarGoogle Scholar
  14. M. G. Ivanova et al. An architecture for recycling intermediates in a column-store. In SIGMOD, 2009. Google ScholarGoogle Scholar
  15. T. Kissinger et al. QPPT: Query Processing on Prefix Trees. In CIDR, 2013.Google ScholarGoogle Scholar
  16. Y. Kotidis and N. Roussopoulos. Dynamat: a dynamic view management system for data warehouses. In SIGMOD, 1999. Google ScholarGoogle Scholar
  17. K. Krikellas, S. D. Viglas, and M. Cintra. Generating code for holistic query evaluation. In ICDE, 2010.Google ScholarGoogle Scholar
  18. K. Krikellas, S. D. Viglas, and M. Cintra. Modeling multithreaded query execution on chip multiprocessors. In ADMS, 2010.Google ScholarGoogle Scholar
  19. C. Lattner. LLVM: An Infrastructure for Multi-Stage Optimization. Master's thesis, Computer Science Dept., University of Illinois at Urbana-Champaign, 2002.Google ScholarGoogle Scholar
  20. D. G. Murray, M. Isard, and Y. Yu. Steno: Automatic Optimization of Declarative Queries. In PLDI, 2011. Google ScholarGoogle Scholar
  21. F. Nagel, P. Boncz, and S. D. Viglas. Recycling in pipelined query evaluation. In ICDE, 2013. Google ScholarGoogle Scholar
  22. T. Neumann. Efficiently compiling efficient query plans for modern hardware. Proc. VLDB Endow., 4(9), 2011. Google ScholarGoogle Scholar
  23. J. Patel et al. Building a Scalable Geo-Spatial DBMS: Technology, Implementation, and Evaluation. In SIGMOD, 1997. Google ScholarGoogle Scholar
  24. H. Pirk, S. Manegold, and M. Kersten. Accelerating Foreign-Key Joins using Asymmetric Memory Channels. In ADMS, 2011.Google ScholarGoogle Scholar
  25. J. Rao et al. Compiled query execution engine using jvm. In ICDE, 2006. Google ScholarGoogle Scholar
  26. T. K. Sellis. Intelligent caching and indexing techniques for relational database systems. Inf. Syst., 13, 1988. Google ScholarGoogle Scholar
  27. J. Sompolski, M. Zukowski, and P. Boncz. Vectorization vs. compilation in query execution. In DaMoN, 2011. Google ScholarGoogle Scholar
  28. R. Tsuchiyama et al. The OpenCL Programming Book. Fixstar, 2012.Google ScholarGoogle Scholar
  29. Y. Zhang and J. Yang. Optimizing I/O for Big Array Analytics. Proc. VLDB Endow., 5(8), 2012. Google ScholarGoogle Scholar

Index Terms

  1. Just-in-time compilation for SQL query processing
            Index terms have been assigned to the content through auto-classification.

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image Proceedings of the VLDB Endowment
              Proceedings of the VLDB Endowment  Volume 6, Issue 11
              August 2013
              237 pages

              Publisher

              VLDB Endowment

              Publication History

              • Published: 1 August 2013
              Published in pvldb Volume 6, Issue 11

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader