Назад

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 не нужен

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

Наши контакты

Наш телефон: (4872) 40-59-59 (4872) 52-10-04
Наш адрес:

г. Тула, ул. Степанова, д. 34А, офис 2

© ООО "Компания Бревис" г. Тула