dirty_memory_manager: move db ctor out-of-line

To facilitate further patching.
This commit is contained in:
Botond Dénes
2022-05-13 11:49:25 +03:00
committed by Avi Kivity
parent 3a19412237
commit d80256f4dd
2 changed files with 11 additions and 9 deletions

View File

@@ -138,15 +138,7 @@ public:
//
// We then set the soft limit to 80 % of the virtual dirty hard limit, which is equal to 40 % of
// the user-supplied threshold.
dirty_memory_manager(replica::database& db, size_t threshold, double soft_limit, scheduling_group deferred_work_sg)
: logalloc::region_group_reclaimer(threshold / 2, threshold * soft_limit / 2)
, _real_dirty_reclaimer(threshold)
, _db(&db)
, _real_region_group("memtable", _real_dirty_reclaimer, deferred_work_sg)
, _virtual_region_group("memtable (virtual)", &_real_region_group, *this, deferred_work_sg)
, _flush_serializer(1)
, _waiting_flush(flush_when_needed()) {}
dirty_memory_manager(replica::database& db, size_t threshold, double soft_limit, scheduling_group deferred_work_sg);
dirty_memory_manager() : logalloc::region_group_reclaimer()
, _db(nullptr)
, _real_region_group("memtable", _real_dirty_reclaimer)

View File

@@ -450,6 +450,16 @@ void backlog_controller::update_controller(float shares) {
_inflight_update = _scheduling_group.io.update_shares(uint32_t(shares));
}
dirty_memory_manager::dirty_memory_manager(replica::database& db, size_t threshold, double soft_limit, scheduling_group deferred_work_sg)
: logalloc::region_group_reclaimer(threshold / 2, threshold * soft_limit / 2)
, _real_dirty_reclaimer(threshold)
, _db(&db)
, _real_region_group("memtable", _real_dirty_reclaimer, deferred_work_sg)
, _virtual_region_group("memtable (virtual)", &_real_region_group, *this, deferred_work_sg)
, _flush_serializer(1)
, _waiting_flush(flush_when_needed()) {}
void
dirty_memory_manager::setup_collectd(sstring namestr) {
namespace sm = seastar::metrics;