Another question about PG::do_peer

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

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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