]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mon/MgrStatMonitor: add pool_availability_update_interval config option
authorShraddha Agrawal <shraddha.agrawal000@gmail.com>
Thu, 21 Aug 2025 11:51:49 +0000 (17:21 +0530)
committerJon <jonathan.bailey1@ibm.com>
Fri, 3 Oct 2025 13:31:24 +0000 (14:31 +0100)
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 <shraddhaag@ibm.com>
(cherry picked from commit 37173c8be118795af6218ffad1e67a95a935a394)

src/common/options/mon.yaml.in
src/mon/MgrStatMonitor.cc
src/mon/MgrStatMonitor.h

index 4ac1b2f05a45bd31ebb9522a2b5e12b32ee5463d..678ce5c2f7f2f25b9b273e15bb56766bc82f7ce3 100644 (file)
@@ -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
index 9bcee5b77d0ff2e44ca6bf9e9b004b070b86df6c..6d90129805bf66e66beebcdff8c19ea4de37cfff 100644 (file)
@@ -64,6 +64,7 @@ std::vector<std::string> 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<double>("pool_availability_update_interval")
+             << dendl;
+      
+      pool_availability_update_interval = g_conf().get_val<double>("pool_availability_update_interval"); 
+  }
 }
 
 void MgrStatMonitor::create_initial()
index ef06087d24ca66230aa7563a4234469b5245b5f3..b2cec6a20ba88447a4cc3b9ebc29818cb67f33e7 100644 (file)
@@ -56,7 +56,8 @@ public:
 
   void calc_pool_availability();
   bool enable_availability_tracking = g_conf().get_val<bool>("enable_availability_tracking"); ///< tracking availability score feature 
-  
+  double pool_availability_update_interval = g_conf().get_val<double>("pool_availability_update_interval");
+
   void clear_pool_availability(int64_t poolid);
 
   void check_sub(Subscription *sub);