From: Samuel Just Date: Tue, 18 Jun 2013 20:09:12 +0000 (-0700) Subject: FileStore: optionally compact leveldb on mount X-Git-Tag: v0.66~52^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=38a595bafb89ffd9734e63ebd26d4dd2ff617ebb;p=ceph.git FileStore: optionally compact leveldb on mount Reviewed-by: Sage Weil Signed-off-by: Samuel Just --- diff --git a/src/common/config_opts.h b/src/common/config_opts.h index 094d12401c5..1233322861a 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -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) diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 4b6234e0903..f2afd5b7315 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -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) {