]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: throttle snap trimmming with simple delay
authorSage Weil <sage@inktank.com>
Fri, 18 Apr 2014 20:50:11 +0000 (13:50 -0700)
committerSage Weil <sage@inktank.com>
Wed, 7 May 2014 21:23:06 +0000 (14:23 -0700)
This is not particularly smart, but it is *a* knob that lets you make
the snap trimmer slow down.  It's a flow and a simple delay, so it is
adjustable at runtime.  Default is 0 (no change in behavior).

Partial solution for #6278.

Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit 4413670d784efc2392359f0f22bca7c9056188f4)

src/common/config_opts.h
src/osd/ReplicatedPG.cc

index b4f3d9f7216222656533a6948dd6efa5263334da..c932f00121c8b224282cb8f6be34490142e453a8 100644 (file)
@@ -413,6 +413,7 @@ OPTION(osd_backfill_scan_max, OPT_INT, 512)
 OPTION(osd_op_thread_timeout, OPT_INT, 15)
 OPTION(osd_recovery_thread_timeout, OPT_INT, 30)
 OPTION(osd_snap_trim_thread_timeout, OPT_INT, 60*60*1)
+OPTION(osd_snap_trim_sleep, OPT_FLOAT, 0)
 OPTION(osd_scrub_thread_timeout, OPT_INT, 60)
 OPTION(osd_scrub_finalize_thread_timeout, OPT_INT, 60*10)
 OPTION(osd_remove_thread_timeout, OPT_INT, 60*60)
index 233bc2cd514ca7137edadb92a1e5443885a57777..d3b2696b6bc9403fad1eb6cc7cf2c77e1da4582f 100644 (file)
@@ -1701,7 +1701,15 @@ ReplicatedPG::RepGather *ReplicatedPG::trim_object(const hobject_t &coid)
 
 void ReplicatedPG::snap_trimmer()
 {
-  lock();
+  if (g_conf->osd_snap_trim_sleep > 0) {
+    utime_t t;
+    t.set_from_double(g_conf->osd_snap_trim_sleep);
+    t.sleep();
+    lock();
+    dout(20) << __func__ << " slept for " << t << dendl;
+  } else {
+    lock();
+  }
   if (deleting) {
     unlock();
     return;