Proceedings of the Institute for System Programming of the RAS
RUS  ENG    JOURNALS   PEOPLE   ORGANISATIONS   CONFERENCES   SEMINARS   VIDEO LIBRARY   PACKAGE AMSBIB  
General information
Latest issue
Archive

Search papers
Search references

RSS
Latest issue
Current issues
Archive issues
What is RSS



Proceedings of ISP RAS:
Year:
Volume:
Issue:
Page:
Find






Personal entry:
Login:
Password:
Save password
Enter
Forgotten password?
Register


Proceedings of the Institute for System Programming of the RAS, 2020, Volume 32, Issue 1, Pages 205–220
DOI: https://doi.org/10.15514/ISPRAS-2020-32(1)-11
(Mi tisp493)
 

This article is cited in 2 scientific papers (total in 2 papers)

Machine code caching in PostgreSQL query JIT-compiler

M. V. Pantilimonov, R. A. Buchatskiy, R. A. Zhuykov

Ivannikov Institute for System Programming of the RAS
Full-text PDF (504 kB) Citations (2)
References:
Abstract: As the efficiency of main and external memory grows, alongside with decreasing hardware costs, the performance of database management systems (DBMS) on certain kinds of queries is more determined by CPU characteristics and the way it is utilized. Relational DBMS utilize diverse execution models to run SQL queries. Those models have different properties, but in either way suffer from substantial overhead during query plan interpretation. The overhead comes from indirect calls to handler functions, runtime checks and large number of branch instructions. One way to solve this problem is dynamic query compilation that is reasonable only in those cases when query interpretation time is larger than the time of compilation and optimized machine code execution. This requirement can be satisfied only when the amount of data to be processed is large enough. If query interpretation takes milliseconds to finish, then the cost of dynamic compilation can be hundreds of times more than the execution time of generated machine code. To pay off the cost of dynamic compilation, the generated machine code has to be reused in subsequent executions, thus saving the cost of code compilation and optimization. In this paper, we examine the method of machine code caching in our query JIT-compiler for DBMS PostgreSQL. The proposed method allows us to eliminate compilation overhead. The results show that dynamic compilation of queries with machine code caching feature gives a significant speedup on OLTP queries.
Keywords: dynamic compilation, JIT-compilation, machine code caching, query execution, DBMS, PostgreSQL, LLVM.
Document Type: Article
Language: Russian
Citation: M. V. Pantilimonov, R. A. Buchatskiy, R. A. Zhuykov, “Machine code caching in PostgreSQL query JIT-compiler”, Proceedings of ISP RAS, 32:1 (2020), 205–220
Citation in format AMSBIB
\Bibitem{PanBucZhu20}
\by M.~V.~Pantilimonov, R.~A.~Buchatskiy, R.~A.~Zhuykov
\paper Machine code caching in PostgreSQL query JIT-compiler
\jour Proceedings of ISP RAS
\yr 2020
\vol 32
\issue 1
\pages 205--220
\mathnet{http://mi.mathnet.ru/tisp493}
\crossref{https://doi.org/10.15514/ISPRAS-2020-32(1)-11}
Linking options:
  • https://www.mathnet.ru/eng/tisp493
  • https://www.mathnet.ru/eng/tisp/v32/i1/p205
  • This publication is cited in the following 2 articles:
    Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Proceedings of the Institute for System Programming of the RAS
    Statistics & downloads:
    Abstract page:97
    Full-text PDF :88
    References:13
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024