What release are you working on? Have you seen the latest code in master that allows client operations to preempt scrub?
bool PG::write_blocked_by_scrub(const hobject_t& soid) { if (soid < scrubber.start || soid >= scrubber.end) { return false; } if (scrub_can_preempt) { if (!scrub_preempted) { dout(10) << __func__ << " " << soid << " preempted" << dendl; scrub_preempted = true; } else { dout(10) << __func__ << " " << soid << " already preempted" << dendl; } return false; } return true; } David On 10/31/18 3:12 AM, 韦皓诚 wrote:
Hi~ We have make some modifications to osd queue so that Scrub would stay in queue when client_op is busy. But this brings a problem, some write request would be blocked by the scrub in queue too long time. So we want to block a write request only when the scrub out of queue. The question is, is there any accident will happen to it?