Shardman – распределенная СУБД для крупных инсталляций
Компания Postgres Professional, российский разработчик СУБД, объявила о выпуске в широкое пользование Shardman – новой распределенной СУБД для высоконагруженных систем. Она разрабатывалась специально по требованию заказчиков и подходит для крупнейших инсталляций в десятки и сотни терабайт, когда одиночного сервера недостаточно. Как отмечают в компании, Shardman уже включена в Реестр российского ПО, получила сертификацию ФСТЭК и находится на завершающих стадиях тестирования в крупных компаниях нефтегазового и финансового сектора.
С точки зрения архитектуры Shardman представляет собой распределенную СУБД, состоящую из нескольких серверов, где каждый шард хранит часть данных. При этом часть серверов используется для репликации данных каждого шарда, что обеспечивает отказоустойчивость. Для связи между шардами используется мультиплексор – специальный «транспорт», оптимизирующий работу с сетью и нагрузку на СУБД при выполнении распределенных запросов.
СУБД Shardman основана на PostgreSQL 14, но снабжена дополнительными функциями для крупных инсталляций. Она имеет три ключевые особенности:
- возможность горизонтального масштабирования – когда сервер СУБД перестает справляться с нагрузками, хранящиеся на нем данные можно равномерно распределить по другим серверам (шардам). Систему можно продолжать прозрачно масштабировать, добавляя к ней новые серверные мощности;
- встроенная отказоустойчивость – Shardman автоматически реплицирует данные каждого шарда на резервные серверы, чтобы в случае отказа любого из узлов прозрачно для пользователей перенаправить запросы на другой сервер;
- строгие гарантии изоляции и согласованности данных – Shardman расширяет модель согласованности данных PostgreSQL для распределенных систем и гарантирует прозрачную работу транзакций для клиентов БД.
По данным компании, Shardman подойдет для следующих случаев:
- когда пользователей так много, что один сервер не справляется с таким количеством соединений;
- нагрузка на запись такая большая (OLTP-система), что один сервер с ней не справляется;
- данных так много, что они не помещаются на один сервер: ни в память, ни на диск;
- требуется обработка большого объема данных параллельно (OLAP-система);
- приложение имеет сложную логику на стороне СУБД, в результате чего потребляется много процессорного времени.
Дополнительные возможности системы – прозрачная работа с данными, ускорение работы приложений, инкрементальный бэкап и механизм сжатия данных.