Hi,
Another question is about PG::do_peer. I wonder if we should modify
the condition of inferring no missing as follows:
diff --git a/src/osd/PG.cc b/src/osd/PG.cc
index e634296..4ce3336 100644
--- a/src/osd/PG.cc
+++ b/src/osd/PG.cc
@@ -1632,7 +1632,7 @@ void PG::do_peer(ObjectStore::Transaction& t,
list<Context*>& tfin,
if (pi.is_empty())
continue;
if (peer_missing.find(peer) == peer_missing.end()) {
- if (pi.last_update == pi.last_complete) {
+ if (pi.last_update == pi.last_complete && pi.last_update >= log.tail) {
dout(10) << " infering no missing (last_update==last_complete)
for osd" << peer << dendl;
peer_missing[peer].num_missing(); // just create the entry.
search_for_missing(peer_info[peer], &peer_missing[peer], peer);
If pi.last_update < log.tail, we cannot know if the peer has any
missing. Shouldn't we try to pull the peer's missing+backlog first
before inferring no missing and go ahead activating the pg?
Sorry for separating my questions into multiple emails.
--
Henry Chang
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html