我注意到,有些表格显示的“修复率”低于100% nodetool tablestatus
输出。我已经在所有节点(3节点集群,rf=3)上手动执行了修复,但是值似乎没有改变。
输出示例:
Table: users
SSTable count: 3
Space used (live): 66636
Space used (total): 66636
Space used by snapshots (total): 0
Off heap memory used (total): 688
SSTable Compression Ratio: 0.5731829674519404
Number of partitions (estimate): 162
Memtable cell count: 11
Memtable data size: 483
Memtable off heap memory used: 0
Memtable switch count: 27
Local read count: 120833
Local read latency: NaN ms
Local write count: 12094
Local write latency: NaN ms
Pending flushes: 0
Percent repaired: 91.54
Bloom filter false positives: 0
Bloom filter false ratio: 0.00000
Bloom filter space used: 568
Bloom filter off heap memory used: 544
Index summary off heap memory used: 112
Compression metadata off heap memory used: 32
Compacted partition minimum bytes: 30
Compacted partition maximum bytes: 1916
Compacted partition mean bytes: 420
Average live cells per slice (last five minutes): NaN
Maximum live cells per slice (last five minutes): 0
Average tombstones per slice (last five minutes): NaN
Maximum tombstones per slice (last five minutes): 0
Dropped Mutations: 0
修理是用 nodetool repair -pr
怎么回事?
2条答案
按热度按时间cygmwpex1#
执行
nodetool repair -pr
将修复在其上执行命令的节点所拥有的主范围。这是什么意思?对其执行此命令的节点具有其“拥有”的数据,即其主要范围,但该节点还包含其他节点“拥有”的数据/副本。您没有修复由其他节点“拥有”的复制副本。
现在,如果在集群中的每个节点(不是数据中心)上执行该命令,它将覆盖所有令牌范围。
编辑/注意:我的回答没有正确回答这个问题。虽然我写的是准确的,但问题的答案是在我上面的答案中陈述的;基本上,修复百分比是用于增量修复使用的值,不受完全修复的影响(增量修复会在工作时标记修复的范围,这样以后就不会花费时间重新修复。)
nvbavucw2#
Percent repaired
似乎是一个误导性的指标,因为它指的是修复的sstables的百分比,但是这里有一些条件需要计算:-表不应该来自系统键空间-表的复制因子应该大于1-修复应该是增量的或完全的(非子范围)当你使用
nodetool repair -pr
,将调用无法更新此值的完全修复。有关增量修复的更多信息,我推荐上一篇pickle中的这篇文章。自从他们采用了收割机工具的维修,他们就成了维修方面的权威。