Секционирование без границ
Механизм секционирования в Postgres имеет ряд ограничений, которые не позволяют использовать концепцию секционирования в полной мере. Среди таких ограничений можно выделить неэффективность планирования запросов для секционированных таблиц (линейный рост времени планирования при увеличении количества секций), отсутствие HASH-секционирования, необходимость ручного управления секциями. Однако, средства расширяемости Postgres предоставляют разработчику широкие возможности, позволяющие обойти некоторые ограничения. В докладе будет рассказано, как внедрившись в код планировщика удалось оптимизировать время планирования запросов. Так метод бинарного поиска позволяет добиться логарифмического роста времени планирования для RANGE-секционированных таблиц. Поэтому использование даже тысяч секций не будет приводить к существенным накладным расходам. Также удалось реализовать HASH-секционирование с близким к константному времени планирования.
Слайды
Видео
Другие доклады
-
ДДмитрий Мельник ИСП РАН разработчик
Ускорение исполнения запросов в 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.
-
Дмитрий Долгов Zalando SE Senior Software Engineer
Jsonb в PostgreSQL и NoSQL тренд: сравнение функциональности и производительности
Использование слабоструктурированных данных определенно является трендом современности, и это верно не только для NoSQL, но и для традиционных RDBMS. Многие реляционные базы данные (например, PostgreSQL, Oracle, db2, Mysql) позволяют хранить данные в json формате, и, очевидно, реализуют это по-разному.
Доклад содержит две части:
- Сравнение поддержки json в PostgreSQL и других реляционных базах данных, а именно Mysql, Oracle, db2, MSSql в контексте реализованных возможностей, функций и т.д.
- Сравнение производительности для баз с наиболее полной поддержкой json (PostgreSQL и Mysql) а также MongoDB на различных видах нагрузок и конфигураций.
-
Pavel Stehule
Хранимые процедуры в PostgreSQL, язык PL/pgSQL
- Архитектура
- Дизайн и релизация языка PL/pgSQL
- Разница между PL/SQL и PL/pgSQL
- Преимущества и проблемы PL/pgSQL
-
Jean-Paul Argudo Dalibo CEO
Миграция на PostgreSQL : причины... и последствия
Будут рассмотрены традиционные аргументы на тему "почему следует выбрать PostgreSQL среди других баз данных"... Помимо этого, и что достаточно ново для сообщества, будут рассмотрены последствия такого выбора. Переход на PostgreSQL влечет за собой переход не только к таким вещам, как например Linux, но и переход к мышлению в стиле свободного ПО. Быстрый темп развития PostgreSQL диктует новые методы проверки, к которым компании должны адаптироваться.