]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Add recovery sleep hybrid configuration option
authorNeha Ojha <nojha@redhat.com>
Tue, 1 Aug 2017 19:36:55 +0000 (12:36 -0700)
committerNeha Ojha <nojha@redhat.com>
Wed, 2 Aug 2017 18:58:31 +0000 (11:58 -0700)
Signed-off-by: Neha Ojha <nojha@redhat.com>
src/common/options.cc
src/osd/OSD.cc

index 4d6bbd1c17f54b97cb6d465e2fd9c7744229896a..3edce44b7c595153e2b5e94c0211d74281947393 100644 (file)
@@ -1985,15 +1985,19 @@ std::vector<Option> get_global_options() {
 
     Option("osd_recovery_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
     .set_default(0)
-    .set_description(""),
+    .set_description("Time in seconds to sleep before next recovery or backfill op"),
 
     Option("osd_recovery_sleep_hdd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
     .set_default(0.1)
-    .set_description(""),
+    .set_description("Time in seconds to sleep before next recovery or backfill op for HDDs"),
 
     Option("osd_recovery_sleep_ssd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
     .set_default(0)
-    .set_description(""),
+    .set_description("Time in seconds to sleep before next recovery or backfill op for SSDs"),
+
+    Option("osd_recovery_sleep_hybrid", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+    .set_default(0.025)
+    .set_description("Time in seconds to sleep before next recovery or backfill op when data is on HDD and journal is on SSD"),
 
     Option("osd_snap_trim_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
     .set_default(0)
index dd96a5b6cba39cf39f6861d55e0d1d408dc44ffb..c9702c4577f4af57b02dbbb028cc4619758066af 100644 (file)
@@ -2357,8 +2357,10 @@ float OSD::get_osd_recovery_sleep()
 {
   if (cct->_conf->osd_recovery_sleep)
     return cct->_conf->osd_recovery_sleep;
-  if (store_is_rotational)
+  if (store_is_rotational && journal_is_rotational)
     return cct->_conf->osd_recovery_sleep_hdd;
+  else if (store_is_rotational && !journal_is_rotational)
+    return cct->_conf->get_val<double>("osd_recovery_sleep_hybrid");
   else
     return cct->_conf->osd_recovery_sleep_ssd;
 }