From: Rishabh Dave Date: Wed, 30 Jan 2019 09:16:36 +0000 (+0530) Subject: mds: dont print auth trees if they are too many X-Git-Tag: v12.2.13~225^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a8697427c2574afa7f9dba8b491650cf4f8fadd4;p=ceph.git mds: dont print auth trees if they are too many Signed-off-by: Rishabh Dave (cherry picked from commit 13c4152c8b1756a871f817d4b503396b6c9cc81d) Conflicts: src/mds/MDBalancer.cc authsubs in method MDBalancer::handle_export_pins() is redeclared from set to vector in master branch. I've removed vector declaration, which was the only source conflict. --- diff --git a/src/mds/MDBalancer.cc b/src/mds/MDBalancer.cc index 013901c77a3b..aaad1767b7b5 100644 --- a/src/mds/MDBalancer.cc +++ b/src/mds/MDBalancer.cc @@ -149,11 +149,24 @@ void MDBalancer::handle_export_pins(void) set authsubs; mds->mdcache->get_auth_subtrees(authsubs); + bool print_auth_subtrees = true; + + if (authsubs.size() > AUTH_TREES_THRESHOLD && + !g_conf->subsys.should_gather(ceph_subsys_mds, 25)) { + dout(15) << "number of auth trees = " << authsubs.size() << "; not " + "printing auth trees" << dendl; + print_auth_subtrees = false; + } + for (auto &cd : authsubs) { mds_rank_t export_pin = cd->inode->get_export_pin(); - dout(10) << "auth tree " << *cd << " export_pin=" << export_pin << dendl; + + if (print_auth_subtrees) { + dout(25) << "auth tree " << *cd << " export_pin=" << export_pin << + dendl; + } + if (export_pin >= 0 && export_pin != mds->get_nodeid()) { - dout(10) << "exporting auth subtree " << *cd->inode << " to " << export_pin << dendl; mds->mdcache->migrator->export_dir(cd, export_pin); } } diff --git a/src/mds/MDBalancer.h b/src/mds/MDBalancer.h index 1ca3ea08bdc0..acf730316b6e 100644 --- a/src/mds/MDBalancer.h +++ b/src/mds/MDBalancer.h @@ -78,6 +78,7 @@ public: private: bool bal_fragment_dirs; int64_t bal_fragment_interval; + static const unsigned int AUTH_TREES_THRESHOLD = 5; typedef struct { std::map targets;