Запрос размера семейства столбцов в базе данных RocksDB

#rocksdb #column-family

Вопрос:

Есть ли способ узнать размер всех KV, которые хранятся в семействе столбцов?

Ответ №1:

  1. Для API вы можете использовать: GetApproximateSizes() .
  2. Если вы просто хотите проверить, вы можете проверить журнал RocksDB, в котором для каждого семейства столбцов Compaction Stats указан размер файла SST для каждого уровня.
  3. Он не сообщает о размере семейства столбцов, но если вас интересуют записанные байты, есть статистический отчет , который: rocksdb.bytes.written вы можете получить статистику , установив statistics , например:
 options.statistics = CreateDBStatistics()
 

Комментарии:

1. Можете ли вы привести пример того, как GetApproximateSizes()? конкретно использовать, если мне нужен размер всего столбца, что я использую в качестве Range ?

Ответ №2:

Если вы хотите узнать общий размер всех файлов SST в семействе столбцов, лучше всего использовать функцию GetIntProperty(). В вашем случае вы хотите передать kTotalSstFileSize.

bool ok = db_->GetIntProperty(DB::Свойства::kTotalSstFilesSize, amp;sst_size);

Если вас интересует только последняя версия файлов SST, то вместо этого вам следует использовать kTotalLiveSstFileSize.