«Что у него внутри» - хранение данных на низком уровне
Знание внутреннего устройства СУБД на уровне хранения данных позволяет ускорить её работу и уложить данные более компактно. На данном мастер-классе будет представлен инструмент pageinspect, одним из разработчиков которого недавно стал московский программист Николай Шаплов. На практике этот инструмент будет использован для изучения того, как в БД лежат данные и как их можно разложить оптимально. Будут и задачи для самостоятельного исследования.
Слайды
Видео
Другие доклады
-
Михаил Тюрин Avito Главный системный архитектор
Пять слайдов о Postgres
За годы моей работы с PostgreSQL возникло ясное представление, о том, каковы его основные достоинства ("Киллер-фичи", "вкусняшки"), из-за которых мы выбираем и рекомендуем выбирать эту СУБД.
1. Начало
2. Документация
3. Комьюнити
4.1 Транзакционный DDL
4.2 WAL и настоящая физическая репликация
4.3 Транзакционный снепшот и настоящая логическая репликация и PGQ
4.4 Потрясающая расширяемость
5. Успех -
Федор Сигаев Postgres ProfessionalАнастасия Лубенникова Postgres Professional РазработчикАлександр Коротков Postgres Professional Руководитель разработки
Программирование на уровне ядра и расширений PostgreSQL
На мастер-классе будет рассказано про устройство внутренних интерфейсов PostgreSQL, о том, как их использовать для написания собственных патчей или расширений, и как продвигать результаты своей работы в сообществе. Анастасия Лубенникова — российский разработчик PostgreSQL, уже известный мировому сообществу – работает над курсом «молодого бойца» для программистов PostgreSQL, что уже анонсировалось в Facebook и на Хабре: Hacking PostgreSQL.
Отдельные части этого курса, подкрепленные многолетним опытом Федора Сигаева и Александра Короткова, составят основу мастер-класса. Мастер-класс рассчитан на программистов, владеющих языком C.
-
Дмитрий Воронин ОАО "НПО РусБИТех" Инженер-программист
Расширенные возможности аудита в СУБД PostgreSQL в дистрибутиве ОС "Astra Linux Special Edition"
Базовая версия СУБД PostgreSQL предоставляет возможность регистрации событий:
- входа и выхода пользователей; - отказа в доступе к защищаемому ресурсу;с указанием даты, времени и имени пользователя.
Требования руководящих документов к подсистеме регистрации событий намного шире возможностей базовой версии СУБД PostgreSQL.
ОАО «НПО РусБИТех» проводит необходимые доработки СУБД PostgreSQL для расширения ее функциональных возможностей.
В результате доработок подсистема регистрации событий СУБД PostgreSQL в составе ОС «AstraLinux Special Edition» дополнительно обеспечивает возможность регистрации:
- создания и уничтожения объектов баз данных; - изменения правил разграничения доступа; - как отказов, так и успешных попыток доступа к объектам баз данных; - изменений полномочий субъектов доступа и статуса объектов доступа.
Для всех событий указываются:
- дата и время; - пользователь, осуществляющий регистрируемое действие; - объект, над которым проводится действие; - тип события; - результат операции.
Подсистема регистрации событий доработанного PostgreSQL интегрирована в централизованную систему аудита ОС «Astra Linux Special Edition». Обеспечена настройка правил регистрации событий без останова (перезапуска) СУБД.
-
ДДмитрий Мельник ИСП РАН разработчик
Ускорение исполнения запросов в 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.