While working on a practice problem I "organically" came up with a method that does well at solving my load balancing problem. I do not know what the official name is for it, but I would like to read more on it, I think maybe it is a greedy algorithm similar to the least connections algorithm.
Given m resources and n consumers where m << n.
The object is to balance the n consumers on the m resources such that the resources are equally utilized.
At each balancing step I do the following:
sort resources by utilization ascending.
sort consumer by consumption descending.
While there are unprocessed consumers, place the greediest consumer on the least utilized resource. Repeat with each next greediest and each next least utilized. When the most utilized resource is given a consumer, wrap around and still continue placing using the ordering. Do this until there are no more consumers to place on the resource queue.
Is there a name for this?