title

text

Петр Ярмуз
Петр Ярмуз Allegro sp. z.o.o Senior Database Engineer
13:45 06 февраля
45 мин

Хакинг с Postgres 11 - pg_threads

Мое выступление будет посвящено написанию расширений для Postgres. Я создал модуль pg_threads, который реализует упрощенную версию API POSIX потоков внутри базы данных Postgres. Он дает разработчикам баз данных новый мощный инструмент для параллельного написания кода и использования преимуществ многоядерной CPU. Существует дополнительное API для транзакционных и нетранзакционных IPC между потоками. Я покажу пример приложения, в котором реализовано преимущество нового API - линейное масштабирование равномерно на два узла. Презентация сопровождается живой демонстрацией на vagrant с двумя виртуальными машинами на Ubuntu и двуми базами данных Postgres.

Слайды

Видео

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

  • Мирослав Шедиви
    Мирослав Шедиви solute GmbH Senior Software Developer
    90 мин

    Python и PostgreSQL с использованием psycopg2

    Python, может быть, не самый быстрый язык программирования на CPU, но быстрая и простая разработка на нем экономит массу усилий того, кто находится между креслом и клавиатурой. В ходе мастер-класса мы разберем "psycopg2" - наиболее популярную библиотеку для доступа к серверу PostgreSQL, а также напишем небольшое приложение, используя некоторые его полезные свойства.

  • Иван Муратов
    Иван Муратов ООО "Первая Мониторинговая Компания" Технический директор
    22 мин

    PostgreSQL + PostGIS + TimescaleDB - хранилище для систем мониторинга транспорта

    PostgreSQL + PostGIS + TimescaleDB - это готовый к эксплуатации симбиоз из надежной РСУБД, мощного набора географических объектов и вычислений и работа с time-series данными. Данная связка прекрасно решает проблему хранения телеметрии, при этом оставляя в ваших руках всю экосистему PostgreSQL.

  • Алексей Лустин
    Алексей Лустин SilverBulleters, LLC CTO
    22 мин

    Анализ проблемных запросов как средство регулярного рефакторинга кода 1С

    1. Принципы поиска проблемных запросов в PostgreSQL
    2. Оценка гипотетических индексов и степени их влияния на планы запросов
    3. Наиболее часто встречающиеся ошибки у 1С-программистов
    4. Базовые методы рефакторинга кода с учетом особенностей PostgreSQL
    5. Хранение аналитической информации журнала работы PostgreSQL для оценки качества рефакторинга

  • T
    Tatsuro Yamada NTT Comware Ведущий специалист по базам данных
    22 мин

    Настройка автопланировщика с использованием цикла обратной связи

    При OLAP и пакетной обрабокте данных часто наблюдается ситуация, что чем сложее запрос (содержит много джойнов, фильтров и аггрегативных функций), тем выше вероятность ошибок в оценке количества строк, в результате чего планировщик выбирает неэффективный план исполнения запроса.

    Для того, чтобы решить эту проблему, я разработал инструмент под названием pg_plan_advsr - это расширение для PostgreSQL, которое исправляет ошибки оценки путем неоднократного возвращения в планировщик информации, собранной в ходе исполнения запроса.

    Расширение содержит три фичи:

    1. Автоматическая оптимизация плана запроса за счет неоднократного возвращения информации о ходе выполнения запроса в планировщик.
    2. Сохранение всех выработанных при оптимизации планов запросов в таблицу истории.
    3. Создание и сохранение хинтов оптимизатора с тем, чтобы иметь возможность воспроизвести выработанные планы исполнения запросов в процессе настройки.

    Я верифицировал эффективность pg_plan_advsr путем запуска join order benchmark (JOB) на PG 10.4, в ходе чего наблюдалось сокращение времени исполнения запроса до 50% от первоначального. Таким образом, расширение будет полезно пользователям, который хотят настроить планировщик для OLAP и пакетной обработки данных.

    В ходе презентации я расскажу о следующие моментах:

    • Принципы построения и архитектура pg_plan_advsr.
    • Подробная информация о результатах тестирования JOB.
    • Направления улучшений в будущем.
    • Совместное использование расширений aqo и pg_plan_advsr together (экспериментальное).