]> 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:37 +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 12c079fdc85d9fb4281eddf9505baa55add66e96..a11db1887d784f12c0e7e3dd4edfbc3ab007ba96 100644 (file)
@@ -415,6 +415,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 f4a96cd555d25b8c44658635e7f17279bfd8c9ab..735874ec4dd4cc523a715304301d70a44a903a72 100644 (file)
@@ -2014,7 +2014,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;