You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2011/06/05 05:24:16 UTC

svn commit: r1131570 - in /incubator/mesos/trunk/src: leader_detector.cpp leader_detector.hpp master.cpp nexus_sched.cpp slave.cpp

Author: benh
Date: Sun Jun  5 03:24:16 2011
New Revision: 1131570

URL: http://svn.apache.org/viewvc?rev=1131570&view=rev
Log:
refactoring

Modified:
    incubator/mesos/trunk/src/leader_detector.cpp
    incubator/mesos/trunk/src/leader_detector.hpp
    incubator/mesos/trunk/src/master.cpp
    incubator/mesos/trunk/src/nexus_sched.cpp
    incubator/mesos/trunk/src/slave.cpp

Modified: incubator/mesos/trunk/src/leader_detector.cpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/leader_detector.cpp?rev=1131570&r1=1131569&r2=1131570&view=diff
==============================================================================
--- incubator/mesos/trunk/src/leader_detector.cpp (original)
+++ incubator/mesos/trunk/src/leader_detector.cpp Sun Jun  5 03:24:16 2011
@@ -22,7 +22,7 @@ void LeaderDetector::leaderWatchWrap(zha
 LeaderDetector::LeaderDetector(string server, bool contendLeader, string ld, LeaderListener *ll) : 
   leaderListener(ll),
   zh(NULL),mydata(ld),
-  zooserver(server),currentLeaderId(""), mySequence("")
+  zooserver(server),currentLeaderSeq(""), mySeq("")
 {
 
   zh = zookeeper_init(zooserver.c_str(), initWatchWrap, 1000, 0, NULL, 0);
@@ -38,8 +38,8 @@ LeaderDetector::LeaderDetector(string se
     ret = zoo_create(zh, "/nxmaster/",  mydata.c_str(), mydata.length(), &ZOO_OPEN_ACL_UNSAFE, ZOO_SEQUENCE | ZOO_EPHEMERAL, buf, 100);
     LOG_IF(ERROR, ret!=ZOK)<<"zoo_create() ephemeral/sequence returned error:"<<ret;
     if (ret==ZOK) {
-      setSequence(string(buf));
-      LOG(INFO)<<"Created ephemeral/sequence:"<<mySequence;
+      setMySeq(string(buf));
+      LOG(INFO)<<"Created ephemeral/sequence:"<<mySeq;
     }
   }
 
@@ -78,10 +78,10 @@ bool LeaderDetector::detectLeader() {
     }
   }
 
-  if (leader!=currentLeaderId) {
-    currentLeaderId=leader;
+  if (leader!=currentLeaderSeq) {
+    currentLeaderSeq=leader;
 
-    string data = fetchLeaderData(leader); 
+    string data = fetchLeaderPID(leader); 
     
     newLeader(leader, data); // both params could be ""
       
@@ -90,10 +90,10 @@ bool LeaderDetector::detectLeader() {
   return 0;
 }
 
-string LeaderDetector::fetchLeaderData(string id) {
+string LeaderDetector::fetchLeaderPID(string id) {
   if (id=="") {
-    currentLeaderData = "";
-    return currentLeaderData;
+    currentLeaderPID = "";
+    return currentLeaderPID;
   }
   string path="/nxmaster/";
   path+=id;
@@ -104,26 +104,22 @@ string LeaderDetector::fetchLeaderData(s
   LOG_IF(INFO, ret==ZOK)<<"zoo_get leader data fetch returned "<<buf[0];
 
   string tmp(buf,buflen);
-  currentLeaderData=tmp;
-  return currentLeaderData;
+  currentLeaderPID=tmp;
+  return currentLeaderPID;
 }
 
-pair<string,string> LeaderDetector::getCurrentLeader() {
-  return pair<string,string>(getCurrentLeaderId(),getCurrentLeaderData());
+string LeaderDetector::getCurrentLeaderSeq() {
+  return currentLeaderSeq;
 }
 
-string LeaderDetector::getCurrentLeaderId() {
-  return currentLeaderId;
+string LeaderDetector::getCurrentLeaderPID() {
+  return currentLeaderPID;
 }
 
-string LeaderDetector::getCurrentLeaderData() {
-  return currentLeaderData;
-}
-
-void LeaderDetector::newLeader(string leader, string leaderData) {
-  LOG(INFO)<<"New leader ephemeral_id:"<<leader<<" data:"<<leaderData;
+void LeaderDetector::newLeader(string leader, string leaderPID) {
+  LOG(INFO)<<"New leader ephemeral_id:"<<leader<<" data:"<<leaderPID;
   if (leaderListener!=NULL)
-    leaderListener->newLeaderElected(leader,leaderData);
+    leaderListener->newLeaderElected(leader,leaderPID);
 }
 
 LeaderDetector::~LeaderDetector() {
@@ -138,7 +134,7 @@ int main(int argc, char **argv) {
   if (argc==2)
     name=argv[1];
   LeaderDetector ld(1, name);
-  string s = ld.getCurrentLeaderId();
+  string s = ld.getCurrentLeaderSeq();
   debug("Leader is "<<s<<endl<<flush);
   
   sleep(50);

Modified: incubator/mesos/trunk/src/leader_detector.hpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/leader_detector.hpp?rev=1131570&r1=1131569&r2=1131570&view=diff
==============================================================================
--- incubator/mesos/trunk/src/leader_detector.hpp (original)
+++ incubator/mesos/trunk/src/leader_detector.hpp Sun Jun  5 03:24:16 2011
@@ -21,13 +21,11 @@ class LeaderDetector {
 public:
   LeaderDetector(string server, bool contendLeader=0, string ld="", LeaderListener * ll=NULL);
 
-  void leaderWatch(zhandle_t *zh, int type, int state, const char *path);
-
   pair<string,string> getCurrentLeader();
 
-  string getCurrentLeaderId();
+  string getCurrentLeaderSeq();
 
-  string getCurrentLeaderData();
+  string getCurrentLeaderPID();
 
   void setListener(LeaderListener *l) {
     leaderListener = l;
@@ -37,16 +35,8 @@ public:
     return leaderListener;
   }
 
-  void setSequence(string seq) {  // converts "/nxmaster/000000131" to "000000131"
-    int pos;
-    if ((pos=seq.find_last_of('/'))!=string::npos ) {  
-      mySequence = seq.erase(0,pos+1);
-    } else
-      mySequence = "";
-  }
-
-  string getSequence() const {
-    return mySequence;
+  string getMySeq() const {
+    return mySeq;
   }
 
   ~LeaderDetector();
@@ -56,17 +46,26 @@ public:
   static void leaderWatchWrap(zhandle_t *zh, int type, int state, const char *path, void *watcherCtx);
 
 private: 
+  void setMySeq(string seq) {  // converts "/nxmaster/000000131" to "000000131"
+    int pos;
+    if ((pos=seq.find_last_of('/'))!=string::npos ) {  
+      mySeq = seq.erase(0,pos+1);
+    } else
+      mySeq = "";
+  }
+
+  void leaderWatch(zhandle_t *zh, int type, int state, const char *path);
   bool detectLeader();
-  string fetchLeaderData(string id);
-  void newLeader(string leader,string leaderData);
+  string fetchLeaderPID(string id);
+  void newLeader(string leader,string leaderPID);
 
   LeaderListener *leaderListener;
   zhandle_t *zh;
   string mydata;
   string zooserver;
-  string currentLeaderId;
-  string currentLeaderData;
-  string mySequence;
+  string currentLeaderSeq;
+  string currentLeaderPID;
+  string mySeq;
 
   String_vector sv;
 

Modified: incubator/mesos/trunk/src/master.cpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/master.cpp?rev=1131570&r1=1131569&r2=1131570&view=diff
==============================================================================
--- incubator/mesos/trunk/src/master.cpp (original)
+++ incubator/mesos/trunk/src/master.cpp Sun Jun  5 03:24:16 2011
@@ -286,7 +286,7 @@ void Master::operator () ()
     lpid<<self();
     leaderDetector = new LeaderDetector(zkservers, true, lpid.str());
     
-    masterId = lexical_cast<long>(leaderDetector->getSequence());
+    masterId = lexical_cast<long>(leaderDetector->getMySeq());
     LOG(INFO)<<"Master ID:"<<masterId;
   }
 

Modified: incubator/mesos/trunk/src/nexus_sched.cpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/nexus_sched.cpp?rev=1131570&r1=1131569&r2=1131570&view=diff
==============================================================================
--- incubator/mesos/trunk/src/nexus_sched.cpp (original)
+++ incubator/mesos/trunk/src/nexus_sched.cpp Sun Jun  5 03:24:16 2011
@@ -142,12 +142,13 @@ protected:
       leaderDetector = new LeaderDetector(zkservers, false, "", NULL);
       leaderDetector->setListener(&schedLeaderListener); // use this instead of constructor to avoid race condition
 
-      pair<string,string> zkleader = leaderDetector->getCurrentLeader();
-      LOG(INFO) << "Detected leader at " << zkleader.second <<" with ephemeral id:"<<zkleader.first;
+      string leaderPidStr = leaderDetector->getCurrentLeaderPID();
+      string leaderSeq = leaderDetector->getCurrentLeaderSeq();
+      LOG(INFO) << "Detected leader at " << leaderPidStr << " with ephemeral id:" << leaderSeq;
       
-      istringstream iss(zkleader.second);
+      istringstream iss(leaderPidStr);
       if (!(iss >> master)) {
-	cerr << "Failed to resolve master PID " << zkleader.second << endl;
+        cerr << "Failed to resolve master PID " << leaderPidStr << endl;
       }    
     }
 

Modified: incubator/mesos/trunk/src/slave.cpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/slave.cpp?rev=1131570&r1=1131569&r2=1131570&view=diff
==============================================================================
--- incubator/mesos/trunk/src/slave.cpp (original)
+++ incubator/mesos/trunk/src/slave.cpp Sun Jun  5 03:24:16 2011
@@ -145,12 +145,13 @@ void Slave::operator () ()
     leaderDetector = new LeaderDetector(zkserver, false, "", NULL);
     leaderDetector->setListener(&slaveLeaderListener); // use this instead of constructor to avoid race condition
 
-    pair<string,string> zkleader = leaderDetector->getCurrentLeader();
-    LOG(INFO) << "Detected leader at " << zkleader.second <<" with ephemeral id:"<<zkleader.first;
+    string leaderPidStr = leaderDetector->getCurrentLeaderPID();
+    string leaderSeq = leaderDetector->getCurrentLeaderSeq();
+    LOG(INFO) << "Detected leader at " << leaderPidStr << " with ephemeral id:" << leaderSeq;
 
-    istringstream iss(zkleader.second);
+    istringstream iss(leaderPidStr);
     if (!(iss >> master)) {
-      cerr << "Failed to resolve master PID " << zkleader.second << endl;
+      cerr << "Failed to resolve master PID " << leaderPidStr << endl;
     }    
   }