OPTION(osd_recovery_forget_lost_objects, 0, OPT_BOOL, false), // off for now
OPTION(osd_max_scrubs, 0, OPT_INT, 1),
OPTION(osd_scrub_load_threshold, 0, OPT_FLOAT, 0.5),
+ OPTION(osd_scrub_min_interval, 0, OPT_FLOAT, 300),
+ OPTION(osd_scrub_max_interval, 0, OPT_FLOAT, 60*60*24*7*4), // 4 weeks
OPTION(osd_auto_weight, 0, OPT_BOOL, false),
OPTION(osd_class_error_timeout, 0, OPT_DOUBLE, 60.0), // seconds
OPTION(osd_class_timeout, 0, OPT_DOUBLE, 60*60.0), // seconds
int osd_max_scrubs;
float osd_scrub_load_threshold;
+ float osd_scrub_min_interval;
+ float osd_scrub_max_interval;
bool osd_check_for_log_corruption; // bleh
return true;
}
+ // just scrubbed?
+ if (info.history.last_scrub_stamp + g_conf.osd_scrub_min_interval > g_clock.now()) {
+ dout(20) << "sched_scrub: just scrubbed, skipping" << dendl;
+ return true;
+ }
+
bool ret = false;
if (!scrub_reserved) {
assert(scrub_reserved_peers.empty());