[Документация Yandex Cloud](../../index.md) > [Yandex Managed Service for Sharded PostgreSQL](../index.md) > Концепции > Взаимосвязь ресурсов сервиса

# Взаимосвязь ресурсов в Yandex Managed Service for Sharded PostgreSQL



Sharded PostgreSQL — система для горизонтального масштабирования PostgreSQL через [шардирование](../../glossary/sharding.md). Фактически это несколько кластеров PostgreSQL, объединенных в один кластер Sharded PostgreSQL.

[Кластер](../../glossary/cluster.md) Managed Service for Sharded PostgreSQL состоит из _шардов_, _роутера_ и _координатора_. Роутеры и координаторы запускаются на _хостах_ — виртуальных машинах с выделенными вычислительными ресурсами и зарезервированным объемом хранилища данных.

## Шард {#shard}

Шард — это кластер Managed Service for PostgreSQL, расположенный в том же [каталоге](../../resource-manager/concepts/resources-hierarchy.md#folder) и [облачной сети](../../vpc/concepts/network.md), что и кластер Managed Service for Sharded PostgreSQL.

Шардов может быть один или несколько. Максимальное число шардов не ограничено и не зависит от типа шардирования, которое используется в кластере.

Каждый шард хранит независимый фрагмент данных. Данные распределяются по шардам согласно [ключу шардирования](sharding-keys.md).

Запросы направляются к шарду в зависимости от данных, которые он содержит. За распределение запросов между шардами отвечает роутер.

## Роутер {#router}

Роутер — основной компонент кластера Managed Service for Sharded PostgreSQL, отвечающий за маршрутизацию запросов.

Клиент подключается к роутеру и отправляет запросы по протоколу PostgreSQL. Роутер анализирует запрос, перенаправляет его на шард, где хранятся нужные данные, получает результат выполнения запроса и возвращает его клиенту.

Роутер находит нужный шард с помощью правил шардирования, которые поставляет координатор.

При создании кластера вы можете выбрать тип шардирования — стандартное или расширенное. Если выбрать стандартное, в кластер будут добавлены хосты `INFRA`, объединяющие роли роутера и координатора. Чтобы обеспечить отказоустойчивость такого кластера, рекомендуется создать не менее трех хостов `INFRA` в разных зонах доступности. Максимальное число хостов `INFRA` — семь.

Если выбрать расширенное шардирование, роутерам будут выделены отдельные хосты `ROUTER`. Число роутеров, расположенных на таких хостах, не ограничено.

## Координатор {#coordinator}

Координатор — это компонент кластера Managed Service for Sharded PostgreSQL, отвечающий за хранение правил шардирования и балансировку нагрузки на шарды.

При стандартном шардировании роль координатора выполняет хост `INFRA`. Чтобы обеспечить отказоустойчивость такого кластера, рекомендуется создать не менее трех хостов `INFRA` в разных зонах доступности. Максимальное число хостов `INFRA` — семь.

При расширенном шардировании роль координатора выполняет хост `COORDINATOR`. Чтобы обеспечить отказоустойчивость кластера, рекомендуется создать три хоста `COORDINATOR` в разных зонах доступности. Максимальное число хостов `COORDINATOR` — семь.

Координаторы хранят правила шардирования в базе данных QDB, запущенной на хостах `INFRA` или `COORDINATOR`. Эта база данных представляет собой кластер [etcd](https://etcd.io), в котором изменения данных согласуются по [алгоритму консенсуса](https://raft.github.io).

С помощью координатора вы можете задавать и редактировать правила шардирования для всех роутеров сразу. Если изменить правила на одном из координаторов, обновленная информация будет передана другим координаторам и роутерам.



При работе необходимо учитывать, что контролирует сервис, а что — клиент Yandex Cloud. Понимание этих зон контроля помогает эффективно использовать облачные ресурсы и избегать возможных проблем при работе с базами данных. Подробнее в разделе [Разграничение зон контроля пользователей сервисов управляемых баз данных (MDB) и Yandex Cloud](../../overview/concepts/mdb-responsibilities.md).