首页 > 解决方案 > 假设我将一条记录写入 cassandra 集群,并立即读取它。cassandra如何保证我读到的就是我刚刚写的最新结果?

问题描述

假设我将一条记录写入 cassandra 集群,并立即读取它。可能是写的过程还没有完成。cassandra怎么保证我读到的是我刚刚写的最新结果呢?

标签: cassandracassandra-3.0

解决方案


Cassandra 具有可调整的一致性。由您决定需要多少一致性 - 始终以可用性为代价。

如果您的写入根本没有得到确认,您根本无法保证,但您可能会取回数据。

您可以使用 ConsistencyLevel.ALL 强制 Cassandra 强制所有持有该分区键的节点确认您的写入强制所有节点在读取时发送数据。这会很慢,您可能最好使用 RDBMS。

一个好的中间方法是 ConsistencyLevel.QUROUM。

https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlConfigConsistency.html


推荐阅读