]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: small pull recovery adjustments
authorSage Weil <sage.weil@dreamhost.com>
Mon, 14 Mar 2011 22:16:27 +0000 (15:16 -0700)
committerSage Weil <sage.weil@dreamhost.com>
Mon, 14 Mar 2011 22:16:27 +0000 (15:16 -0700)
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/osd/OSD.cc
src/osd/PG.h
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h

index 6247961c075b4782819530577c8fd5928c37bc53..bdd4bb1bd872cb94b2e9f7b3eaccd09fd0ec7d92 100644 (file)
@@ -3315,7 +3315,7 @@ void OSD::activate_map(ObjectStore::Transaction& t, list<Context*>& tfin)
        it++) {
     PG *pg = it->second;
     pg->lock();
-    pg->check_recovery_op_pulls(*osdmap);
+    pg->check_recovery_op_pulls(osdmap);
 
     if (pg->is_primary())
       num_pg_primary++;
index 74db95dacd9b763eed914329689fb3fe2a585635..c93956cae32219ebb2ef764d5b13cefd8ab50cab 100644 (file)
@@ -885,7 +885,7 @@ public:
   void clear_recovery_state();
   virtual void _clear_recovery_state() = 0;
   void defer_recovery();
-  virtual void check_recovery_op_pulls(const OSDMap &newmap) = 0;
+  virtual void check_recovery_op_pulls(const OSDMap *newmap) = 0;
   void start_recovery_op(const sobject_t& soid);
   void finish_recovery_op(const sobject_t& soid, bool dequeue=false);
 
index 972428e604f3926c7c1239d39e4635c78df3db29..64a921edeeafd867fb5a1fd65e4baaada32a9846 100644 (file)
@@ -3303,7 +3303,7 @@ int ReplicatedPG::pull(const sobject_t& soid)
 
   // take note
   assert(pulling.count(soid) == 0);
-  rec_from_peer[fromosd].insert(soid);
+  pull_from_peer[fromosd].insert(soid);
   pull_info_t& p = pulling[soid];
   p.version = v;
   p.from = fromosd;
@@ -3946,7 +3946,7 @@ void ReplicatedPG::sub_op_push(MOSDSubOp *op)
     if (complete) {
       // close out pull op
       pulling.erase(soid);
-      rec_from_peer[pi->from].erase(soid);
+      pull_from_peer[pi->from].erase(soid);
       finish_recovery_op(soid);
       
       update_stats();
@@ -4017,7 +4017,7 @@ void ReplicatedPG::_failed_push(MOSDSubOp *op)
   }
 
   finish_recovery_op(soid);  // close out this attempt,
-  rec_from_peer[from].erase(soid);
+  pull_from_peer[from].erase(soid);
   pulling.erase(soid);
 
   op->put();
@@ -4088,7 +4088,7 @@ void ReplicatedPG::on_change()
   // clear pushing/pulling maps
   pushing.clear();
   pulling.clear();
-  rec_from_peer.clear();
+  pull_from_peer.clear();
 }
 
 void ReplicatedPG::on_role_change()
@@ -4114,16 +4114,15 @@ void ReplicatedPG::_clear_recovery_state()
 #endif
   pulling.clear();
   pushing.clear();
-  rec_from_peer.clear();
+  pull_from_peer.clear();
 }
 
-void ReplicatedPG::check_recovery_op_pulls(const OSDMap &osdmap)
+void ReplicatedPG::check_recovery_op_pulls(const OSDMap *osdmap)
 {
-  map<int, set<sobject_t> >::iterator j = rec_from_peer.begin();
-  for (;
-       j != rec_from_peer.end();
+  for (map<int, set<sobject_t> >::iterator j = pull_from_peer.begin();
+       j != pull_from_peer.end();
        ) {
-    if (osdmap.is_up(j->first)) {
+    if (osdmap->is_up(j->first)) {
       ++j;
       continue;
     }
@@ -4138,7 +4137,7 @@ void ReplicatedPG::check_recovery_op_pulls(const OSDMap &osdmap)
       finish_recovery_op(*i);
     }
     log.last_requested = eversion_t();
-    rec_from_peer.erase(j++);
+    pull_from_peer.erase(j++);
   }
 }
   
index 779a1a52aab95005719ba566ba627a9cf79badba..12c96f3b776948c2e1755a04115e42c86ed55e30 100644 (file)
@@ -504,7 +504,7 @@ protected:
   map<sobject_t, pull_info_t> pulling;
 
   // Reverse mapping from osd peer to objects beging pulled from that peer
-  map<int, set<sobject_t> > rec_from_peer;
+  map<int, set<sobject_t> > pull_from_peer;
 
   // push
   struct push_info_t {
@@ -536,7 +536,7 @@ protected:
   void send_push_op_blank(const sobject_t& soid, int peer);
 
   // Cancels/resets pulls from peer
-  void check_recovery_op_pulls(const OSDMap &map);
+  void check_recovery_op_pulls(const OSDMap *map);
   int pull(const sobject_t& oid);
   void send_pull_op(const sobject_t& soid, eversion_t v, bool first, const interval_set<uint64_t>& data_subset, int fromosd);