KUDU-3497 optimize leader rebalancer algorithm

Leader rebalancing might not work well for now, especially for
the tables with smaller number of hash partitions.
For instance, for a table, consisting of 9 tablets, RF = 3, in a3-tservers cluster.

Its leaders distribution is as follow:

Tablet server A : 4
Tablet server B : 4
Tablet server C : 1

According to the algorithm for now, there will not be any rebalance
operation scheduled.

Therefore, try to find a better algorithm to make it always find
the best leader distribution.

The formula is:
expected leader num = (tablets sum) % (tablets server num) = 0 ?
(tablets sum) / (tablets server num) :
ceil((tablets sum) / (tablets server num))
A tserver whose leader num is more than the expected value needs
to transfer the leaderships.

So the leader skew will never be more than 1.

Change-Id: I0f1fe796fd98da2d8764da793b7e254319e6348a
Reviewed-on: http://gerrit.cloudera.org:8080/20310
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin <alexey@apache.org>
7 files changed