]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd/scrub: introducing the concept of a SchedEntry
authorRonen Friedman <rfriedma@redhat.com>
Sun, 7 Jul 2024 17:46:25 +0000 (12:46 -0500)
committerRonen Friedman <rfriedma@redhat.com>
Wed, 21 Aug 2024 16:09:41 +0000 (11:09 -0500)
commit2b6e1dd90b73bf1db16f9ee1b7ad519be3ca97ba
treefd53860a844f83de5aea1935eb995afe4c498e75
parent64f5bff3791df7656457f2462cf8b6aeb824549f
osd/scrub: introducing the concept of a SchedEntry

SchedEntry holds the scheduling details for scrubbing a specific PG at
a specific scrub level. Namely - it identifies the [pg,level]
combination, the 'urgency' attribute of the scheduled scrub
(which determines most of its behavior and scheduling decisions)
and the actual time attributes for scheduling (target,
deadline, not_before).

Added a table detailing, for each type of scrub, what limitations apply
to it, and what restrictions are waived.

The following commits will reshape the ScrubJob objects to hold
two instances of SchedTarget-s - two wrappers around SchedEntry-s,
one for the next shallow scrub and one for the next deep scrub.

Sched-entries (wrapped in sched-targets) have a defined order:

For ready-to-scrub entries (those that have an n.b. in the past),
the order is first by urgency, then by target time (and then by
level - deep before shallow - and then by the n.b. itself).

'Future' entries are ordered by n.b., then urgency,
target time, and level.

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
src/osd/scrubber/scrub_job.h
src/osd/scrubber/scrub_queue_entry.h [new file with mode: 0644]
src/osd/scrubber_common.h