2011-12-14 2 views
2

Как мы все знаем, у нас есть ConsistencyLevel of ReplicationFactor в cassandra. И мы просто хотим использовать его для обеспечения согласованности данных. Потому что предполагается сохранить информацию о цене.Использование cassandra и сохранение согласованности данных

Какая стратегия лучше?

Напишите ВСЕ Убедитесь, что запись записана на все N реплик, прежде чем отвечать на запрос клиента. Любые нерегулярные реплики не будут работать

Читать ВСЕ Запросит все реплики и вернет запись с самой последней меткой времени, как только все реплики ответят. Любые невосприимчивые реплики не будут работать.

Кажется, что писать ВСЕ - это, безусловно, самое безопасное. Но не уверен, что все лучше? Любое мнение об этом за и против? Любой другой выбор nosql, который вы считаете лучшим?

+0

Мне нужно добавить комментарий, если вы считаете, что какой-то другой nosql db лучше, чем cassandra в этом случае использования. Скажите мне причину. Фактически я предполагаю, что HBase может добиться большего соответствия последовательности. Просто не знаю очень подробно об этом. –

+0

http://wiki.apache.org/cassandra/API –

ответ

2

«Лучше» зависит от того, чего вы пытаетесь достичь. Использование записи или чтения на уровне согласованности ALL означает, что ваш кластер будет недоступен для записи (или чтения), если даже один узел не отвечает.

Как правило, запись и чтение на уровне согласованности QUORUM - это эффективный сбалансированный подход, поскольку он обеспечивает полную согласованность (вы никогда не будете читать устаревшее значение), но также можете терпеть неудачу меньшинства узлов.

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

+0

Tks.DNA. Да, я могу понять, таким образом, он будет балансировать нагрузку на запись и чтение, а также обеспечить согласованность. Вопрос о добавлении, когда EACH_QUORUM полезен? Мне просто интересно. –

+1

См. Http://www.datastax.com/docs/0.7/consistency/index, например. EACH_QUORUM гарантирует, что запись была записана в кворум реплик в каждом центре данных в кластере, прежде чем отвечать на запрос клиента. Он предназначен для использования в кластерах со стратегиями размещения реплик с поддержкой стойки, такими как NetworkTopologyStrategy. – DNA

Смежные вопросы