Этот вопрос специально для 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 даже этого не произойдет.
Я спрашиваю, потому что я обычно вижу их как равные числа и задумался над этим.