Postgres Professional летит в Канаду
C 17 по 21 мая 2016 года в Оттаве проходит ежегодная конференция постресистов - PgCon 2016, The PostgreSQL Conference. Наша команда подготовила три доклада и дружно вылетела в Канаду для участия в конференции, встреч и бесед с коллегами, обретения положительных эмоций и, конечно же, для того, что бы держать руку на пульсе современных разработок в мире под именем PostgreSQL.
![](/media/2016/05/17/ottawa2015_800x376.jpg)
Все наши три выступления пройдут в первый день докладов PgCon 2016 - 19 мая. Открывающим будет доклад Анастасии Лубенниковой «B-Tree - explore the heart of PostgreSQL».
B-tree – наиболее распространенный тип индекса. Его использует большинство, если не все современные СУБД. Его структура данных и алгоритмы развивались в течение 40 лет. B-tree PostgreSQL не является исключением - он постоянно развивался, оптимизировался. Но, как и везде, здесь еще есть место для множества улучшений. На конференции мы обсудим новые возможности, которые уже сделаны, и идеи для дальнейшего совершенствования B-tree в PostgreSQL. Конечно, это требует глубокого погружения и понимания внутреннего строения B-tree, и здесь я буду вашим проводником.
_
Следующим запланирован доклад Олега Бартунова и Фёдора Сигаева на тему, в которой участие российских разработчиков PostgreSQL весьма значительное, - «Полнотекстовый поиск умер? Да здравствует полнотекстовый поиск!»
Олег и Федор расскажут о новых особенностях и возможностях полнотекстового поиска в PostgreSQL.
Много лет назад мы ввели понятие полнотекстового поиска в PostgreSQL, но с тех пор развитие этой функциональности было приостановлено. Это популярная особенность Postgres, она должна расширяться и улучшаться, чтобы соответствовать современным запросам и ожиданиям пользователей. Мы представим несколько новых улучшений в полнотекстовом поиске.Время от времени мы получаем письма от пользователей о функциональности полнотекстового поиска, который мы разработали много лет назад. Люди спрашивают о новых возможностях, которые они хотели бы иметь в будущей версии. Самые популярные пожелания были о возможности поиска фраз, улучшенной поддержке орфографии и более простом использовании словарей. Были также жалобы на скорость полнотекстового поиска по сравнению с другими внешними поисковыми системами и вопросы о работе "нечеткого" поиска при использовании FTS (Full-Text Search - полнотекстовый поиск). Некоторые пользователи спрашивали о функции ранжирования и алгоритмах, лежащих в его основе. PostgreSQL становится все лучше и лучше с каждым новым релизом, но FTS, даже если и получил плюс от улучшения индекса, по-прежнему такой же, каким мы разработали его около 10 лет назад. В этом докладе мы представим несколько новых улучшений и функций, которые, надеемся, сделают полнотекстовый поиск в PostgreSQL более привлекательным и эффективным.
Третий доклад от Postgres Professional на конференции в Оттаве сделает Александр Коротков. Тема его выступления: «Расширяемость PostgreSQL: Возникновение и новые горизонты» с подзаголовком «Навстречу подключаемым хранилищам данных».
С самого начала PostgreSQL был разработан с поддержкой расширяемости. Хорошо известна цитата о методах доступа к расширениям: "It is imperative that a user be able to construct new access methods to provide efficient access to instances of nontraditional base types" - "Крайне важно, чтобы пользователь имел возможность построить новые методы для обеспечения эффективного доступа к экземплярам PostgreSQL c нетрадиционными типами данных" [Michael Stonebraker, Jeff Anton, Michael Hirohama. Extendability in POSTGRES, IEEE Data Eng. Bull. 10 (2) pp.16-23, 1987]Первоначально heap был лишь одним из методов доступа, а также B-tree и hash-индексы. Расширяемость методов доступа предполагает теперь поддержку подключаемых внешних хранилищ данных. На данный момент для таблицы pg_am системного каталога определен только доступ по индексу. Поэтому для того, чтобы удовлетворить потребности первоначальной конструкции PostgreSQL, необходимо поддерживать две функции:
- Доступ по индексу к подключаемым хранилищам данным, то есть способность к внедрению новых типов индексов путем добавления новых кортежей в таблицу pg_am;
- Доступ к подключаемым хранилищам данных для таблиц без традиционного метода heap.
Кроме выполнения команды "CREATE ACCESS METHOD" расширяемые методы доступа по индексу нуждаются в WAL-журналировании, но ведение своих собственных WAL-журналов для каждого расширения неприемлемо, так как есть риск потерять данные при восстановлении. Другой подход заключается в ведении WAL-журналирования, которое фиксирует только разницу между страницами.
Существуют лишь несколько СУБД, которые поддерживают подключаемые хранилища данных. MySQL - наиболее яркий пример. Однако, имея дело с различными подключаемыми хранилищами данных, мы как будто имеем дело с разными СУБД. И это, на мой взгляд, - не самый лучший путь для PostgreSQL.
В докладе я расскажу о современном положении дел в отношении методов доступа по индексу и об актуальных разработках методов доступа для использования подключаемых хранилищ данных.
Как проводит время десант Postgres Professional в канадской столице, вы можете увидеть в фоторепортаже Олега Бартунова, Федора Сигаева и Константина Книжника, который они ведут между разговорам и встречами, прогулками и пробежками по Оттаве:
![](https://3.bp.blogspot.com/-KJX9-DSD0T0/VznbAggK-nI/AAAAAAAAM38/EpiHg3KfkcoEn7VDQPKV2tysThIpw7UxwCLcB/s160/001.jpg)
![](https://1.bp.blogspot.com/-T3tWIRDLv9Q/VznbAhYws2I/AAAAAAAAM34/uI3iJoE6nHoQkOBu3ysDNxxLKZY_F6qKgCLcB/s160/002.jpg)
![](https://2.bp.blogspot.com/-CFvy_D8ndBo/VznbAjdVZiI/AAAAAAAAM4A/RODpsvAk67ACDAEPCGzqkCjW2dwSjwmUACLcB/s160/003.jpg)
![](https://3.bp.blogspot.com/-U9ZOFVl4yck/VznbA26egkI/AAAAAAAAM4E/uLtYUQsovkgSz7-eW-2WN0tU_0lS1b8SwCLcB/s160/004.jpg)
![](https://1.bp.blogspot.com/-1RIteSiWvT0/VznbAwjCBGI/AAAAAAAAM4I/pxNdwnWbyYwYHmDB-eg90AHjRL7HpVEeACLcB/s160/005.jpg)
![](https://3.bp.blogspot.com/-EeGZ9ROXPhU/VznbBK7wq2I/AAAAAAAAM4M/JVuZj7ujs00TmeDs1RMo1qL0tbRvnJzZwCLcB/s200/006cut.jpg)
![](https://3.bp.blogspot.com/-ZQtdYPpe_M4/VznbBFrqLII/AAAAAAAAM4Q/xrF3muXFlloLdQrZuERRFAHfqNxT95twQCLcB/s200/007.jpg)
![](https://1.bp.blogspot.com/-ktgpxZIBPqc/VznbBFZhHdI/AAAAAAAAM4U/mhQovniM-w8TE6JxheTgP1cxgYXqtOXeACLcB/s200/008.jpg)
![](https://4.bp.blogspot.com/-gcG3zyBHT4M/Vzs0yz10SmI/AAAAAAAAM5s/U_TVk49VBjQBPhJw_GFOaZ1okSZ8hwTYQCLcB/s200/009cut.jpg)