2014-01-14 5 views
6

я не могу найти документацию по «compactionstats»:Cassandra nodetool «compactionstats» Значение отображаемых значений

При использовании nodetool compactionstats, что же численные значения на completed и total столбцов означают? Моя колонка семья имеет общий размер данных около 360 Гбайт, но мой статус прессовые показывает:

pending tasks: 7 
compaction type keyspace column family completed  total   unit progress 
Compaction  Test  Message   161257707087 2475323941809 bytes 6.51% 

В то время как я вижу «завершена» растет медленно (также прогресс ;-).

Но как этот «итог» вычисляется? Почему это 2,5 ТБ, когда у меня есть только 360 ГБ данных?

ответ

3

У вас должно быть сжатие. total - общее количество несжатых байтов, содержащих набор сэбстилей, которые уплотняются вместе. Если вы выберете файл журнала cassandra для строк, содержащих Compacting, вы найдете sstables, которые являются частью уплотнения. Если вы суммируете эти размеры и умножаете их на коэффициент сжатия для семейства столбцов, вы получите довольно близкое к сумме. По умолчанию это может быть сложно проверить в многоядерной системе, поскольку количество одновременных копий по умолчанию зависит от количества ядер.

Вы также можете проверить этот ответ, посмотрев на код:

AbstractionCompactionIterable - getCompactionInfo() использует bytesRead и totalBytes поля из этого класса. totalBytes является окончательным и вычисляется в конструкторе путем суммирования getLengthInBytes() из каждого файла, который является частью уплотнения.

Сканеры различаются, но длина в байтах, возвращаемая CompressedRandomAccessReader, является несжатым размером файла.

Смежные вопросы