From d290b276644a890cdde5c479eb2b514c3f166b6c Mon Sep 17 00:00:00 2001 From: Li Wang Date: Tue, 10 Nov 2015 17:01:47 +0800 Subject: [PATCH] osd: trivial optimization Signed-off-by: Li Wang --- src/osd/PG.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 8a50060e6179..ad51c86b05d6 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -4026,12 +4026,14 @@ void PG::chunky_scrub(ThreadPool::TPHandle &handle) // walk the log to find the latest update that affects our chunk scrubber.subset_last_update = pg_log.get_tail(); - for (list::const_iterator p = pg_log.get_log().log.begin(); - p != pg_log.get_log().log.end(); + for (list::const_reverse_iterator p = pg_log.get_log().log.rbegin(); + p != pg_log.get_log().log.rend(); ++p) { if (cmp(p->soid, scrubber.start, get_sort_bitwise()) >= 0 && - cmp(p->soid, scrubber.end, get_sort_bitwise()) < 0) + cmp(p->soid, scrubber.end, get_sort_bitwise()) < 0) { scrubber.subset_last_update = p->version; + break; + } } // ask replicas to wait until last_update_applied >= scrubber.subset_last_update and then scan -- 2.47.3