Почему большие БД обычно реализуются как фрагменты, заполненные репликами, а не репликами, заполненными фрагментами? - PullRequest
0 голосов
/ 07 декабря 2018

Я искал в Интернете информацию о репликации и разбиении и обнаружил, что при их совместном использовании они почти всегда учитывают следующий сценарий:

Получен запрос от сервера приложений.Программное обеспечение для маршрутизации маршрутов к осколку.Этот осколок обращается к некоторой соответствующей реплике на основе запроса и возвращает результат.

Мне интересно, реализуется ли когда-либо этот сценарий:

Получен запрос от сервера приложений.Программное обеспечение для маршрутизации (например, mongo-S в mongoDB) выбирает одну из нескольких реплик.Внутри этой реплики находятся осколки разных таблиц БД.Он выбирает подходящий и возвращает результат.

1 Ответ

0 голосов
/ 07 декабря 2018

Второй подход никогда не будет соответствовать архитектуре MongoDB, потому что:

  • Сначала в сегментированном кластере, если ключом запроса является ключ сегмента.Необходимо определить точный фрагмент, в котором будут находиться конкретные данные.После этого он будет искать первичную копию этого осколка, чтобы получить данные.
  • Теперь давайте предположим, что если Монго сначала найдет реплику, тогда вся концепция осколков будет потрачена впустую: - Поскольку всезапросы приземляются до одного узла реплики.А остальные брокеры останутся неиспользованными.
...