в операции insert, но запись в primary де-факто уже случилась. Второй приходит в primary, получает duplicate violation и уходит довольный, считая, что документ уже есть. После этого primary падает, документ идет на rollback, что ОК, т.к. первый читатель никогда не получал ack на вставку.
А вот второй, несмотря на majority, получил отлуп на не durable данных.
В этих рассуждениях есть ошибка? Знает ли кто-нибудь причину, почему так не произойдет?
Хороший вопрос. Второй клиент не уйдёт с отлупом, пока первый не получит ack. Потому что majority потребует подтверждения со большинства нод, а его не будет, потому что изменение ещё не реплицировалось.
Обсуждают сегодня