From 369471645aeb08690bfd03611d1c3337bdba6a2a Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Tue, 18 Jun 2013 13:09:12 -0700 Subject: FileStore: optionally compact leveldb on mount Signed-off-by: Samuel Just --- src/common/config_opts.h | 3 +++ src/os/FileStore.cc | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/src/common/config_opts.h b/src/common/config_opts.h index e97a055f6ce..19544f71521 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -348,6 +348,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 a91c252e531..b4392e3efb9 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -1666,6 +1666,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) { -- cgit v1.2.1