From ea6d3a8ac023f10ebabc1d1db4293192a2a1e387 Mon Sep 17 00:00:00 2001 From: Igor Canadi Date: Fri, 22 May 2015 15:30:43 -0400 Subject: [PATCH] Don't skip last level when calculating compaction stats Summary: We have a bug where we don't report the last level's files as being compacted. This fixes it. Test Plan: See the fix in action here: https://phabricator.fb.com/P19845738 Reviewers: MarkCallaghan, sdong Reviewed By: sdong Subscribers: yhchiang, dhruba, leveldb Differential Revision: https://reviews.facebook.net/D38727 --- db/internal_stats.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/db/internal_stats.cc b/db/internal_stats.cc index e6eb9fb92..52c796d1b 100644 --- a/db/internal_stats.cc +++ b/db/internal_stats.cc @@ -541,8 +541,7 @@ void InternalStats::DumpCFStats(std::string* value) { const VersionStorageInfo* vstorage = cfd_->current()->storage_info(); int num_levels_to_check = - (cfd_->ioptions()->compaction_style != kCompactionStyleUniversal && - cfd_->ioptions()->compaction_style != kCompactionStyleFIFO) + (cfd_->ioptions()->compaction_style != kCompactionStyleFIFO) ? vstorage->num_levels() - 1 : 1; @@ -555,7 +554,7 @@ void InternalStats::DumpCFStats(std::string* value) { } // Count # of files being compacted for each level std::vector files_being_compacted(number_levels_, 0); - for (int level = 0; level < num_levels_to_check; ++level) { + for (int level = 0; level < number_levels_; ++level) { for (auto* f : vstorage->LevelFiles(level)) { if (f->being_compacted) { ++files_being_compacted[level];