From: Kefu Chai Date: Fri, 22 Mar 2019 03:38:42 +0000 (+0800) Subject: common/config,mon/ConfigMap: use transparent comparator X-Git-Tag: v15.0.0~115^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2b21faac4bd67ae4fe3c68187e48c2004a705b8b;p=ceph.git common/config,mon/ConfigMap: use transparent comparator use transparent comparator as the comparator in the map of settings, so we can find the values in a map by string_view. Signed-off-by: Kefu Chai --- diff --git a/src/common/config.cc b/src/common/config.cc index c4b472a5a94d..10f76d1bbb78 100644 --- a/src/common/config.cc +++ b/src/common/config.cc @@ -263,7 +263,7 @@ void md_config_t::set_val_default(ConfigValues& values, int md_config_t::set_mon_vals(CephContext *cct, ConfigValues& values, const ConfigTracker& tracker, - const map& kv, + const map>& kv, config_callback config_cb) { ignored_mon_values.clear(); diff --git a/src/common/config.h b/src/common/config.h index 6d80d27f2f08..a6e1adeba70e 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -157,7 +157,7 @@ public: int set_mon_vals(CephContext *cct, ConfigValues& values, const ConfigTracker& tracker, - const map& kv, + const map>& kv, config_callback config_cb); // Called by the Ceph daemons to make configuration changes at runtime diff --git a/src/common/config_proxy.h b/src/common/config_proxy.h index 92b0c91a3735..ce11a2612deb 100644 --- a/src/common/config_proxy.h +++ b/src/common/config_proxy.h @@ -277,7 +277,7 @@ public: config.set_val_or_die(values, obs_mgr, key, val); } int set_mon_vals(CephContext *cct, - const map& kv, + const std::map>& kv, md_config_t::config_callback config_cb) { int ret; rev_obs_map_t rev_obs; diff --git a/src/crimson/common/config_proxy.h b/src/crimson/common/config_proxy.h index 0e6dae72991a..28fa2069b1a3 100644 --- a/src/crimson/common/config_proxy.h +++ b/src/crimson/common/config_proxy.h @@ -141,7 +141,8 @@ public: return get_config().get_osd_pool_default_min_size(*values, size); } - seastar::future<> set_mon_vals(const std::map& kv) { + seastar::future<> + set_mon_vals(const std::map>& kv) { return do_change([kv, this](ConfigValues& values) { get_config().set_mon_vals(nullptr, values, obs_mgr, kv, nullptr); }); diff --git a/src/messages/MConfig.h b/src/messages/MConfig.h index 1e433e52f74c..28a1c45d84e8 100644 --- a/src/messages/MConfig.h +++ b/src/messages/MConfig.h @@ -12,10 +12,11 @@ public: static constexpr int HEAD_VERSION = 1; static constexpr int COMPAT_VERSION = 1; - map config; + // use transparent comparator so we can lookup in it by string_view keys + std::map> config; MConfig() : MessageInstance(MSG_CONFIG, HEAD_VERSION, COMPAT_VERSION) { } - MConfig(const map& c) + MConfig(const std::map>& c) : MessageInstance(MSG_CONFIG, HEAD_VERSION, COMPAT_VERSION), config(c) {} diff --git a/src/mon/ConfigMap.cc b/src/mon/ConfigMap.cc index c09f73dfa3ea..2defe969f329 100644 --- a/src/mon/ConfigMap.cc +++ b/src/mon/ConfigMap.cc @@ -101,7 +101,7 @@ void ConfigMap::dump(Formatter *f) const f->close_section(); } -std::map +std::map> ConfigMap::generate_entity_map( const EntityName& name, const map& crush_location, diff --git a/src/mon/ConfigMap.h b/src/mon/ConfigMap.h index 4b061fa4b86a..17b52af1d1d1 100644 --- a/src/mon/ConfigMap.h +++ b/src/mon/ConfigMap.h @@ -120,7 +120,7 @@ struct ConfigMap { by_id.clear(); } void dump(Formatter *f) const; - std::map generate_entity_map( + std::map> generate_entity_map( const EntityName& name, const map& crush_location, const CrushWrapper *crush, diff --git a/src/mon/Session.h b/src/mon/Session.h index 8981599573ad..46846c5e1950 100644 --- a/src/mon/Session.h +++ b/src/mon/Session.h @@ -64,7 +64,7 @@ struct MonSession : public RefCountedObject { uint64_t proxy_tid = 0; string remote_host; ///< remote host name - map last_config; ///< most recently shared config + map> last_config; ///< most recently shared config bool any_config = false; MonSession(Connection *c)