]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/MgrMonitor: limit mgrmap history 19187/head
authorSage Weil <sage@redhat.com>
Mon, 27 Nov 2017 22:45:25 +0000 (16:45 -0600)
committerSage Weil <sage@redhat.com>
Tue, 28 Nov 2017 16:25:26 +0000 (10:25 -0600)
Keep 500 by default (like we do osdmaps and mdsmaps).

Fixes: http://tracker.ceph.com/issues/22257
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 00fa8b10990f945f3e875c9850eedeb65af3fd2e)

[removed const from get_trim_to() for luminous]

src/common/options.cc
src/mon/MgrMonitor.cc
src/mon/MgrMonitor.h

index 33f9205258886eab706ab0bacda697d59bed5976..c53b113b934917ac617be20895545f04057fcf15 100644 (file)
@@ -1139,6 +1139,10 @@ std::vector<Option> get_global_options() {
     .set_default(500)
     .set_description(""),
 
+    Option("mon_max_mgrmap_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+    .set_default(500)
+    .set_description(""),
+
     Option("mon_max_osd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
     .set_default(10000)
     .set_description(""),
index a307dd4df5ce1cadd0128d01ba942e0723e0dbf7..9ab854efeb6eb55478218e115201cc2f08429282 100644 (file)
@@ -41,6 +41,15 @@ static ostream& _prefix(std::ostream *_dout, Monitor *mon,
 const static std::string command_descs_prefix = "mgr_command_descs";
 
 
+version_t MgrMonitor::get_trim_to()
+{
+  int64_t max = g_conf->get_val<int64_t>("mon_max_mgrmap_epochs");
+  if (map.epoch > max) {
+    return map.epoch - max;
+  }
+  return 0;
+}
+
 void MgrMonitor::create_initial()
 {
   // Take a local copy of initial_modules for tokenizer to iterate over.
index 82315d3550de574d3d7ebb627ffd7cb6b6370a4f..6ef23030265a4149690a376af078ed344c9770b1 100644 (file)
@@ -78,6 +78,8 @@ public:
 
   bool in_use() const { return map.epoch > 0; }
 
+  version_t get_trim_to() override;
+
   void create_initial() override;
   void get_store_prefixes(std::set<string>& s) override;
   void update_from_paxos(bool *need_bootstrap) override;