}
}
+ if (proceed_demote &&
+ !try_reserve_cold(logical_bucket_demote_size_per_cycle)) {
+ proceed_demote = false;
+ }
+
if (!proceed_clean_main && !proceed_clean_cold && !proceed_demote) {
- ceph_abort_msg("no background process will start");
+ // abort when the system is full, following the enospc handling
+ // in ObjectDataHandler
+ ceph_abort_msg("no background process will start, "
+ "this probably means the underlying disks are full");
}
return seastar::when_all(
[this, FNAME, proceed_clean_main, abort_cold_cleaner_usage,
ceph_assert(pinboard != nullptr);
pinboard->set_background_callback(this);
+ logical_bucket_demote_size_per_cycle =
+ get_conf<Option::size_t>("seastore_logical_bucket_proceed_size_per_cycle");
logical_bucket = create_logical_bucket(
get_conf<Option::size_t>("seastore_logical_bucket_capacity"),
- get_conf<Option::size_t>("seastore_logical_bucket_proceed_size_per_cycle"));
+ logical_bucket_demote_size_per_cycle);
}
LOG_PREFIX(BackgroundProcess::init);
test_workload = crimson::common::get_conf<bool>("crimson_test_workload");
AsyncCleanerRef main_cleaner;
ExtentPinboard *pinboard = nullptr;
LogicalBucketRef logical_bucket;
+ std::size_t logical_bucket_demote_size_per_cycle = 0;
/*
* cold tier (optional, see has_cold_tier())