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.

Слайды

Видео

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

  • Брюс Момжиан
    Брюс Момжиан EnterpriseDB Senior Database Architect
    45 мин

    Многогранность развития Postgres

    В Postgres 9.5 добавилось много нового: UPSERT, CUBE, ROLLAP, функции для работы JSONB, улучшения PostGIS. Для администраторов - Row Level Securlty, новый тип индекса, и улучшения производительности на больших серверах.

    В этом докладе будет рассказано о 10 наиболее значимых возможностях версии 9.5, а также о некоторых фичах следующих релизов.

  • Александр Чистяков
    Александр Чистяков ISST Lab, ITMO University Researcher
    22 мин

    Слон из нержавеющей стали: продолжаем тестирование производительности PostgreSQL

    Замечательная компания servers.com предоставила нам один из своих серверов для тестов, что позволило нам протестировать производительность PostgreSQL на реальном железе под разными операционными системами, включая SmartOS, DragonFly и Windows. Полученные результаты мы хотим представить сообществу.

  • Alvaro Hernandez
    Alvaro Hernandez 8Kdata CTO
    45 мин

    PostgreSQL и Java: прошлое, настоящее и будущее

    Java - наиболее часто используемый язык программирования в мире. Как же он поддерживается в PostgreSQL? Какие в нем есть подводные камни и каковы лучшие практики? Java продолжает развиваться, как это сказывается на ее использовании в PostgreSQL?

    Несмотря на солидный возраст языка Java, он силен как никогда. Фактически, это язык программирования мира enterprise. И с выхода Java 8, он вернулся в мир стартапов и open source. И сейчас Java становится наиболее распространенным языком для обращения к PostgreSQL.

    В этом докладе будет разобрано, как была в прошлом, и, что важнее, как в настоящем, организована работа с PostgreSQL из Java: JDBC, PL/Java и другие, реже используемые средства.

    Затем мы заглянем в будущее, чтобы понять, что сейчас ещё разрабатывается, как например новый реактивный драйвер Phoebe для доступа из Java в PostgreSQL, ориентированный на кластеры, конвейерные запросы и полностью асинхронный не JDBC интерфейс. Рассмотрим также, что должно быть сделано на серверной стороне, чтобы Java могла стать основным языком серверного программирования для PostgreSQL.

  • Andreas Scherbaum
    Andreas Scherbaum Pivotal Principal Software Engineer

    Как мы сделали Greenplum Open Source

    Greenplum — это форк PostgreSQL, оптимизированный для использования в аналитике и хранилищах данных. Компания Pivotal в начале 2015 г. анонсировала, что часть её продуктов станут продуктами Open Source, в том числе и Greenplum Database. На этом выступлении будет представлен обзор истории Greenplum, всего процесса перевода продукта в мир Open Source и препятствий, с которыми мы столкнулись. Мы также расскажем, как можно принять участие в нашем проекте.