迁移到增量修复的过程是否必要?

Migration process to incremental repairs necessary?

我们计划在我们的 Cassandra 集群中激活增量修复,并在阅读 documentation it seems that we have to follow a migration procedure 后添加时间戳标记,让 Cassandra 知道上次修复何时完成。

阅读程序后我有一些问题:

  1. 程序中完全修复后创建的新SSTables会发生什么?根据之前link的步骤,我们永远不会为他们设置标记。

  2. 在测试集群中进行一些测试,我们尝试在执行迁移(使用 sstablemetadata 命令)之前从 SSTable 检索修复时间戳,并且它 return "Repaired at 0",如预期,然后我们尝试 运行 直接进行增量修复(不进行迁移)并且我们能够验证 "Repaired at" 值是否已正确设置并且一切似乎都运行良好。这是否意味着迁移过程是多余的?忽略它安全吗?

What happens to new SSTables created after the full repair in the procedure? Acording to the steps from the previous link we will never set the marker for them.

一旦开始 运行 增量修复,它将由那些 运行 设置。

Doing some tests in a test cluster we tried retrieving the repair timestamp from a SSTable before doing the migration (using the sstablemetadata command) and it return "Repaired at 0", as expected, then we tried to run an incremental repair directly (without doing the migration) and we were able to verify that the "Repaired at" value had been set correctly and everything seemed to be working fine. Does this mean that the migration process is redundant? Is it safe to ignore it?

如果您没有大量数据,则可以跳过第一部分,直接开始 运行 增量修复。做第一步的原因是子范围修复和增量修复不是真正兼容的,当你有一个大数据集时,你通常需要做子范围修复,让它们在正常的时间内完成,而不是消耗太多许多资源。由于增量修复不适用于子范围修复,如果您没有执行第一步来设置修复时间,那么第一次增量修复可能会使您的节点不堪重负。