1.2. Область применения

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

Следующие свойства базы данных или рабочей нагрузки указывают на потенциальную необходимость перехода на распределённую систему:

  • Рабочий набор данных не помещается в оперативную память одного сервера. В сегментированных системах общий объём оперативной памяти может быть гораздо больше.

  • Операции технического обслуживания, например очистка, занимают слишком много времени. Shardman сразу использует секционированные таблицы, поэтому операции обслуживания можно распараллеливать по узлам и секциям таблиц.

  • Слишком большое количество сеансов чтения для одного экземпляра PostgreSQL. Shardman позволяет распределять сеансы чтения по кластеру и очень эффективно обрабатывать внутренние соединения с помощью мультиплексирующего транспорта.

  • Интенсивные операции записи. Сегментированные системы могут работать со значительно большим общим количеством дисковых операций ввода-вывода в секунду.

  • Запросы с интенсивной вычислительной нагрузкой на процессор. Shardman позволяет распределить вычисления по узлам и сократить время выполнения сложных запросов.

Использовать Shardman нецелесообразно в следующих случаях:

  • Вертикальное масштабирование экономически и технически возможно.

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

  • Сложная аналитика, в частности объединение сегментированных таблиц в условиях отсутствия ключа сегментирования.

  • Развёртывание кластера типа Multi-DC/Multi-region.