Cassandra写一致性级别为ALL



根据文档编写一致性级别ALL表示:

写操作必须写入该分区的集群中所有复制节点的提交日志和memtable。

我有一个Cassandra集群,有3个节点,复制因子为3。

当3个节点中有2个关闭时,Cassandra写,一致性级别设置为ALL的地方不会失败(仍然成功)。

当涉及到读操作时,文档是清楚的:

返回所有副本响应后的记录。如果副本没有响应

,读取操作将失败。

当涉及到一致性写时,它会简单地尝试吗?写入所有副本节点,但如果失败,那么仍然OK(不返回异常)?

你在这里看到的,被称为提示切换。

通常,写操作被发送到单个节点(协调器),它确保所有副本都被写入,并在满足一致性设置时返回。如果不能写入副本,则将其存储在本地(在协调器上)。一旦down节点返回,提示就会重新播放,一致性就会恢复(理论上)。

请记住,提示默认只持续3小时。

所以在这种情况下,写操作会继续进行,但是读操作会抛出"没有足够的副本"。例外。

相关内容

  • 没有找到相关文章

最新更新