ВХОДИТ В ЕДИНЫЙ РЕЕСТР РОССИЙСКИХ ПРОГРАММ И БАЗ ДАННЫХ

СУБД Postgres Pro Shardman

Распределенная реляционная СУБД с горизонтальным масштабированием

Shardman – это технология для создания распределенной реляционной СУБД, предоставляющая строгие гарантии целостности данных.

Shardman — отдельная разработка, которая базируется на PostgreSQL, но при этом обладает расширенными возможностями СУБД Postgres Pro, такими как CFS, pg_probackup, pgpro_stats, pgpro_audit.

Возможности Shardman

Горизонтальное масштабирование
Если сервер СУБД не справляется с нагрузкой, можно разделить данные на части, распределить их по разным серверам (шардам) и при увеличении нагрузки просто добавлять ещё серверов
Встроенная отказоустойчивость
Shardman реплицирует данные каждого шарда на резервные серверы, поэтому если один из шардов откажет, Shardman переключит запросы на соответствующую реплику
Строгие гарантии изоляции и согласованности данных
Shardman расширяет модель согласованности данных PostgreSQL для распределенных систем и гарантирует такую же работу транзакций, как и СУБД, работающая на одном сервере
Совместимость с PostgreSQL
Переход на Shardman с одиночного PostgreSQL требует только выработки методологии разделения данных на шарды, все SQL будут продолжать работать, независимо от того, к какому шарду подключится ваше приложение

Архитектура

Shardman — это распределенная СУБД, состоящая из отдельных серверов (шардов), каждый из которых содержит только часть данных, при этом обеспечивается отказоустойчивость каждого шарда с помощью репликации на резервные серверы.

Шарды связаны между собой через специальный транспорт — интерконнект — для быстрого обмена данными при выполнении распределенных запросов. Подключение к Shardman и выполнение всех видов запросов возможно через любой шард.

В Shardman существует несколько видов таблиц:

  • распределенные таблицы — таблицы которые разбиты на секции, секции таких таблиц размещены на разных шардах, часть секций таблицы хранится локально, часть ссылается на другие шарды через fdw, на каждом шарде можно обратиться к любым данным таблицы;
  • соразмещенные таблицы — вид распределенной таблицы, у которой размещение секций зависит от родительской таблицы, т.е. на том же шарде, где расположена соответствующая родительская секция, это позволяет увеличить производительность, т.к. объединения связанных данных производится локально на одном шарде ;
  • глобальные таблицы – таблицы, у которых данные идентичны на всех шардах и обновление данных происходит одновременно на всех шардах, рекомендуется использовать для таблиц с редко меняющимися данными.

    В Shardman последовательности и роли также являются глобальными объектами.

  • Когда нужен Shardman

    • пользователей так много, что один сервер не справляется с таким количеством соединений;
    • нагрузка на запись такая большая (OLTP-система), что один сервер с ней не справляется;
    • когда данных так много, что они не помещаются на один сервер: ни в память, ни на диск;
    • требуется обработка большого объёма данных параллельно (OLAP-система);
    • приложение имеет сложную логику на стороне СУБД, в результате чего потребляется много процессорного времени.

    Когда Shardman не нужен

    • один сервер может справиться с нагрузкой, количество потребляемой памяти, ввода/вывода и количество сессий (пользователей) не превышает возможности одиночного сервера.

    Попробуйте СУБД Postgres Pro Shardman!

    Запросить консультацию специалиста: presale@postgrespro.ru