Из официальной документации Riak: «В системе Riak CS любой узел может отвечать на запросы клиентов - главного узла нет, и каждый узел имеет одинаковые обязанности. Поскольку данные реплицируются (по умолчанию три реплики на объект), другие узлы автоматически берут на себя ответственность отказавшие или не коммуникативные узлы, данные остаются доступными даже в случае отказа узла или сетевого раздела ».
Есть ли опыт, если три реплики на объект дают некоторые преимущества (скорость, безопасность) или можно использовать Riak без реплик (меньше места)?
С 0 репликами Riak по-прежнему с радостью хранит все ваши данные, но отключение одного узла (для обслуживания) приведет к недоступности некоторых ваших данных, а потеря узла приведет к потере данных.
Представьте себе следующие сценарии (оба используют гипотетический размер кольца 5)
Если узел 3 отключен, все данные по-прежнему доступны на 2 других узлах. Все по-прежнему можно читать или писать, и когда это произойдет, изменения будут перенесены по мере необходимости.
В этом случае, если узел 3 выключен, все данные, которые были на нем, становятся недоступными, а если узел полностью утерян, данные также теряются.
У Basho есть неплохая документация, но это хорошее место для начала http://basho.com/posts/technical/understanding-riak_core-handoff/