1.3. Основы архитектуры #
Прежде чем продолжить, вы должны разобраться в основах архитектуры системы Postgres Pro Shardman. Составив картину взаимодействия частей Postgres Pro Shardman, вы сможете лучше понять материал этой главы.
В Postgres Pro Shardman используется клиент-серверная модель. Это решение для распределённых систем, работающее с OLTP для CRM/ERP в реальном времени, массово-параллельной архитектурой (MPP, Massively Parallel Processing), а также PaaS, SaaS, FaaS, хранилищами операционных данных (ODS, Operational Data Store) и системами управления мастер-данными (MDM, Master Data Management). Postgres Pro Shardman позволяет разбить большую базу данных на меньшие независимые части, расположенные на разных серверах.
Postgres Pro Shardman вводит понятие сегмента в экосистему PostgreSQL. Сегмент — это отдельная секция более крупной базы данных, используемая при горизонтальном масштабировании БД путём разбиения крупной БД на меньшие части, распределённые по нескольким серверам. Это позволяет распределить нагрузку и повысить уровень отказоустойчивости. Несколько сегментов объединяются в единую БД, но с каждым сегментом можно работать, как с отдельной БД. При этом количество сегментов со временем может измениться.
В Postgres Pro Shardman также есть несколько уникальных типов таблиц и объектов. За более подробной информацией обратитесь к разделам Типы таблиц и Объекты распределённой системы.
Транспорт Postgres Pro Shardman обеспечивает перенос данных и соединение между главным и резервными узлами на основании клиентских и рабочий процессов в момент получения данных от клиентских соединений. Любые ошибки отслеживаются на уровне кластера (в частности, с помощью приложения monitor) для быстрого обнаружения сбоев транзакций и узлов, потери соединения или взаимоблокировок.
Сервер Postgres Pro Shardman обрабатывает несколько одновременных подключений от клиентов, в то время как коммуникация между кластерами обеспечивается транспортом Silk.
Основная работа с узлами происходит с помощью утилиты shardmanctl, а параметры конфигурации кластера задаются в файле sdmspec.json. Кроме того, shardmanctl управляет резервным копированием.
За более подробной информацией обратитесь к главе Внутренние особенности распределённой системы.