]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
FileStore: optionally compact leveldb on mount
authorSamuel Just <sam.just@inktank.com>
Tue, 18 Jun 2013 20:09:12 +0000 (13:09 -0700)
committerSamuel Just <sam.just@inktank.com>
Tue, 18 Jun 2013 21:18:11 +0000 (14:18 -0700)
Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Samuel Just <sam.just@inktank.com>
src/common/config_opts.h
src/os/FileStore.cc

index 094d12401c5cd4cf495f2674a74d5a97ebaa495d..1233322861a22558201089724578713d9f92f453 100644 (file)
@@ -352,6 +352,9 @@ OPTION(mds_standby_for_name, OPT_STR, "")
 OPTION(mds_standby_for_rank, OPT_INT, -1)
 OPTION(mds_standby_replay, OPT_BOOL, false)
 
+// If true, compact leveldb store on mount
+OPTION(osd_compact_leveldb_on_mount, OPT_BOOL, false)
+
 // If true, uses tmap as initial value for omap on old objects
 OPTION(osd_auto_upgrade_tmap, OPT_BOOL, true)
 
index 4b6234e09035a72732aeb1dbd4fb4029c53e850e..f2afd5b731574a15eba422cf6852bea16d6ae2c9 100644 (file)
@@ -1665,6 +1665,13 @@ int FileStore::mount()
       ret = -1;
       goto close_current_fd;
     }
+
+    if (g_conf->osd_compact_leveldb_on_mount) {
+      derr << "Compacting store..." << dendl;
+      omap_store->compact();
+      derr << "...finished compacting store" << dendl;
+    }
+
     DBObjectMap *dbomap = new DBObjectMap(omap_store);
     ret = dbomap->init(do_update);
     if (ret < 0) {