DEBUG("caller {}, {}, {}",
caller,
JournalTrimmerImpl::stat_printer_t{*trimmer, true},
- AsyncCleaner::stat_printer_t{*cleaner, true});
+ AsyncCleaner::stat_printer_t{*main_cleaner, true});
}
void ExtentPlacementManager::BackgroundProcess::start_background()
LOG_PREFIX(BackgroundProcess::start_background);
INFO("{}, {}",
JournalTrimmerImpl::stat_printer_t{*trimmer, true},
- AsyncCleaner::stat_printer_t{*cleaner, true});
+ AsyncCleaner::stat_printer_t{*main_cleaner, true});
ceph_assert(trimmer->check_is_ready());
ceph_assert(state == state_t::SCAN_SPACE);
assert(!is_running());
LOG_PREFIX(BackgroundProcess::stop_background);
INFO("done, {}, {}",
JournalTrimmerImpl::stat_printer_t{*trimmer, true},
- AsyncCleaner::stat_printer_t{*cleaner, true});
+ AsyncCleaner::stat_printer_t{*main_cleaner, true});
// run_until_halt() can be called at HALT
});
}
{
reserve_result_t res {
trimmer->try_reserve_inline_usage(usage.inline_usage),
- cleaner->try_reserve_projected_usage(usage.inline_usage + usage.ool_usage)
+ main_cleaner->try_reserve_projected_usage(usage.inline_usage + usage.ool_usage)
};
if (!res.is_successful()) {
trimmer->release_inline_usage(usage.inline_usage);
}
if (res.reserve_ool_success) {
- cleaner->release_projected_usage(usage.inline_usage + usage.ool_usage);
+ main_cleaner->release_projected_usage(usage.inline_usage + usage.ool_usage);
}
}
return res;
bool trimmer_reserve_success = true;
if (trimmer->should_trim()) {
trimmer_reserve_success =
- cleaner->try_reserve_projected_usage(
+ main_cleaner->try_reserve_projected_usage(
trimmer->get_trim_size_per_cycle());
}
if (trimmer->should_trim() && trimmer_reserve_success) {
return trimmer->trim(
).finally([this] {
- cleaner->release_projected_usage(
+ main_cleaner->release_projected_usage(
trimmer->get_trim_size_per_cycle());
});
- } else if (cleaner->should_clean_space() ||
+ } else if (main_cleaner->should_clean_space() ||
// make sure cleaner will start
// when the trimmer should run but
// failed to reserve space.
!trimmer_reserve_success) {
- return cleaner->clean_space(
+ return main_cleaner->clean_space(
).handle_error(
crimson::ct_error::assert_all{
"do_background_cycle encountered invalid error in clean_space"
AsyncCleanerRef &&_cleaner) {
trimmer = std::move(_trimmer);
trimmer->set_background_callback(this);
- cleaner = std::move(_cleaner);
- cleaner->set_background_callback(this);
+ main_cleaner = std::move(_cleaner);
+ main_cleaner->set_background_callback(this);
}
journal_type_t get_journal_type() const {
void set_extent_callback(ExtentCallbackInterface *cb) {
trimmer->set_extent_callback(cb);
- cleaner->set_extent_callback(cb);
+ main_cleaner->set_extent_callback(cb);
}
store_statfs_t get_stat() const {
- return cleaner->get_stat();
+ return main_cleaner->get_stat();
}
using mount_ret = ExtentPlacementManager::mount_ret;
trimmer->reset();
stats = {};
register_metrics();
- return cleaner->mount();
+ return main_cleaner->mount();
}
void start_scan_space() {
ceph_assert(state == state_t::MOUNT);
state = state_t::SCAN_SPACE;
- ceph_assert(cleaner->check_usage_is_empty());
+ ceph_assert(main_cleaner->check_usage_is_empty());
}
void start_background();
if (state < state_t::SCAN_SPACE) {
return;
}
- assert(cleaner);
- cleaner->mark_space_used(addr, len);
+ assert(main_cleaner);
+ main_cleaner->mark_space_used(addr, len);
}
void mark_space_free(paddr_t addr, extent_len_t len) {
if (state < state_t::SCAN_SPACE) {
return;
}
- assert(cleaner);
- cleaner->mark_space_free(addr, len);
+ assert(main_cleaner);
+ main_cleaner->mark_space_free(addr, len);
}
void commit_space_used(paddr_t addr, extent_len_t len) {
if (state < state_t::SCAN_SPACE) {
return;
}
- assert(cleaner);
- return cleaner->commit_space_used(addr, len);
+ assert(main_cleaner);
+ return main_cleaner->commit_space_used(addr, len);
}
seastar::future<> reserve_projected_usage(projected_usage_t usage);
void release_projected_usage(projected_usage_t usage) {
if (is_ready()) {
trimmer->release_inline_usage(usage.inline_usage);
- cleaner->release_projected_usage(usage.inline_usage + usage.ool_usage);
+ main_cleaner->release_projected_usage(usage.inline_usage + usage.ool_usage);
}
}
// Testing interfaces
bool check_usage() {
- return cleaner->check_usage();
+ return main_cleaner->check_usage();
}
seastar::future<> run_until_halt();
bool is_no_background() const {
- return !trimmer || !cleaner;
+ return !trimmer || !main_cleaner;
}
protected:
bool background_should_run() const {
assert(is_ready());
- return cleaner->should_clean_space()
+ return main_cleaner->should_clean_space()
|| trimmer->should_trim_dirty()
|| trimmer->should_trim_alloc();
}
bool should_block_io() const {
assert(is_ready());
return trimmer->should_block_io_on_trim() ||
- cleaner->should_block_io_on_clean();
+ main_cleaner->should_block_io_on_clean();
}
struct reserve_result_t {
seastar::metrics::metric_group metrics;
JournalTrimmerImplRef trimmer;
- AsyncCleanerRef cleaner;
+ AsyncCleanerRef main_cleaner;
std::optional<seastar::future<>> process_join;
std::optional<seastar::promise<>> blocking_background;