在批量加载期间应用哪种节点修复策略?

Which node repair strategy to apply during bulk loads?

目前我正在将 30TB 数据批量加载到十节点集群 运行ning Cassandra 2.1.2。我使用 'sstableloader'.

批量加载 ~5 TB 的平面文件

我知道,每个 Cassandra 节点需要定期 运行 'nodetool repair'。但目前(在 10TB 负载下)每个节点修复需要 48 小时以上。有完成批量加载的压力。那么哪种修复策略更好:

  1. 要nodetool在每个5TB阶段之间依次修复每个节点?
  2. 要批量加载所有 30TB 然后开始修复?
  3. 要与 sstableloader 同时修复节点 运行ning?

理想情况下,我需要一种工具来衡量维修需求。熵的量度。有这种东西吗?

如果您要 bootstrap 使用数据对集群进行 运行 每次导入 运行 之间的修复,则没有真正的必要。 sstableloader 工具应该注意在集群中正确创建所有副本。您可以在完成所有导入后进行全面修复。但是,请记住,修复只能确保以一致的方式跨集群复制数据。如果加载程序根本没有保存部分数据 - 无论出于何种原因 - 修复将无法注意到。所以在某些时候你必须信任 tableloader 或者编写你自己的脚本来验证结果。