title

text

Александр Коротков
Александр Коротков Postgres Professional Руководитель разработки
17:00 04 февраля
45 мин

Расширяемость PostgreSQL: Истоки и новые горизонты

Postgres изначально был спроектирован таким образом, чтобы индексные методы доступа были расширяемыми. Известная цитата гласит: "Совершенно необходимо, чтобы пользователь мог создавать новые методы доступа, обеспечивающие эффективный доступ к значениям нетрадиционных типов данных" Michael Stonebraker, Jeff Anton, Michael Hirohama. Extendability in POSTGRES, IEEE Data Eng. Bull. 10 (2) pp.16-23, 1987

Изначально, heap был просто одним из методов доступа. Таким образом, подключаемые методы доступа означали также и подключаемые хранилища, если говорить современным языком. Сейчас в таблице pg_am системного каталога хранятся индексные методы доступа, интерфейс которых хорошо задокументирован. Таким образом, для того, чтобы современный PostgreSQL отвечал первоначальному замыслу необходимо реализовать две фичи:

  • Подключаемые индексные методы доступа, т.е. возможность реализовывать новые типы индексов путём добавления строк в таблицу pg_am;
  • Подключаемые хранилища, т.е. возможность реализовывать совершенно другие движки для хранения данных, не использующие традиционный heap.

Помимо чисто механической работы, такой как реализация команды "CREATE ACCESS METHOD", подключаемые индексные методы доступа должны был защищены WAL'ом. Сейчас, сообщество не хочет, чтобы расширения могли определять свой собственный формат WAL-записей, потому что возникает риск поломать одновременно recovery и репликацию, что неприемлемо. Другим подходом к этой проблеме является обобщённый формат WAL-записей, который задаёт разницу между версиями страницы в общем виде.

Очень немногие СУБД поддерживают сейчас подключаемые хранилища. Самая распространённая из них – MySQL. Но обращение к различным хранилищам в MySQL подобно обращению к различным СУБД. Поэтому, с нашей точки зрения, PostgreSQL не должен идти таким путём.

Однако, сейчас пользователи PostgreSQL всё больше понимают преимущества, которые они бы получили от использования альтернативных хранилищ. Идея колоночного и in-memeory хранилищ для PostgreSQL очень популярна. Одновременно с этим, возрастают наши технические возможности их реализовать. PostgreSQL приобрёл механизмы FDW и custom nodes. Обобщённый WAL и расширяемые индексные методы доступа ожидают включения в 9.6. Очень много работы на пути к подключаемым хранилищам уже сделано, даже если эта работа преследовала совсем другие цели.

Наступило время, когда разработчикам ядра PostgreSQL нужно всерьёз задуматься о нативной поддержке подключаемых хранилищ без костылей. В конце концов, мы должны получить команду "CREATE STORAGE ENGINE name ...", как один из механизмов расширяемости.

В докладе будут продемонстрированы текущие результаты в области подключаемых индексных методов доступа, а также концепция подключаемых хранилищ.

Слайды

Видео

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

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

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

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

  • Иван Гончаров
    Иван Гончаров IBM
    45 мин

    Почему IBM Power8 - оптимальная платформа для PostgreSQL

    Что такое платформа IBM POWER8? Благодаря каким особенностям архитектуры, получается достигать большей производительности и масштабируемости PG по сравнению с x86_64? Производительность ядра, подсистемы памяти, процессорного интерконнекта и ввода/вывода. Уникальные и доступные только на POWER8 "фишки". Опыт тестирования как pgbench, так и реальных приложений.

  • Алексей Игнатов
    Алексей Игнатов Postgres Professional Администратор баз данных
    90 мин

    Миграция с Oracle на Postgres

    На мастер-классе будут рассмотрены основные принципы перехода с Oracle на Postgres. Будут указаны инструменты для данного перехода, основные различия между Oracle и Postgres в подходах к написанию запросов и построению хранимых процедур.

    Также будет показаны рецепты по миграции кода PL/SQL в код PL/pgSQL, проблемы, связанные с различиями этих языков и пути их решения.

    Участникам мастер-класса понадобятся ноутбуки со скачанными демонстрационными материалами: https://yadi.sk/d/Y7_DPuYroCSRh (образ для virtualbox).

    Необходимо чтобы первый интерфейс принадлежал NAT network, второй host-only network. Адреса виртуалки 192.168.56.11 для NAT- сети и 192.168.57.11 для host only network

    Пароли root root , oracle oracle , postgres postgres. при старте виртуальной машины автоматически запускаются базы oracle XE и postgres 9.5.

  • Иван Панченко
    Иван Панченко Postgres Professional рзаместитель генерального директора
    22 мин

    Год Профессионального Постгреса в России

    Исполнилось год с момента создания российского вендора постгреса - компании Postgres Professional. Что полезного для сообщества было сделано компанией, над чем она работает сейчас - о разработках, о сертификации, о русской документации и об образовательной программе.