From: Shraddha Agrawal Date: Thu, 21 Aug 2025 11:51:49 +0000 (+0530) Subject: mon/MgrStatMonitor: add pool_availability_update_interval config option X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=e0f2117df011feb7c087f6d3ca276bc23535f010;p=ceph-ci.git mon/MgrStatMonitor: add pool_availability_update_interval config option This commit adds the dynamic config option to change the interval at which the data availablity score is updated. Fixes: https://tracker.ceph.com/issues/72619 Signed-off-by: Shraddha Agrawal (cherry picked from commit 37173c8be118795af6218ffad1e67a95a935a394) --- diff --git a/src/common/options/mon.yaml.in b/src/common/options/mon.yaml.in index 4ac1b2f05a4..678ce5c2f7f 100644 --- a/src/common/options/mon.yaml.in +++ b/src/common/options/mon.yaml.in @@ -1420,3 +1420,13 @@ options: default: 30 services: - mon +- name: pool_availability_update_interval + type: float + level: advanced + desc: Update data availability score at this interval. By default the interval + is same as paxos_propose_interval configuration. + default: 1 + services : + - mon + flags: + - runtime diff --git a/src/mon/MgrStatMonitor.cc b/src/mon/MgrStatMonitor.cc index 9bcee5b77d0..6d90129805b 100644 --- a/src/mon/MgrStatMonitor.cc +++ b/src/mon/MgrStatMonitor.cc @@ -64,6 +64,7 @@ std::vector MgrStatMonitor::get_tracked_keys() const noexcept { return { "enable_availability_tracking", + "pool_availability_update_interval", }; } @@ -93,6 +94,16 @@ void MgrStatMonitor::handle_conf_change( } enable_availability_tracking = newval; } + + if (changed.count("pool_availability_update_interval")) { + std::scoped_lock l(lock); + dout(10) << __func__ << " pool_availability_update_interval config changed from " + << pool_availability_update_interval << " to " + << g_conf().get_val("pool_availability_update_interval") + << dendl; + + pool_availability_update_interval = g_conf().get_val("pool_availability_update_interval"); + } } void MgrStatMonitor::create_initial() diff --git a/src/mon/MgrStatMonitor.h b/src/mon/MgrStatMonitor.h index ef06087d24c..b2cec6a20ba 100644 --- a/src/mon/MgrStatMonitor.h +++ b/src/mon/MgrStatMonitor.h @@ -56,7 +56,8 @@ public: void calc_pool_availability(); bool enable_availability_tracking = g_conf().get_val("enable_availability_tracking"); ///< tracking availability score feature - + double pool_availability_update_interval = g_conf().get_val("pool_availability_update_interval"); + void clear_pool_availability(int64_t poolid); void check_sub(Subscription *sub);