From: Yan, Zheng Date: Mon, 18 Dec 2017 11:45:11 +0000 (+0800) Subject: mds: cleanup mds_load map access/update X-Git-Tag: v12.2.6~41^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ddf58d4c7c0cf76d6a5a8f9ac9ab2980f45b2b53;p=ceph.git mds: cleanup mds_load map access/update using map::insert to access map items looks strang Signed-off-by: "Yan, Zheng" (cherry picked from commit 40759407bf654eb66685b877a8f482a8ef4c8965) --- diff --git a/src/mds/MDBalancer.cc b/src/mds/MDBalancer.cc index bfcd442a502d..2dbeb2164d7d 100644 --- a/src/mds/MDBalancer.cc +++ b/src/mds/MDBalancer.cc @@ -327,8 +327,7 @@ void MDBalancer::send_heartbeat() mds->logger->set(l_mds_load_cent, 100 * load.mds_load()); mds->logger->set(l_mds_dispatch_queue_len, load.queue_len); - map::value_type val(mds->get_nodeid(), load); - mds_load.insert(val); + mds_load[mds->get_nodeid()] = load; // import_map -- how much do i import from whom map import_map; @@ -369,8 +368,6 @@ void MDBalancer::send_heartbeat() /* This function DOES put the passed message before returning */ void MDBalancer::handle_heartbeat(MHeartbeat *m) { - typedef map mds_load_map_t; - mds_rank_t who = mds_rank_t(m->get_source().num()); dout(25) << "=== got heartbeat " << m->get_beat() << " from " << m->get_source().num() << " " << m->get_load() << dendl; @@ -413,15 +410,8 @@ void MDBalancer::handle_heartbeat(MHeartbeat *m) } } - { - // set mds_load[who] - mds_load_map_t::value_type val(who, m->get_load()); - pair < mds_load_map_t::iterator, bool > rval (mds_load.insert(val)); - if (!rval.second) { - rval.first->second = val.second; - } - } - mds_import_map[ who ] = m->get_import_map(); + mds_load[who] = m->get_load(); + mds_import_map[who] = m->get_import_map(); mds_last_epoch_under_info[who] = m->get_last_epoch_under(); { @@ -626,9 +616,7 @@ void MDBalancer::prep_rebalance(int beat) double total_load = 0.0; multimap load_map; for (mds_rank_t i=mds_rank_t(0); i < mds_rank_t(cluster_size); i++) { - map::value_type val(i, mds_load_t(ceph_clock_now())); - std::pair < map::iterator, bool > r(mds_load.insert(val)); - mds_load_t &load(r.first->second); + mds_load_t& load = mds_load.at(i); double l = load.mds_load() * load_fac; mds_meta_load[i] = l; @@ -775,12 +763,8 @@ int MDBalancer::mantle_prep_rebalance() /* fill in the metrics for each mds by grabbing load struct */ vector < map > metrics (cluster_size); - for (mds_rank_t i=mds_rank_t(0); - i < mds_rank_t(cluster_size); - i++) { - map::value_type val(i, mds_load_t(ceph_clock_now())); - std::pair < map::iterator, bool > r(mds_load.insert(val)); - mds_load_t &load(r.first->second); + for (mds_rank_t i=mds_rank_t(0); i < mds_rank_t(cluster_size); i++) { + mds_load_t& load = mds_load.at(i); metrics[i] = {{"auth.meta_load", load.auth.meta_load()}, {"all.meta_load", load.all.meta_load()},