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