Отказоустойчивость за счет распределенной нагрузки
С точки зрения архитектуры, Shardman — распределённая СУБД, состоящая из нескольких серверов, где каждый шард хранит часть данных. При этом часть серверов используется для репликации данных каждого шарда, что обеспечивает отказоустойчивость. Для связи между шардами используется мультиплексор — специальный «транспорт», оптимизирующий работу с сетью и нагрузку на СУБД при выполнении распределённых запросов. Shardman отличают три ключевых особенности:
- Возможность горизонтального масштабирования. Когда сервер СУБД перестаёт справляться с нагрузками, хранящиеся на нём данные можно равномерно распределить по другим серверам — шардам. Систему можно продолжать прозрачно масштабировать, добавляя к ней новые серверные мощности.
- Встроенная отказоустойчивость. Shardman автоматически реплицирует данные каждого шарда на резервные серверы, чтобы в случае отказа любого из узлов, прозрачно для пользователей перенаправить запросы на другой сервер.
- Строгие гарантии изоляции и согласованности данных. Shardman расширяет модель согласованности данных PostgreSQL для распределенных систем и гарантирует прозрачную работу транзакций для клиентов БД.
«В информационных системах крупных компаний или банков мы подходим к высоким транзакционным нагрузкам, приближающимся к потолку возможностей традиционных СУБД. В таких случаях без горизонтальной масштабируемости не обойтись. В ответ на такие потребности заказчиков мы выпустили Shardman — СУБД, которая сможет обеспечить горизонтальное масштабирование баз данных OLTP при строгом соответствии требованиям ACID (атомарность, согласованность, изолированность и надёжность)», — отметил Иван Панченко, заместитель генерального директора, сооснователь Postgres Professional.
Когда пригодится Shardman?
По информации разработчика, Shardman подойдет для случаев, когда:
- Пользователей так много, что один сервер не справляется с таким количеством соединений;
- Нагрузка на запись такая большая (OLTP-система), что один сервер с ней не справляется;
- Данных так много, что они не помещаются на один сервер: ни в память, ни на диск;
- Требуется обработка большого объёма данных параллельно (OLAP-система);
- Приложение имеет сложную логику на стороне СУБД, в результате чего потребляется много процессорного времени.
Дополнительные возможности: прозрачная работа с данными, ускорение работы приложений, инкрементальный бэкап и механизм сжатия данных
Shardman основана на базе PostgreSQL 14, но снабжена дополнительными функциями для крупных инсталляций. Среди главных преимуществ новой СУБД:
- Прозрачная работа с данными. Клиент, подключившись к любому узлу распределённой системы, получает доступ ко всем данным, хранящимся в системе.
- Новейших механизм интерконнекта, отсекающий избыточные TCP-сессии между шардами, снижающий нагрузку на сеть и конкуренцию за ресурсы.
- Ускорение работы приложений, имеющих сложную логику на стороне СУБД и повышение общего TPS всей СУБД.
- Дополнительные возможности СУБД Postgres Pro Enterprise: механизм сжатия данных CFS, инкрементальный бэкап на уровне страниц, механизм для резервного копирования PTRACK и расширение pgpro_stats.
Техническая документация
Полная техническая документация к Shardman уже опубликована на сайте Postgres Professional: https://postgrespro.ru/docs/shardman/14/index
Онлайн-презентация новой СУБД
5 марта в 11:00 специалисты Postgres Professional проведут вебинар, где представят работу Shardman, расскажут об архитектуре системы и ее возможностях, а также ответят на вопросы. Все зарегистрированные участники встречи получат запись митапа.