Mongo
Из этого ресурса Я понимаю, почему mongo не A(Highly Available)
, основываясь на приведенном ниже утверждении
MongoDB поддерживаетМодель «один мастер».Это означает, что у вас есть главный узел и несколько подчиненных узлов.В случае, если мастер выходит из строя, один из рабов выбирается в качестве мастера.Этот процесс происходит автоматически, но это занимает время, обычно 10-40 секунд.В это время выборов нового лидера ваш набор реплик не работает и не может принимать записи
По той же причине, по которой Монго называется Consistent
(поскольку запись не произошла, поэтому возвращаются последниеданные в системе) но не Available
(недоступно для записи)?
До тех пор, пока не произойдет переизбрание, и операция записи еще не завершена, может ли подчиненный возврат выполнить операцию чтения?Также пользователь снова запускает операцию записи после выбора мастера?
Но я не понимаю под другим углом почему Mongo highly consistent
Как сказано в Где mongodbстоять в теореме CAP? ,
Монго равен consistent
, когда все чтения идут по умолчанию на первичное.
Но это не так.Если в соответствии с моделью Master / Slave все операции чтения перейдут к первичным, что тогда используют Slave?Далее говорится: If you optionally enable reading from the secondaries then MongoDB becomes eventually consistent where it's possible to read out-of-date results.
Это означает, что mongo может не соответствовать ведущему / ведомому (при условии, что я не настраиваю запись на все узлы перед возвратом).Мне не имеет смысла говорить, что монго непротиворечиво, если все чтение и запись идут на первичную.В этом случае любая другая БД (например, кассандра) будет согласованной.Не так ли?
Кассандра Из этого ресурса Я понимаю, почему Кассандра A(Highly Available )
основана на приведенном ниже утверждении
Кассандраподдерживает модель «несколько мастеров».Потеря одного узла не влияет на способность кластера принимать записи - так что вы можете достичь 100% времени безотказной работы для записи
Но я не понимаю , почему Кассандране Consistent
?Это потому, что узел недоступен для записи (так как координированный узел не может подключиться) доступен для чтения, что может вернуть устаревшие данные?