节点出现故障时维护RF

问题描述 投票:0回答:1

当节点出现故障时,Cassandra是否维护RF。对于例如如果节点数为5且RF为2,那么当单个节点发生故障时,剩余的副本是否会将其数据复制到其他节点以保持RF为2?

Datastax's documentation中,提到“If a node fails, the load is spread evenly across other nodes in the cluster".这是否意味着当节点发生故障时数据迁移会发生?这是一个仅在Datastax的Cassandra而非Apache Cassandra中可用的功能吗?

cassandra datastax-enterprise database-replication
1个回答
1
投票

不,相反,“提示”将存储在协调器节点中,并且最终会在节点重新启动时写入拥有令牌范围的节点 - 写入将取决于您的一致性级别。因此,在上面的示例中,如果您将一致性级别写为ONE,则写入将成功。

如果节点仅在短时间内关闭 - 节点将在其返回时从其他节点的提示中接收数据。但是,如果您停用某个节点,那么数据将被复制到其他节点,而其他节点将具有新的令牌范围(同样将节点添加到集群时也是如此)。

随着时间的推移,一个副本中的数据可能会与其他副本不一致,修复过程有助于Cassandra修复它们 - https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsRepairNodesTOC.html

这也适用于Apache Cassandra。

© www.soinside.com 2019 - 2024. All rights reserved.