1.2. Область применения
Shardman обеспечивает горизонтальное масштабирование со всеми преимуществами единой базы данных. Приложения могут использовать любой узел для доступа к распределённой базе данных и работать в основном так же, как и с одним экземпляром PostgreSQL. Тем не менее, по сути это распределённая система, в которой существуют определённые правила проектирования схемы и написания запросов. Основное направление внедрения — локализация данных и вычислений.
Следующие свойства базы данных или рабочей нагрузки указывают на потенциальную необходимость перехода на распределённую систему:
Рабочий набор данных не помещается в оперативную память одного сервера. В сегментированных системах общий объём оперативной памяти может быть гораздо больше.
Операции технического обслуживания, например очистка, занимают слишком много времени. Shardman сразу использует секционированные таблицы, поэтому операции обслуживания можно распараллеливать по узлам и секциям таблиц.
Слишком большое количество сеансов чтения для одного экземпляра PostgreSQL. Shardman позволяет распределять сеансы чтения по кластеру и очень эффективно обрабатывать внутренние соединения с помощью мультиплексирующего транспорта.
Интенсивные операции записи. Сегментированные системы могут работать со значительно большим общим количеством дисковых операций ввода-вывода в секунду.
Запросы с интенсивной вычислительной нагрузкой на процессор. Shardman позволяет распределить вычисления по узлам и сократить время выполнения сложных запросов.
Использовать Shardman нецелесообразно в следующих случаях:
Вертикальное масштабирование экономически и технически возможно.
Модель данных и рабочая нагрузка требуют большого количества межсегментных транзакций.
Сложная аналитика, в частности объединение сегментированных таблиц в условиях отсутствия ключа сегментирования.
Развёртывание кластера типа Multi-DC/Multi-region.