OPTION(osd_scrub_priority, OPT_U32, 5)
// set default cost equal to 50MB io
OPTION(osd_scrub_cost, OPT_U32, 50<<20)
+// set requested scrub priority higher than scrub priority to make the
+// requested scrubs jump the queue of scheduled scrubs
+OPTION(osd_requested_scrub_priority, OPT_U32, 120)
OPTION(osd_recovery_priority, OPT_U32, 5)
// set default cost equal to 20MB io
PGQueueable(
PGScrub(pg->get_osdmap()->get_epoch()),
cct->_conf->osd_scrub_cost,
- pg->get_scrub_priority(),
+ pg->scrubber.priority,
ceph_clock_now(),
entity_inst_t(),
pg->get_osdmap()->get_epoch()));
if (is_scrubbing()) {
return false;
}
+ scrubber.priority = scrubber.must_scrub ?
+ cct->_conf->osd_requested_scrub_priority : get_scrub_priority();
scrubber.must_scrub = false;
state_set(PG_STATE_SCRUBBING);
if (scrubber.must_deep_scrub) {
// flags to indicate explicitly requested scrubs (by admin)
bool must_scrub, must_deep_scrub, must_repair;
+ // Priority to use for scrub scheduling
+ unsigned priority;
+
// this flag indicates whether we would like to do auto-repair of the PG or not
bool auto_repair;