title

text

Анастасия Лубенникова
Анастасия Лубенникова Postgres Professional Разработчик
12:15 05 февраля
45 мин

Новые возможности B-tree в PostgreSQL

Самый часто используемый тип индексов в PostgresSQL - B-tree. Эта структура данных и связанные с ней алгоритмы развиваются уже больше 40 лет. Но, как мы знаем, нет предела совершенству. В этом докладе пойдет речь об особенностях структуры B-tree и его реализации в PostgreSQL, важных для оптимального использования индексов. Кроме того, мы представим улучшения функциональности B-tree в PostgreSQL, которые войдут в релиз 9.6. Это компрессия дубликатов и новые возможности использования покрывающих (covering) индексов.

Слайды

Видео

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

  • Валерий Попов
    Валерий Попов Postgres Professional Руководитель группы информационной безопасности и сертификации
    22 мин

    Информационная безопасность в PostgreSQL

    В докладе рассмотрим требования информационной безопасности, которые предъявляются к СУБД, используемым для государственных нужд. Разбираются требования регуляторов, проводится сравнение имеющихся сертифицированных версий СУБД, принципы организации дискреционного и мандатного методов доступа к данным. Подробно рассмотрено, как обеспечить невозможность доступа к конфиденциальным данным после их использования (очистка памяти), в каких местах и каким способом реализована очистка данных в СУБД Postgres Pro. В докладе будет рассказано о новой возможности обеспечения безопасности на уровне строк (RLS), которая появилась в PostgreSQL 9.5. Также рассмотрим, как работает группа Security Information в международной группе разработчиков PostgreSQL, каким образом устраняются уязвимости.

  • Магнус  Хагандер
    Магнус Хагандер PostgreSQL Global Development Group Разработчик и коммиттер

    О структуре и эволюции сообщества PostgreSQL

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

  • Jean-Paul Argudo
    Jean-Paul Argudo Dalibo CEO

    Миграция на PostgreSQL : причины... и последствия

    Будут рассмотрены традиционные аргументы на тему "почему следует выбрать PostgreSQL среди других баз данных"... Помимо этого, и что достаточно ново для сообщества, будут рассмотрены последствия такого выбора. Переход на PostgreSQL влечет за собой переход не только к таким вещам, как например Linux, но и переход к мышлению в стиле свободного ПО. Быстрый темп развития PostgreSQL диктует новые методы проверки, к которым компании должны адаптироваться.

  • Александр Коротков
    Александр Коротков Postgres Professional Руководитель разработки
    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 ...", как один из механизмов расширяемости.

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