`nodetool repair`是否也会修复那些持有他们不拥有的数据的机器?

时间:2016-04-15 05:24:45

标签: cassandra datastax datastax-enterprise datastax-startup

假设我有一个由三个节点组成的集群(为简单起见),复制因子为1.让我们调用节点A,B和C.

根据环,分区密钥X应该存储在A上。但是,由于数据库恢复,分区密钥X的数据已经在节点B上结束(并且A根本不存储X)。

问题:如果我发出nodetool repair,是否会确保分区键X在A上结束?

据我所知,执行数据库恢复的真正方法是使用类似sstableloader的内容,但是由于不可预见的情况,上面的操作对我来说可能是一个更简单的解决方案(如果有效!)。 / p>

1 个答案:

答案 0 :(得分:1)

对于具有复制因子1的群集,您无法使用修复。如果每个节点都拥有自己的令牌范围,那么Cassandra修复节点间的数据是没有意义的。在这种情况下,使用sstableloader将是更清晰的解决方案。