Почему минимальный размер и размер целевой реплики одинаковы в Service Fabri c? - PullRequest
0 голосов
/ 20 февраля 2020

Этот вопрос специально для Service Fabri c, но концепция выходит за рамки этой единой кластерной системы, поэтому не стесняйтесь вмешиваться без опыта SF.

Я пытаюсь понять плюсы и минусы создания MinReplicaSetSize и TargetReplicaSetSize одинаковые или разные номера для службы с сохранением состояния.

Допустим, у вас есть 10 разделов и 3 реплики. Это означает, что каждый раздел будет иметь 3 реплики (1 основная и 2 дополнительные). Допустим, у вас есть коллекция, распределенная по этим 10 разделам. Необходимо рассмотреть 2 ситуации:

MinReplica и TargetReplica = 3

В некоторых разделах происходит сбой первичной реплики. Один из Вторичных повышен до Первоначального общества. Так как количество реплик = 2

MinReplica = 2 и TargetReplica = 3

В некоторых разделах происходит сбой первичной реплики. Один из Вторичных повышен до Первоначального общества. Поскольку счетчик MinReplica по-прежнему безопасен, запись на новый первичный сервер продолжается и обновляется 1 левый вторичный сервер. Пока это происходит, еще один вторичный сервер помещается в буфер и затем должен быть увеличен до тех пор, пока запись продолжится. Так в чем же минус?

Возможно ли, что новый Первичный может потерпеть неудачу, Вторичный может перейти в Первичный, а также потерпеть неудачу, прежде чем новый Вторичный Догон наберет скорость; поэтому теряет зафиксированные данные? Это недостаток? И в сценарии MinReplica = 3 / TargetReplica = 4 даже этого не произойдет.

Я спрашиваю, потому что я обычно вижу их как равные числа и задумался над этим.

1 Ответ

0 голосов
/ 27 февраля 2020

Это утверждение " В некоторых разделах происходит сбой первичной реплики. Один из вторичных серверов переводится в первичный. Так как количество реплик = 2 "неверно.

Для успешного выполнения записи операция должна завершиться в большинстве (N / 2) +1 из N реплики. Наличие трех реплик означает, что размер кворума равен 2. Если 2 записи успешны, операция записи завершается успешно. Изменение его на 2 не влияет на кворум. Размер кворума определяется размером MinReplicaSetSize. Изменение его на 5 будет означать размер кворума 3 , и тогда ваше утверждение о потере 1 реплики станет действительным.

Также обратите внимание, что MinReplicaSetSize '1013 * представление ' в наборе реплик:

MinReplicaSetSize определяет минимальное количество реплик в представлении, например, если TargetReplicaSetSize равно пяти, а MinReplicaSetSize равно трем тогда даже при наличии трех одновременных сбоев [он] все равно будет иметь три реплики в своем представлении набора реплик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...