nodetool修复需要很长时间才能完成

时间:2018-03-07 17:19:38

标签: cassandra cassandra-3.0

我目前在18节点配置中运行 Cassandra 3.0.9 。我们加载了相当多的数据,现在正在针对每个节点运行修复。我的nodetool命令的脚本如下:

nodetool repair -j 4 -local -full

使用nodetool tpstats我看到4个线程进行修复但它们修复速度非常慢。我有1000次维修需要花费数周的时间。系统日志包含修复项目,但也列出了“重新分发索引摘要”。这是导致我迟钝的原因吗?有更快的方法吗?

1 个答案:

答案 0 :(得分:3)

修复可能需要很长时间,有时甚至是几天。您可以通过以下方式改进:

  1. 运行主分区范围修复( -pr )这将仅修复每个节点的主分区范围,总体而言会更快(您仍然需要在每个节点上运行修复,一个一次)。
  2. 使用 -j 不一定是大赢家。当然,您将一次修复多个表,但是会给集群带来更多负载,这可能会损害您的延迟。
  3. 您可能希望优先修复对您的应用程序最关键的键空间/表。
  4. 确保您的节点密度合理。每个节点1到2TB。
  5. 优先重点修复停机时间超过3小时的节点(假设max_hint_window_in_ms设置为默认值)
  6. 重点修复您创建墓碑的表(DELETE语句)
相关问题