Re: A question about scrubber.write_blocked_by_scrub()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks~
I worked on 12.2.4. And I read about the implementation of scrub
preempt in latest version. The scrub preempt happens after scrub
dequeue so it can not slove my problem.

David Zafman <dzafman@xxxxxxxxxx> 于2018年10月31日周三 下午11:04写道:
>
>
> 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?
>




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux