From: Sage Weil Date: Tue, 16 Dec 2008 19:25:21 +0000 (-0800) Subject: mds: add logclient X-Git-Tag: v0.6~51 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e1abc7fad30fd49d87f1d76a5d1e122a862d9db4;p=ceph.git mds: add logclient --- diff --git a/src/mds/MDS.cc b/src/mds/MDS.cc index 020345e5fae8..bd33aa144ae6 100644 --- a/src/mds/MDS.cc +++ b/src/mds/MDS.cc @@ -71,18 +71,17 @@ // cons/des -MDS::MDS(int whoami, Messenger *m, MonMap *mm) : +MDS::MDS(int whoami_, Messenger *m, MonMap *mm) : mds_lock("MDS::mds_lock"), - timer(mds_lock), + timer(mds_lock), + whoami(whoami_), + messenger(m), + monmap(mm), + logclient(messenger, monmap), sessionmap(this) { - this->whoami = whoami; - last_tid = 0; - monmap = mm; - messenger = m; - mdsmap = new MDSMap; osdmap = new OSDMap; @@ -119,9 +118,6 @@ MDS::MDS(int whoami, Messenger *m, MonMap *mm) : want_state = state = MDSMap::STATE_DNE; logger = logger2 = 0; - - // i'm ready! - messenger->set_dispatcher(this); } MDS::~MDS() { @@ -361,6 +357,10 @@ int MDS::init(bool standby) // schedule tick reset_tick(); + // i'm ready! + messenger->set_dispatcher(this); + link_dispatcher(&logclient); + mds_lock.Unlock(); return 0; } @@ -382,6 +382,8 @@ void MDS::tick() // reschedule reset_tick(); + logclient.send_log(); + if (laggy) return; @@ -1090,6 +1092,7 @@ void MDS::suicide() objecter->shutdown(); // shut down messenger + unlink_dispatcher(&logclient); messenger->shutdown(); } diff --git a/src/mds/MDS.h b/src/mds/MDS.h index 030ec2396172..4264dcdb7285 100644 --- a/src/mds/MDS.h +++ b/src/mds/MDS.h @@ -27,6 +27,7 @@ #include "common/Mutex.h" #include "common/Cond.h" #include "common/Timer.h" +#include "common/LogClient.h" #include "mon/MonMap.h" #include "MDSMap.h" @@ -82,11 +83,12 @@ class MDS : public Dispatcher { public: Messenger *messenger; - MDSMap *mdsmap; MonMap *monmap; + MDSMap *mdsmap; OSDMap *osdmap; Objecter *objecter; Filer *filer; // for reading/writing to/from osds + LogClient logclient; // sub systems Server *server;