首页 > 解决方案 > cassandra 可能的节点丢失

问题描述

我对 Cassandra 很陌生,发现这个网站
https://www.ecyrd.com/cassandracalculator/
不确定它有多准确,但我有一个误解。考虑以下示例:

结果,我知道我可以在不影响应用程序的情况下丢失 4 个节点。有谁知道是什么计算导致我们得出这个结果?提前致谢。
PS我想说我对任何其他方面都不感兴趣,除了“我可以在不影响应用程序的情况下松散多少节点”。我正在寻找的答案不是一致性是如何工作的,或者其他任何东西,而仅仅是描述结果背后的方程式是什么,即“我可以在不影响应用程序的情况下松散多少节点”以及为什么。

标签: cassandracluster-computingreplicationsharding

解决方案


CL.ONE 总是会导致数据丢失的可能性。举个例子:作为协调器的副本获取请求,在本地写入并向客户端发送 ack。如果该系统在向其他副本发送数据之前被流星击中,则数据丢失。

如果您使用 local_quorum 或 quorum,那么在 RF=5 的情况下,您可以让副本集的 2 个节点发生故障而不会丢失任何数据(不包括未遵循预期的修复操作实践等情况)。但是,使用 CL.ONE,即使 5 个副本中有 4 个死亡,您的应用程序仍然可以运行,在某些情况下,可用性比持久性和一致性更重要。我建议始终从仲裁开始,然后仅在未满足性能要求的可用性时才更改一致性。


推荐阅读