]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
OpRequest: don't warn as quickly for slow recovery ops
authorSamuel Just <sam.just@inktank.com>
Mon, 5 Aug 2013 20:25:37 +0000 (13:25 -0700)
committerSamuel Just <sam.just@inktank.com>
Tue, 6 Aug 2013 20:51:51 +0000 (13:51 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
src/common/config_opts.h
src/osd/OpRequest.cc
src/osd/OpRequest.h

index 1c7a917602a0ac3e83f674e0c6092bf3431896a5..f2afefc92e20b5ea090c3e204e7faf572ebc0b88 100644 (file)
@@ -489,9 +489,13 @@ OPTION(osd_leveldb_log, OPT_STR, "")  // enable OSD leveldb log file
  * osd_client_op_priority/osd_recovery_op_priority determines the ratio of
  * available io between client and recovery.  Each option may be set between
  * 1..63.
+ *
+ * osd_recovery_op_warn_multiple scales the normal warning threshhold,
+ * osd_op_complaint_time, so that slow recovery ops won't cause noise
  */
-OPTION(osd_client_op_priority, OPT_INT, 63)
-OPTION(osd_recovery_op_priority, OPT_INT, 10)
+OPTION(osd_client_op_priority, OPT_U32, 63)
+OPTION(osd_recovery_op_priority, OPT_U32, 10)
+OPTION(osd_recovery_op_warn_multiple, OPT_U32, 16)
 
 // Max time to wait between notifying mon of shutdown and shutting down
 OPTION(osd_mon_shutdown_timeout, OPT_DOUBLE, 5)
index a6cdc9ecffb5ed9dc9fa55fd3cbeeae188e4772f..c694362a8a5b702be6a02d63134a92b1350e77b4 100644 (file)
@@ -20,6 +20,22 @@ static ostream& _prefix(std::ostream* _dout)
   return *_dout << "--OSD::tracker-- ";
 }
 
+OpRequest::OpRequest(Message *req, OpTracker *tracker) :
+  request(req), xitem(this),
+  rmw_flags(0),
+  warn_interval_multiplier(1),
+  lock("OpRequest::lock"),
+  tracker(tracker),
+  hit_flag_points(0), latest_flag_point(0),
+  seq(0) {
+  received_time = request->get_recv_stamp();
+  tracker->register_inflight_op(&xitem);
+  if (req->get_priority() < g_conf->osd_client_op_priority) {
+    // don't warn as quickly for low priority ops
+    warn_interval_multiplier = g_conf->osd_recovery_op_warn_multiple;
+  }
+}
+
 void OpHistory::on_shutdown()
 {
   arrived.clear();
index a2014472432daf7f68285dd0d229860ad6704cb0..e72f03d1d778a256cadd680aa81442e24c99b4d7 100644 (file)
@@ -156,17 +156,7 @@ private:
   static const uint8_t flag_sub_op_sent = 1 << 4;
   static const uint8_t flag_commit_sent = 1 << 5;
 
-  OpRequest(Message *req, OpTracker *tracker) :
-    request(req), xitem(this),
-    rmw_flags(0),
-    warn_interval_multiplier(1),
-    lock("OpRequest::lock"),
-    tracker(tracker),
-    hit_flag_points(0), latest_flag_point(0),
-    seq(0) {
-    received_time = request->get_recv_stamp();
-    tracker->register_inflight_op(&xitem);
-  }
+  OpRequest(Message *req, OpTracker *tracker);
 public:
   ~OpRequest() {
     assert(request);