Cassandra:低可用性以获得更高的一致性

标签 cassandra

Cassandra 提供可调的一致性。因此,如果用户要求更高级别的一致性,则在返回成功响应之前,将需要相应更多的节点进行响应。有据可查的是,更高的一致性也意味着更低的可用性。

那么随着一致性的提高,可用性降低的原因是什么?当写入正在进行时,节点是否会被阻塞,从而无法进行其他操作?

最佳答案

考虑一下您有一个三节点集群的情况。作为客户端,您决定以一致性级别仲裁进行读/写。这需要两个节点的确认。这意味着即使集群中的一个节点已关闭,您也可以读取/写入集群。

现在您决定以一致性方式读取/写入ALL。这需要所有 3 个节点都确认。这意味着您需要所有 3 个节点都启动才能成功读取或写入。

因此,将一致性级别从quorum提高到ALL会导致集群的可用性降低。如果将一致性降低到ONE,则可以承受两个节点的故障。因此,降低一致性级别会提高集群的可用性。

关于Cassandra:低可用性以获得更高的一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68439628/

相关文章:

java - Cassandra 数据库 : Parsing an Instant from Cassandra's Timestamp in Json fails

java - 使用 nodetool 的 Cassandra 快照的 takeSnapshot java.lang.NoSuchMethodException

cassandra - JanusGraph + Cassandra(一般问题)

cassandra - 使用 PlayOrm 读取查询确实会返回适当的结果

cassandra - 使用 Hector API 将数据插入新的 Cassandra 数据库的最简单方法?

cassandra - 实现零停机 Cassandra/DataStax 迁移

python-3.x - 连接 Cassandra 和 Python 的有效方法(抑制警告)

cassandra - 在 Titan-1.1.0-SNAPSHOT 中增加 thrift 帧大小的正确配置是什么

java - Cassandra 对时间戳列的查询不返回 Java 即时类型的值

java - 如何从结果集中检索列值