]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: ping mon less frequently when peerless
authorSage Weil <sage@newdream.net>
Tue, 9 Dec 2008 16:42:28 +0000 (08:42 -0800)
committerSage Weil <sage@newdream.net>
Tue, 9 Dec 2008 16:42:28 +0000 (08:42 -0800)
Every second is too much.  Make it tunable.

src/config.cc
src/config.h
src/osd/OSD.cc

index 097ebccbc2a0399308a1d25e12b051278dda414c..d5d2545d4e09d6a7b3b6202815b896fa8cf9ab7c 100644 (file)
@@ -418,6 +418,7 @@ md_config_t g_conf = {
   osd_age: .8,
   osd_age_time: 0,
   osd_heartbeat_interval: 1,
+  osd_mon_heartbeat_interval: 30,  // if no peers, ping monitor
   osd_heartbeat_grace: 60,
   osd_mon_report_interval:  5,  // pg stats, failures, up_thru, boot.
   osd_replay_window: 45,
index 6b75d68068f4aa4981d235d5c1cf37af5cb43dce..2de072f144bf0febc5665e26c0c241fc1276cc81 100644 (file)
@@ -284,6 +284,7 @@ struct md_config_t {
   float   osd_age;
   int   osd_age_time;
   int   osd_heartbeat_interval;  
+  int   osd_mon_heartbeat_interval;  
   int   osd_heartbeat_grace;
   int   osd_mon_report_interval;
   int   osd_replay_window;
index e6b37c992ec8d81be77103a930f6f9c00ffd085f..eb11c4a98ba1a97b7b2234fcbec7390453b85a94 100644 (file)
@@ -1125,10 +1125,13 @@ void OSD::heartbeat()
   
   // hmm.. am i all alone?
   if (heartbeat_from.empty() || heartbeat_to.empty()) {
-    dout(10) << "i have no heartbeat peers; checking mon for new map" << dendl;
-    int mon = monmap->pick_mon();
-    messenger->send_message(new MOSDGetMap(monmap->fsid, osdmap->get_epoch()+1),
-                            monmap->get_inst(mon));
+    if (now - last_mon_heartbeat > g_conf.osd_mon_heartbeat_interval) {
+      last_mon_heartbeat = now;
+      dout(10) << "i have no heartbeat peers; checking mon for new map" << dendl;
+      int mon = monmap->pick_mon();
+      messenger->send_message(new MOSDGetMap(monmap->fsid, osdmap->get_epoch()+1),
+                             monmap->get_inst(mon));
+    }
   }
 
   if (map_locked)