使用cassandra并保持数据一致性

时间:2011-12-14 01:11:37

标签: nosql cassandra consistency eventual-consistency

众所周知,我们在cassandra中拥有ReplicationFactor的ConsistencyLevel。我们只是想利用它来保持数据的一致性。因为它应该保留价格信息。

那么哪种策略更好?

全部写      确保在响应客户端之前将写入写入所有N个副本。任何无响应的副本都将无法执行操作

全部阅读      将查询所有副本并在所有副本都已回复后返回具有最新时间戳的记录。任何无响应的副本都将无法运行。

似乎写ALL肯定是最安全的。 但不确定Read all是否更好?关于利弊的任何意见?您认为其他任何选择的nosql都更好吗?

1 个答案:

答案 0 :(得分:2)

“更好”取决于你想要达到的目标。在一致性级别使用写入或读取意味着即使一个节点没有响应,您的群集也不可用于写入(或读取)。

通常,在一致性级别写入和读取QUORUM是一种有效的平衡方法,因为它提供了完全一致性(您永远不会读取过时的值),但也可以容忍少数节点的失败。

但“最佳”方法取决于您的应用程序以及您实际需要的一致性。特别是,如果您可以容忍较低的一致性,则可以获得更好的读写性能(以及更好的可用性)。