Revision 2c8100e60e72718311e80f78d2e640486187d357 authored by Jay Zhuang on 15 March 2022, 19:31:14 UTC, committed by Facebook GitHub Bot on 15 March 2022, 19:31:14 UTC
Summary:
In https://github.com/facebook/rocksdb/issues/9659, when `DisableManualCompaction()` is issued, the foreground
manual compaction thread does not have to wait background compaction
thread to finish. Which could be a problem that the user re-enable
manual compaction with `EnableManualCompaction()`, it may re-enable the
BG compaction which supposed be cancelled.
This patch makes the FG compaction wait on
`manual_compaction_state.done`, which either be set by BG compaction or
Unschedule callback. Then when FG manual compaction thread returns, it
should not have BG compaction running. So shared_ptr is no longer needed
for `manual_compaction_state`.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/9694

Test Plan: a StressTest and unittest

Reviewed By: ajkr

Differential Revision: D34885472

Pulled By: jay-zhuang

fbshipit-source-id: e6476175b43e8c59cd49f5c09241036a0716c274
1 parent 6a76008
History
File Mode Size
file_read_sample.h -rw-r--r-- 843 bytes
histogram.cc -rw-r--r-- 9.0 KB
histogram.h -rw-r--r-- 4.4 KB
histogram_test.cc -rw-r--r-- 7.6 KB
histogram_windowing.cc -rw-r--r-- 6.4 KB
histogram_windowing.h -rw-r--r-- 2.9 KB
in_memory_stats_history.cc -rw-r--r-- 1.9 KB
in_memory_stats_history.h -rw-r--r-- 2.9 KB
instrumented_mutex.cc -rw-r--r-- 2.1 KB
instrumented_mutex.h -rw-r--r-- 3.2 KB
iostats_context.cc -rw-r--r-- 2.7 KB
iostats_context_imp.h -rw-r--r-- 2.0 KB
iostats_context_test.cc -rw-r--r-- 1004 bytes
perf_context.cc -rw-r--r-- 24.3 KB
perf_context_imp.h -rw-r--r-- 3.9 KB
perf_level.cc -rw-r--r-- 703 bytes
perf_level_imp.h -rw-r--r-- 516 bytes
perf_step_timer.h -rw-r--r-- 2.0 KB
persistent_stats_history.cc -rw-r--r-- 6.1 KB
persistent_stats_history.h -rw-r--r-- 2.9 KB
statistics.cc -rw-r--r-- 23.0 KB
statistics.h -rw-r--r-- 5.1 KB
statistics_test.cc -rw-r--r-- 3.3 KB
stats_history_test.cc -rw-r--r-- 23.1 KB
thread_status_impl.cc -rw-r--r-- 4.8 KB
thread_status_updater.cc -rw-r--r-- 11.1 KB
thread_status_updater.h -rw-r--r-- 8.5 KB
thread_status_updater_debug.cc -rw-r--r-- 1.3 KB
thread_status_util.cc -rw-r--r-- 7.1 KB
thread_status_util.h -rw-r--r-- 5.1 KB
thread_status_util_debug.cc -rw-r--r-- 1003 bytes

back to top