Конференция завершена.

Ждем вас

на Data Internals X

в следующий раз!

Managed Sharded PostgreSQL Service в Яндекс Облаке

Разработка СУБД

Миграции данных
PostgreSQL
MongoDB
Базы данных / другое
GO
Хранилища
Обработка данных

Доклад принят в программу конференции

Целевая аудитория

Разработчики, пользователи баз данных.

Тезисы

Stateless Postgres Query Router (SPQR) — open source-решение для горизонтального масштабирования PostgreSQL через шардирование. Мы разрабатываем эту систему в Yandex Cloud, и это уже четвертая итерация наших попыток построить масштабируемый PostgreSQL. До SPQR мы пробовали переиспользовать PostgreSQL FDW-механизм, писали хуки в планнере запросов, реализовали прокси на чистом C — и в итоге пришли к SPQR, написанному на Go и работающему на уровне протокола PostgreSQL.

SPQR поддерживает шардирование как по диапазону значений, так и по хэшу. Система совместима не только с обычным текстовым протоколом PostgreSQL, но и с extended protocol — что позволяет использовать prepared statements и клиентские библиотеки без изменений. Роутер работает в сессионном и транзакционном режимах, в реальном времени определяет, на каком шарде нужно выполнить запрос, и управляет перемещением данных между ними.

В докладе расскажем:
* как построить масштабируемую OLTP-базу на PostgreSQL;
* какие архитектурные решения легли в основу SPQR;
* как мы добавляем новые шарды без решардинга;
* как устроен собственный SQL-лексер, и почему мы отказались от pganalyze/pg_query_go;
* как реализовать PostgreSQL-прокси с поддержкой транзакций и extended protocol;
* какие проблемы возникают при построении таких систем: от оценки нагрузки на ключи до блокировок, перевоза данных и отказоустойчивости;
* будущее развития нашей системы.

Это доклад для разработчиков распределенных систем и тех, кто масштабирует PostgreSQL или только собирается это делать. Вы узнаете, что стоит за словами «Postgres-прокси» на практике — с примерами, болью и кодом.

Инженер, делает открытые СУБД в Яндексе, к.т.н., доцент Уральского федерального университета. Занимается исследованиями в области индексирования данных с 2008 года. Преподает в Уральском федеральном университете и ШАД Яндекса.

Видео

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

Разработка СУБД