]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: pass MonClient ref into snapserver & mdbalancer
authorJohn Spray <john.spray@redhat.com>
Fri, 3 Jul 2015 10:40:41 +0000 (11:40 +0100)
committerJohn Spray <john.spray@redhat.com>
Tue, 28 Jul 2015 08:05:08 +0000 (09:05 +0100)
Thereby avoid having to expose methods on MDSRank
for them to send mon messages.

Signed-off-by: John Spray <john.spray@redhat.com>
src/mds/MDBalancer.cc
src/mds/MDBalancer.h
src/mds/MDSRank.cc
src/mds/MDSRank.h
src/mds/SnapServer.cc
src/mds/SnapServer.h

index 937cc1b49dce7d993a14c56a4722cfc083bdcf7f..e806e52d8def4bef24b6992c93049ff6bed70a7d 100644 (file)
@@ -805,8 +805,8 @@ bool MDBalancer::check_targets()
   dout(10) << "check_targets have " << map_targets << " need " << need_targets << " want " << want_targets << dendl;
 
   if (send) {
-    MMDSLoadTargets* m = new MMDSLoadTargets(mds_gid_t(mds->get_global_id()), want_targets);
-    mds->send_mon_message(m);
+    MMDSLoadTargets* m = new MMDSLoadTargets(mds_gid_t(mon_client->get_global_id()), want_targets);
+    mon_client->send_mon_message(m);
   }
   return ok;
 }
index 9cdb012875a32ed9dc77e5be3b7546c225f81c46..68546dbd926555e782437c73572332d9fa36d9b6 100644 (file)
@@ -33,11 +33,13 @@ class MHeartbeat;
 class CInode;
 class CDir;
 class Messenger;
+class MonClient;
 
 class MDBalancer {
  protected:
   MDSRank *mds;
   Messenger *messenger;
+  MonClient *mon_client;
   int beat_epoch;
 
   int last_epoch_under;  
@@ -75,9 +77,10 @@ class MDBalancer {
   }
 
 public:
-  MDBalancer(MDSRank *m, Messenger *msgr) : 
+  MDBalancer(MDSRank *m, Messenger *msgr, MonClient *monc) : 
     mds(m),
     messenger(msgr),
+    mon_client(monc),
     beat_epoch(0),
     last_epoch_under(0), last_epoch_over(0), my_load(0.0), target_load(0.0) { }
   
index edf7e7517057789bb6027ab519938e70863a2685..1b35c41a54fd7ff53449f8dbe9da67e2011bd23d 100644 (file)
@@ -77,10 +77,10 @@ MDSRank::MDSRank(
 
   mdcache = new MDCache(this);
   mdlog = new MDLog(this);
-  balancer = new MDBalancer(this, messenger);
+  balancer = new MDBalancer(this, messenger, monc);
 
   inotable = new InoTable(this);
-  snapserver = new SnapServer(this);
+  snapserver = new SnapServer(this, monc);
   snapclient = new SnapClient(this);
 
   server = new Server(this);
@@ -862,18 +862,6 @@ utime_t MDSRank::get_laggy_until() const
   return beacon.get_laggy_until();
 }
 
-// FIXME maybe instead of exposing this to the world, we should just
-// share a MonClient reference with the guys who need it (balancer+snapserver)
-void MDSRank::send_mon_message(Message *m)
-{
-  monc->send_mon_message(m);
-}
-
-uint64_t MDSRank::get_global_id() const
-{
-  return monc->get_global_id();
-}
-
 bool MDSRank::is_daemon_stopping() const
 {
   return stopping;
index 8887233a226246df404c85b49963b32d75d82b31..e322676ecbd0ff52234181172419d7d686795aab 100644 (file)
@@ -372,10 +372,6 @@ class MDSRank {
 
     MDSMap *get_mds_map() { return mdsmap; }
 
-    // Access to monc functionality needed by balancer and snapserver
-    uint64_t get_global_id() const;
-    void send_mon_message(Message *m);
-
     int get_req_rate() { return logger->get(l_mds_request); }
 
     // FIXME: interface for MDSDaemon to call, don't really want to expose
index 6da4bb9339e27dc2d190b406292ec4fc47109b64..557b035c0dbac8546a65c50436b0b4e279dc3591 100644 (file)
@@ -283,7 +283,7 @@ void SnapServer::check_osd_map(bool force)
   if (!all_purge.empty()) {
     dout(10) << "requesting removal of " << all_purge << dendl;
     MRemoveSnaps *m = new MRemoveSnaps(all_purge);
-    mds->send_mon_message(m);
+    mon_client->send_mon_message(m);
   }
 
   last_checked_osdmap = version;
index ce593b922024bcaf20ee0b49f9796b7677daf20d..65177beff6618a0d5033ea09892a76d3c9beddd7 100644 (file)
 #include "snap.h"
 
 class MDSRank;
+class MonClient;
 
 class SnapServer : public MDSTableServer {
-public:
-  
 protected:
+  MonClient *mon_client;
   snapid_t last_snap;
   map<snapid_t, SnapInfo> snaps;
   map<int, set<snapid_t> > need_to_purge;
@@ -35,8 +35,9 @@ protected:
   version_t last_checked_osdmap;
 
 public:
-  SnapServer(MDSRank *m) : MDSTableServer(m, TABLE_SNAP),
-                      last_checked_osdmap(0) { }
+  SnapServer(MDSRank *m, MonClient *monc)
+    : MDSTableServer(m, TABLE_SNAP), mon_client(monc), last_checked_osdmap(0)
+  {}
     
   void reset_state();
   void encode_server_state(bufferlist& bl) const {