]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: --compact argument, config option to compact the store on start
authorSage Weil <sage@inktank.com>
Mon, 29 Apr 2013 22:44:58 +0000 (15:44 -0700)
committerSage Weil <sage@inktank.com>
Mon, 29 Apr 2013 22:44:58 +0000 (15:44 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
src/ceph_mon.cc
src/common/config_opts.h

index 01072728db29a96bcdbb2a99b6aece008ccd614b..69bcf6d3282e537a2059fd833aee927828eb7ce8 100644 (file)
@@ -114,6 +114,7 @@ int main(int argc, const char **argv)
   int err;
 
   bool mkfs = false;
+  bool compact = false;
   std::string osdmapfn, inject_monmap;
 
   vector<const char*> args;
@@ -132,6 +133,8 @@ int main(int argc, const char **argv)
       exit(0);
     } else if (ceph_argparse_flag(args, i, "--mkfs", (char*)NULL)) {
       mkfs = true;
+    } else if (ceph_argparse_flag(args, i, "--compact", (char*)NULL)) {
+      compact = true;
     } else if (ceph_argparse_witharg(args, i, &val, "--osdmap", (char*)NULL)) {
       osdmapfn = val;
     } else if (ceph_argparse_witharg(args, i, &val, "--inject_monmap", (char*)NULL)) {
@@ -474,6 +477,12 @@ int main(int argc, const char **argv)
   if (err < 0)
     return 1;
 
+  if (compact || g_conf->mon_compact_on_start) {
+    derr << "compacting monitor store ..." << dendl;
+    mon->store->compact();
+    derr << "done compacting" << dendl;
+  }
+
   global_init_daemonize(g_ceph_context, 0);
   common_init_finish(g_ceph_context);
   global_init_chdir(g_ceph_context);
index 22d3d334f366999934367b74b0db9c342b5e191d..78b98b1cc24a1001aa281f372b839ee15ce73cfe 100644 (file)
@@ -124,6 +124,7 @@ OPTION(ms_inject_internal_delays, OPT_DOUBLE, 0)   // seconds
 OPTION(mon_data, OPT_STR, "/var/lib/ceph/mon/$cluster-$id")
 OPTION(mon_initial_members, OPT_STR, "")    // list of initial cluster mon ids; if specified, need majority to form initial quorum and create new cluster
 OPTION(mon_sync_fs_threshold, OPT_INT, 5)   // sync() when writing this many objects; 0 to disable.
+OPTION(mon_compact_on_start, OPT_BOOL, false)  // compact leveldb on ceph-mon start
 OPTION(mon_tick_interval, OPT_INT, 5)
 OPTION(mon_subscribe_interval, OPT_DOUBLE, 300)
 OPTION(mon_osd_laggy_halflife, OPT_INT, 60*60)        // (seconds) how quickly our laggy estimations decay