我在卡桑德拉3.10的一个数据中心运行5个节点。
当我试图维护这些节点时,我每天都在每个节点上运行

nodetool repair -pr

每周
nodetool repair -full

这是我唯一有困难的桌子:
Table: user_tmp
        SSTable count: 4
        Space used (live): 366.71 MiB
        Space used (total): 366.71 MiB
        Space used by snapshots (total): 216.87 MiB
        Off heap memory used (total): 5.28 MiB
        SSTable Compression Ratio: 0.4690289976332873
        Number of keys (estimate): 1968368
        Memtable cell count: 2353
        Memtable data size: 84.98 KiB
        Memtable off heap memory used: 0 bytes
        Memtable switch count: 1108
        Local read count: 62938927
        Local read latency: 0.324 ms
        Local write count: 62938945
        Local write latency: 0.018 ms
        Pending flushes: 0
        Percent repaired: 76.94
        Bloom filter false positives: 0
        Bloom filter false ratio: 0.00000
        Bloom filter space used: 4.51 MiB
        Bloom filter off heap memory used: 4.51 MiB
        Index summary off heap memory used: 717.62 KiB
        Compression metadata off heap memory used: 76.96 KiB
        Compacted partition minimum bytes: 51
        Compacted partition maximum bytes: 654949
        Compacted partition mean bytes: 194
        Average live cells per slice (last five minutes): 2.503074492537404
        Maximum live cells per slice (last five minutes): 179
        Average tombstones per slice (last five minutes): 1.0
        Maximum tombstones per slice (last five minutes): 1
        Dropped Mutations: 19 bytes

在这个和一个以上的节点上,此表上的修复百分比从不超过80%,而在其他节点上的修复百分比则高于85%。rf是3,策略是sizetieredcompactionstrategy
gc_grace_period是在10天内,当我在那个时间段的某个地方,我正是在这个表上得到writeTimeout,但是在消费者得到这个超时后,立即被另一个超时替换,一切都保持正常,就像什么都没发生一样。就像一次写出来。
我的问题是:你是否有更好的维修策略的建议,因为我是个笨蛋,每一个建议对我来说都是一个巨大的胜利+这张桌子上的任何其他建议?
可能repair -inc而不是repair -pr

最佳答案

casandra 3.10中的nodetool repair命令默认为运行增量修复。增量修复存在一些主要问题,社区目前不建议运行增量修复。请参阅本文,了解有关修复和增量修复问题的一些重要信息:http://thelastpickle.com/blog/2017/12/14/should-you-use-incremental-repair.html
我和其他许多人一样,建议你:

nodetool repair -full -pr

请注意,您需要在群集中的每个节点上运行修复。这意味着,如果每天在一个节点上运行修复,那么最多可以有7个节点(因为使用默认的gc_grace,您的目标应该是在7天内完成修复)。而且,在进行修复时,您还必须依赖于不会出错,因为您必须重新启动任何失败的作业。
这就是为什么像收割机这样的工具存在。它可以轻松地解决这些问题,自动修复,使生活更简单。reaper运行计划的修复,并提供一个web界面,使管理更容易。我强烈建议使用收割机进行日常维护,对计划外活动使用nodetool修复。
编辑:链接http://cassandra-reaper.io/

关于database - 无法修复Cassandra中特定节点上的特定表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49908192/

10-11 22:25
查看更多