无法修复Cassandra

时间:2018-04-18 20:06:10

标签: database cassandra nosql cassandra-3.0

我在Cassandra 3.10的一个DC中运行了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但是在得到这个超时的消费者立即被另一个替换之后,一切都会继续发生。它就像一次writetimeout。

我的问题是:你是否有更好的修理策略的建议,因为我是一个菜鸟,每一个建议对我来说都是一个很大的胜利+对于这张桌子的任何其他? 可能是repair -inc而不是repair -pr

1 个答案:

答案 0 :(得分:2)

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这样的工具存在的原因。它可以轻松解决这些问题,自动修复并简化生活。 Reaper运行定期维修并提供Web界面以简化管理。我强烈建议使用reaper进行常规维护和nodetool修复以进行计划外活动。

修改:链接http://cassandra-reaper.io/