When mds wants to export loads to multiple targets. The amount of single
export can easily be less than (0.2 * target_loads). For example:
6 active mds, mds.0's load is 11, other ranks' loads are 5. target_load
is 6. Export amount for each target is 1.
Fixes: http://tracker.ceph.com/issues/26973
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
(cherry picked from commit
e68cbec6a647f0252d848620ce6e51b4f3eea1e3)
mds_rank_t target = it.first;
double amount = it.second;
- if (amount / target_load < .2)
- continue;
if (amount < MIN_OFFLOAD)
continue;
+ if (amount * 10 * state.targets.size() < target_load)
+ continue;
dout(5) << "want to send " << amount << " to mds." << target
//<< " .. " << (*it).second << " * " << load_fac