如果我们在C *环中添加了新节点,我们是否需要运行“nodetool cleanup”来删除现在已在其他位置分配的数据?或者在正常的压缩过程中是否会发生这种情况? 在正常压缩期间,C *是否删除不再属于此节点的数据,或者我们是否需要为此运行“nodetoool cleanup”?问,因为“清理”需要永远,并在完成之前崩溃节点。
如果我们需要运行“nodetool cleanup”,有没有办法找出哪些节点现在拥有他们不应再拥有的数据? (即现在属于新节点的数据,但仍然存在于旧节点上,因为没有人删除它。这是“nodetool cleanup”将删除的数据。)我们有RF = 3和两个数据中心,每个都是它有完整的数据副本。我假设我们需要在我们添加节点的数据中心的所有节点上运行清理,因为新节点上的每一行都曾在另一个节点(主节点)上,另外两个节点上有两个副本(副本)。
答案 0 :(得分:4)
如果您使用的是Apache Cassandra 1.2或更高版本,则清理会检查文件上的元数据,以便只在需要时执行某些操作。因此,您可以安全地在每个节点上运行它,并且只有具有额外数据的节点才能执行某些操作。在正常的压缩过程中不会删除数据,您必须调用cleanup将其删除。