Поведение Cas при разделении сети - PullRequest
0 голосов
/ 24 августа 2011

Руководство Couchbase 2.0 описывает разделение сети как потенциальную проблему.

http://docs.couchbase.org/couchbase-manual-2.0/couchbase-architecture.html#couchbase-architecture-failover-automatic-considerations

Но я не видел, как (если) Couchbase 2.0 справляется с такими проблемами на стороне хранилища данных.

У меня вопрос, как CAS реализован в кластере и как операции CAS решают проблему разделения мозга? Есть ли кластерная широкая блокировка? Последний писатель выигрывает?

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Тот же вопрос был задан в нашем списке групп Google: http://groups.google.com/group/couchbase/browse_thread/thread/e0d543d9b17f9c77

Это внизу темы, сообщения начинаются с 30 августа

Перри

1 голос
/ 30 августа 2011

Membase и Couchbase Server 2.0 разделяют данные. Для каждого фрагмента данных (vbucket) всегда есть один сервер, который является источником правды.

Хорошая сторона этого в том, что это всегда строго последовательно. Нет необходимости разрабатывать для разрешения конфликтов и т. Д.

Но когда какой-то узел выходит из строя, вы просто теряете доступ к подмножеству ваших данных. Вы можете выполнить отработку отказа, и в этом случае реплики будут преобразованы в master для vbuckets, которые были потеряны, таким образом «восстанавливая» доступ к этим vbuckets. Обратите внимание, что потеря некоторых недавних мутаций неизбежна в этом случае из-за некоторой задержки репликации. А аварийное переключение - это ручное управление (хотя в последней версии реализовано очень тщательно и ограничено автоматическое восстановление после отказа).

...