Heroku Postgres: архитектура облачного сервиса баз данных
Помимо предоставления универсальной веб-платформы, Heroku предлагает крупномасштабные и поддерживаемые сервисы Postgres. За годы мы многое узнали о том, как использовать Postgres в большом масштабе.
На этом докладе мы расскажем:
- почему Postgres привлекателен для запуска в облачном сервисе
- как подготовить, управлять и контролировать инфраструктуру Postgres
- чем придётся пожертвовать, чтобы Postgres работал в такой среде
- об автоматическом восстановлении после сбоя
- и о многом другом
Слайды
Видео
Другие доклады
-
Heikki Linnakangas Pivotal PostgreSQL hacker
Внутреннее устройство индексов
PostgreSQL поддерживает несколько типов индексов: GiST, SP-GiST, GIN и, конечно, обычное B-дерево. Администраторы БД знают, когда применять каждый из них: GIN для полнотекстового поиска, GiST для геометрических данных и т. д., но как они устроены внутри? Благодаря чему они хорошо работают в сценариях использования, для которых предназначены? В этой презентации я познакомлю вас с внутренней структурой каждого из этих типов индексов и расскажу, каковы их сильные и слабые стороны.
-
Евгений Сергеев
Lua в Postgres(из alpha в beta)
В докладе хотел бы рассказать про возможности использования языка луа в постгресе, способы расширения функциональности при помощи готовых модулей, возможности удаленной отладки, про проделанные изменения с версии 1.0, отличия в стиле написания кода plpgsql и pllua при использовании функций как аргументов. Так же можно рассказать про некоторые спорные моменты, такие как расширение поддерживаемых типов данных в этом языке. Если интересна другая сторона, то могу поделиться опытом доработки фунциональности скриптового языка в постгресе.
-
Александр Коротков Postgres Professional Руководитель разработки
Расширяемость 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 ...", как один из механизмов расширяемости.
В докладе будут продемонстрированы текущие результаты в области подключаемых индексных методов доступа, а также концепция подключаемых хранилищ.
-
Alvaro Hernandez 8Kdata CTO
PostgreSQL и Java: прошлое, настоящее и будущее
Java - наиболее часто используемый язык программирования в мире. Как же он поддерживается в PostgreSQL? Какие в нем есть подводные камни и каковы лучшие практики? Java продолжает развиваться, как это сказывается на ее использовании в PostgreSQL?
Несмотря на солидный возраст языка Java, он силен как никогда. Фактически, это язык программирования мира enterprise. И с выхода Java 8, он вернулся в мир стартапов и open source. И сейчас Java становится наиболее распространенным языком для обращения к PostgreSQL.
В этом докладе будет разобрано, как была в прошлом, и, что важнее, как в настоящем, организована работа с PostgreSQL из Java: JDBC, PL/Java и другие, реже используемые средства.
Затем мы заглянем в будущее, чтобы понять, что сейчас ещё разрабатывается, как например новый реактивный драйвер Phoebe для доступа из Java в PostgreSQL, ориентированный на кластеры, конвейерные запросы и полностью асинхронный не JDBC интерфейс. Рассмотрим также, что должно быть сделано на серверной стороне, чтобы Java могла стать основным языком серверного программирования для PostgreSQL.