title

text

Д
Дмитрий Мельник ИСП РАН разработчик
13:45 05 февраля
22 мин

Ускорение исполнения запросов в PostgreSQL с использованием JIT-компилятора LLVM

В настоящее время в PostgreSQL для исполнения SQL-запросов используется интерпретатор. Это приводит к накладным расходам, связанным с неявными вызовами функций-обработчиков и проверок, которых можно было бы избежать при создании исполняемого кода "на лету" (JIT-компиляции) под конкретный SQL-запрос: в этом случае во время выполнения уже известна структура используемых таблиц и типы данных. Особенно это актуально для сложных запросов, где производительность процессора является основным ограничением. В настоящий момент существует два известных проекта, реализующих JIT-компиляцию в PostgreSQL: коммерческое решение Vitesse DB и open-source проект PGStorm. В первом проекте за счет использования LLVM JIT авторам удается получить ускорение до 8 раз на тестах из набора TPC-H. Второй проект реализует JIT-компиляцию запроса с использованием CUDA для исполнения его на GPU, что позволяет ускорить выполнение некоторых типов запросов на порядок.

Наша работа посвящена добавлению поддержки JIT-компиляции SQL-запросов в PostgreSQL с использованием компиляторной инфраструктуры LLVM. В докладе будет подробно рассмотрено, как JIT-компиляция может быть использована для ускорения различных этапов исполнения SQL-запросов, а также особенности трансляции SQL-запросов в LLVM-биткод для получения эффективного исполняемого кода. Также будут представлены предварительные результаты тестирования JIT-компилятора на наборе тестов TPC-H.

Слайды

Видео

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

  • Лев Ласкин
    Лев Ласкин Электрон Ведущий специалист по внедрению решений на базе СПО
    22 мин

    Опыт использования PostgreSQL в качестве СУБД для платформы 1С:Предприятие от 8.1 до 8.3

    В конце 2006 компанией 1С была реализована работа платформы 1С:Предприятие с СУБД PostgreSQL, которая может функционировать под управлением операционных систем Windows или Linux. В докладе будет предпринята попытка обобщить опыт совместного использования платформы 1С:Предприятие с СУБД PostgreSQL начиная с 2008 года. Будут рассмотрены несколько историй успеха, технические особенности работы, приведены примеры решения конкретных задач, даны рекомендации по выбору за и против. Доклад может быть интересен сотрудникам компаний рассматривающих вариант использования PostgreSQL для платформы 1С:Предприятие, DBA, специалистам интересующимся возможностями расширяемости PostgreSQL.

  • Pavel Stehule
    Pavel Stehule freelancer

    Хранимые процедуры в PostgreSQL, язык PL/pgSQL

    • Архитектура
    • Дизайн и релизация языка PL/pgSQL
    • Разница между PL/SQL и PL/pgSQL
    • Преимущества и проблемы PL/pgSQL

  • Константин Евтеев
    Константин Евтеев X5 FoodTech Главный архитектор
    45 мин

    Поток данных в Авито

    В рамках доклада речь пойдет о подсистеме транзакционного сбора изменений состояний объектов и сигналов о событиях; доставке этих данных получателям, обработке на различных этапах процесса.

    1 Обзор data stream и задач, решаемых с его помощью. 2 Подготовка данных: - работа с триггерами - блокировки - сигналы 3 Доставка событий 4 Прием данных 5 Особенности согласования данных

  • Дмитрий Долгов
    Дмитрий Долгов Zalando SE Senior Software Engineer
    45 мин

    Jsonb в PostgreSQL и NoSQL тренд: сравнение функциональности и производительности

    Использование слабоструктурированных данных определенно является трендом современности, и это верно не только для NoSQL, но и для традиционных RDBMS. Многие реляционные базы данные (например, PostgreSQL, Oracle, db2, Mysql) позволяют хранить данные в json формате, и, очевидно, реализуют это по-разному.

    Доклад содержит две части:

    • Сравнение поддержки json в PostgreSQL и других реляционных базах данных, а именно Mysql, Oracle, db2, MSSql в контексте реализованных возможностей, функций и т.д.
    • Сравнение производительности для баз с наиболее полной поддержкой json (PostgreSQL и Mysql) а также MongoDB на различных видах нагрузок и конфигураций.