Update compaction score right after CompactFiles forms a compaction
Summary: This is a follow-up patch of https://reviews.facebook.net/D54891. As the information about files being compacted will also be used when making compaction decision, it is necessary to update the compaction score when a compaction plan has been made but not yet execute. This patch adds a missing call to update the compaction score in CompactFiles(). Test Plan: compact_files_test Reviewers: sdong, IslamAbdelRahman, kradhakrishnan, yiwu, andrewkr Reviewed By: andrewkr Subscribers: andrewkr, dhruba, leveldb Differential Revision: https://reviews.facebook.net/D55227
This commit is contained in:
parent
aa3f02d50c
commit
765597fa78
@ -1844,6 +1844,17 @@ Status DBImpl::CompactFilesImpl(
|
|||||||
// support for CompactFiles, we should have CompactFiles API
|
// support for CompactFiles, we should have CompactFiles API
|
||||||
// pass a pointer of CompactionJobStats as the out-value
|
// pass a pointer of CompactionJobStats as the out-value
|
||||||
// instead of using EventListener.
|
// instead of using EventListener.
|
||||||
|
|
||||||
|
// Creating a compaction influences the compaction score because the score
|
||||||
|
// takes running compactions into account (by skipping files that are already
|
||||||
|
// being compacted). Since we just changed compaction score, we recalculate it
|
||||||
|
// here.
|
||||||
|
{
|
||||||
|
CompactionOptionsFIFO dummy_compaction_options_fifo;
|
||||||
|
version->storage_info()->ComputeCompactionScore(
|
||||||
|
*c->mutable_cf_options(), dummy_compaction_options_fifo);
|
||||||
|
}
|
||||||
|
|
||||||
compaction_job.Prepare();
|
compaction_job.Prepare();
|
||||||
|
|
||||||
mutex_.Unlock();
|
mutex_.Unlock();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user