Типы хостов в Yandex StoreDoc
В Yandex StoreDoc есть четыре типа хостов: MONGOD, MONGOINFRA, MONGOCFG и MONGOS. Каждый тип хостов имеет собственную роль и функции в кластере. Тип и количество хостов в кластере Yandex StoreDoc зависит от выбранного типа шардирования.
Роли и функции хостов разных типов
-
MONGOD— хосты обработки запросов и хранения данных. Эти хосты присутствуют как в шардированных, так и в нешардированных кластерах.Основные функции хостов
MONGOD:- обработка запросов чтения и записи;
- хранение пользовательских данных;
- реплицирование данных;
- сохранение консистентности данных.
-
MONGOCFG— хосты конфигурации шардирования. Эти хосты присутствуют только в кластерах с расширенным шардированием.Основные функции хостов
MONGOCFG:- хранение метаданных шардирования и их обновление при изменении состава шардов;
- предоставление хостам
MONGOSактуальной информации о чанках и шардах; - координация процесса миграции чанков между шардами.
-
MONGOS— хосты маршрутизации. Эти хосты присутствуют только в кластерах с расширенным шардированием.Основные функции хостов
MONGOS:- прием клиентских подключений;
- маршрутизация запросов к шардам;
- обработка результатов выполнения запросов или подзапросов;
- выдача итогового результата клиенту.
-
MONGOINFRA— инфраструктурные хосты. Этот тип хостов совмещает в себе ролиMONGOSиMONGOCFG. ХостыMONGOINFRAприсутствуют только в кластерах со стандартным шардированием.Основные функции хостов
MONGOINFRA:- прием клиентских подключений;
- маршрутизация запросов к шардам;
- хранение метаданных шардирования и их обновление при изменении состава шардов;
- координация процесса миграции чанков между шардами;
- обработка результатов выполнения запросов или подзапросов;
- выдача итогового результата клиенту.
Состав кластера в зависимости от типа шардирования
Количество хостов разных типов в кластере Yandex StoreDoc зависит от используемого типа шардирования:
| Тип шардирования | MONGOD | MONGOINFRA | MONGOS | MONGOCFG |
|---|---|---|---|---|
| Без шардирования | ⩾ 1 | — | — | — |
| Стандартный | ⩾ 1 | ⩾ 3 | — | — |
| Расширенный | ⩾ 1 | — | ⩾ 2 | ⩾ 3 |
Нешардированный кластер состоит только из хостов MONGOD, которые обрабатывают клиентские запросы. За маршрутизацию запросов отвечает клиент Yandex StoreDoc.
Кластер со стандартным шардированием состоит из хостов MONGOD и MONGOINFRA.
Обработка клиентских запросов к кластеру происходит следующим образом:
- Клиент Yandex StoreDoc соединяется со всеми хостами
MONGOINFRAи отправляет запрос одному из них. - Хост
MONGOINFRAанализирует запрос и определяет, какие шарды он затрагивает. - Хост
MONGOINFRAнаправляет запрос или набор подзапросов на соответствующие хостыMONGOD. - Хосты
MONGODвыполняют полученный запрос или подзапросы. - Хост
MONGOINFRAобрабатывает результат выполнения запроса или подзапросов, после чего возвращает клиенту итоговый результат.
Кластер с расширенным шардированием состоит из хостов MONGOD, MONGOS и MONGOCFG.
Обработка клиентских запросов к кластеру происходит следующим образом:
- Клиент Yandex StoreDoc соединяется со всеми хостами
MONGOSи отправляет запрос одному из них. - Хост
MONGOSанализирует запрос и определяет, какие шарды он затрагивает, используя информацию от хостовMONGOCFG. - Хост
MONGOSнаправляет запрос или набор подзапросов на соответствующие хостыMONGOD. - Хосты
MONGODвыполняют полученный запрос или подзапросы. - Хост
MONGOSобрабатывает результат выполнения запроса или подзапросов, после чего возвращает клиенту итоговый результат.