From 5f72c376deb64562e5e88be2f22339135ac7372b Mon Sep 17 00:00:00 2001 From: Igor Fedotov Date: Mon, 8 Jul 2019 17:40:20 +0300 Subject: [PATCH] os/bluestore: implement more intelligent DB volume space managment for BlueFS. It allows excessive space usage for higher DB levels. Signed-off-by: Igor Fedotov --- src/common/legacy_config_opts.h | 2 + src/common/options.cc | 11 ++ src/os/bluestore/BlueFS.cc | 35 ++++-- src/os/bluestore/BlueFS.h | 62 +++++----- src/os/bluestore/BlueRocksEnv.h | 2 + src/os/bluestore/BlueStore.cc | 193 +++++++++++++++++++++++++++++--- src/os/bluestore/BlueStore.h | 178 +++++++++++++++++++++++++++++ 7 files changed, 431 insertions(+), 52 deletions(-) diff --git a/src/common/legacy_config_opts.h b/src/common/legacy_config_opts.h index 6dfeddc8f52..bb0e5b87987 100644 --- a/src/common/legacy_config_opts.h +++ b/src/common/legacy_config_opts.h @@ -1057,6 +1057,8 @@ OPTION(bluestore_log_op_age, OPT_DOUBLE) OPTION(bluestore_log_omap_iterator_age, OPT_DOUBLE) OPTION(bluestore_log_collection_list_age, OPT_DOUBLE) OPTION(bluestore_debug_enforce_settings, OPT_STR) +OPTION(bluestore_volume_selection_policy, OPT_STR) +OPTION(bluestore_volume_selection_reserved_factor, OPT_DOUBLE) OPTION(kstore_max_ops, OPT_U64) OPTION(kstore_max_bytes, OPT_U64) diff --git a/src/common/options.cc b/src/common/options.cc index 957923df580..24f33a4832d 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -4584,6 +4584,17 @@ std::vector