确定墓碑的百分比需要进行全表扫描,这在Cassandra中是一个糟糕的想法,因为这种操作无法扩展。 像sstablemetadata这样的SSTable工具可以提供可丢弃的墓碑的估计比率,但它与获得墓碑的数量不同。在任何情况下,它提供的比率都是一个非常粗略的估计,因为用于计算比率的算法使用估计的列数,而不是分区或行中的实际列数,正如我在对this question on DBA Stack Exchange的回应中所解释的那样。 更重要的是,你没有问的问题的答案是,手动触发一个主要的压缩从来都不是一个好主意。在大多数情况下,它会导致更多的问题比你试图解决。 我在why major compactions are a bad idea的文章中解释了这一点。相反,您需要做的是解决根本原因。干杯!
2条答案
按热度按时间xqk2d5yq1#
请改用sstablemetadata。您将获得列的值:
字符串
但是,你必须小心,因为它不是一个百分比的droppable。它是对SSTable中可删除的tombstones与不可删除的列的比率的估计。它表示在压实过程中可以移除的墓碑相对于存在的不可掉落的柱的总数的比例。
enxuqcxy2#
确定墓碑的百分比需要进行全表扫描,这在Cassandra中是一个糟糕的想法,因为这种操作无法扩展。
像
sstablemetadata
这样的SSTable工具可以提供可丢弃的墓碑的估计比率,但它与获得墓碑的数量不同。在任何情况下,它提供的比率都是一个非常粗略的估计,因为用于计算比率的算法使用估计的列数,而不是分区或行中的实际列数,正如我在对this question on DBA Stack Exchange的回应中所解释的那样。更重要的是,你没有问的问题的答案是,手动触发一个主要的压缩从来都不是一个好主意。在大多数情况下,它会导致更多的问题比你试图解决。
我在why major compactions are a bad idea的文章中解释了这一点。相反,您需要做的是解决根本原因。干杯!