#8 Better exec time & CLUSTERNODE_BEST load balancing

David Zafman

I made a suggestion that exec time local balancing should be
performing a kind of round robin algorithm. The idea is that
looking at the current loads of all nodes the kernel can calculate a
percentage of execs to put into each node. It would make sense
that the least noded nodes get the bigger percentage and the most
loaded get the least percentage. There may be thresholds which
exclude very loaded nodes. At this point I haven't come up with
the exact math put here are some examples:

Unloaded cluster - round-robin to keep load balanced
Node Load percentage
1 200 25%
2 200 25%
3 200 25%
4 200 25%

One overloaded node (skipped) two other nodes that are the same
- try to bring others evenly up
Node Load percentage
1 2000 0%
2 200 50%
3 200 50%

One overloaded node (skipped) one remaining node double the
others load - weight more heavily to least loaded node
Node Load percentage
1 2000 0%
2 400 33%
3 200 66%