title

text

D
Dmitry Melnik ИСП РАН
: December
22 мин

Speeding up query execution in PostgreSQL using LLVM JIT compiler

Currently, PostgreSQL uses the interpreter to execute SQL-queries. This yields an overhead caused by indirect calls to handler functions and runtime checks, which could be avoided if the query were compiled into the native code "on-the-fly" (i.e. JIT-compiled): at a run time the specific table structure is known as well as data types used in the query. This is especially important for complex queries, which performance is CPU-bound. At the moment there are two major projects that implement JIT-compilation in PostgreSQL: a commercial database Vitesse DB and an open-source project PGStorm. The former uses LLVM JIT to achieve up to 8x speedup on selected TPC-H benchmarks, while the latter JIT-compiles the query using CUDA and executes it on GPU, which allows to speed up execution of specific query types by an order.

Our work is dedicated to adding support for SQL query JIT-compilation to PostgreSQL using LLVM compiler infrastructure. In the presentation we'll discuss how JIT-compilation can be used to speed up various stages of query execution in PostgreSQL, and the specifics of translating an SQL query into LLVM bitcode to achieve good performing native code. Also we'll present preliminary results for our JIT-compiler on TPC-H benchmark.

Слайды

Видео

Другие доклады

  • Tatsuo  Ishii
    Tatsuo Ishii

    PostgreSQL clusters using streaming replication and pgpool-II

    The talk is about PostgreSQL clusters using streaming replication and pgpool-II, which are quite popular in Japan. Plus, the next version of pgpool-II will be released this winter, so the talk will be about what's new in the version.

  • Dmitry Boikov
    Dmitry Boikov АО БАРС Груп
    Марат Фаттахов
    Марат Фаттахов АО "БАРС Груп"
    22 мин

    Porting a cloud solution from Oracle to Postgres

    First working on Oracle, we could not ignore appearance and growth of PostgreSQL. I will describe how we came to PostgreSQL and share some experience of migrating a large medical system.

    • developing a code converter;
    • packages migration;
    • our patches solving some of the migration problems.

  • Will Leinweber
    Will Leinweber Heroku

    Heroku Postgres: architecture of a cloud database service

    In addition to providing a general purpose web platform, Heroku has a large, supporting Postgres service. Over the years, we've learned a lot about running Postgres at scale.
    In this talk, we'll cover:

    • why Postgres is attractive to run as a cloud service
    • how to provision, manage, and monitor a Postgres fleet
    • tradeoffs needed to make Postgres work in this environment
    • automating failure recovery
    • and more

  • Никита Волков
    Никита Волков Sannsyn AS
    45 мин

    Programming Postgres clients declaratively in Haskell with Hasql

    This talk will cover "hasql", a highly-efficient library for integration of Haskell and PostgreSQL. The library provides an API for declarative programming, which is also quite flexible and terse. The talk will cover the benefits of declarative programming as well as the architectural and technical solutions behind the library, including the implementation of the PostgreSQL binary protocol. Hasql is used in PostgREST, a popular modern restful API for Postgres.