]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Elector: keep a list of classic mons instead of each mon's commands
authorGreg Farnum <greg@inktank.com>
Mon, 9 Dec 2013 23:30:57 +0000 (15:30 -0800)
committerGreg Farnum <greg@inktank.com>
Mon, 9 Dec 2013 23:34:34 +0000 (15:34 -0800)
We aren't actually using the sets, so don't bother keeping them.

Signed-off-by: Greg Farnum <greg@inktank.com>
src/mon/Elector.cc
src/mon/Elector.h

index 43b478e99ff3454b0bbf12e1aea9cd1d4ceb0f9c..6518822adb24077443320edfb89176ce8dfecd85 100644 (file)
@@ -61,7 +61,7 @@ void Elector::bump_epoch(epoch_t e)
   // clear up some state
   electing_me = false;
   acked_me.clear();
-  acker_commands.clear();
+  classic_mons.clear();
 }
 
 
@@ -74,7 +74,7 @@ void Elector::start()
   dout(5) << "start -- can i be leader?" << dendl;
 
   acked_me.clear();
-  acker_commands.clear();
+  classic_mons.clear();
   init();
   
   // start by trying to elect me
@@ -102,7 +102,7 @@ void Elector::defer(int who)
   if (electing_me) {
     // drop out
     acked_me.clear();
-    acker_commands.clear();
+    classic_mons.clear();
     electing_me = false;
   }
 
@@ -173,15 +173,7 @@ void Elector::victory()
   }
 
   // decide what command set we're supporting
-  bool use_classic_commands = false;
-  for (list<bufferlist>::iterator i = acker_commands.begin();
-      i != acker_commands.end();
-      ++i) {
-    if (i->length() == 0) {
-      use_classic_commands = true;
-      break;
-    }
-  }
+  bool use_classic_commands = !classic_mons.empty();
   
   cancel_timer();
   
@@ -292,7 +284,8 @@ void Elector::handle_ack(MMonElection *m)
   if (electing_me) {
     // thanks
     acked_me[from] = m->get_connection()->get_features();
-    acker_commands.push_back(m->commands);
+    if (!m->commands.length())
+      classic_mons.insert(from);
     dout(5) << " so far i have " << acked_me << dendl;
     
     // is that _everyone_?
index 2b3ce5481e8f3dfc388caa267bdb79d31939f15d..e59fbf07c6b529073b703fded03e492efffad9df 100644 (file)
@@ -114,7 +114,7 @@ class Elector {
    * victory.  Also note each peer's feature set.
    */
   map<int, uint64_t> acked_me;
-  list<bufferlist> acker_commands;
+  set<int> classic_mons;
   bufferlist my_supported_commands;
   bufferlist classic_commands;
   /**