为什么 `system.paxos` 没有分布在集群中?

Why isn't `system.paxos` being distributed across the cluster?

我在测试环境中有一个 11 节点的 Cassandra 集群。出于某种原因,system.paxos table 正在不受控制地增长并且没有在集群中分布。

nodetool cfstats 告诉我 paxos 有 ~27G 的数据。

Table: paxos
SSTable count: 2406
SSTables in each level: [2400/4, 6, 0, 0, 0, 0, 0, 0, 0]
Space used (live), bytes: 28981416094
Space used (total), bytes: 28981416094

du -sh /data/system/paxos 告诉我一个特定的节点几乎拥有 ~27G 的 system.paxos.

我检查了cassandra.yaml:集群正在使用RandomPartitioner,每个节点拥有大约9%的space。其他 table 正在按预期分发。

系统键空间中的东西主要供内部使用,并且特定于该节点。因此密钥空间使用仅限本地的复制策略:

cqlsh:system> describe keyspace system;

CREATE KEYSPACE system WITH replication = {
  'class': 'LocalStrategy'
};

2400/4 表示应该在该级别的 4 个中有 2.4k。肯定有什么东西坏了(或者远远落后于它也可能)。你应该检查你的日志是否有异常,获取堆栈跟踪,检查压实统计数据,并检查你设置的任何监控或趋势。收集到诊断数据后,重新启动节点并查看它是否开始解析。