In dynamic load balancing, we wish to allocate a set of clients (balls) to a set of servers (bins) with the goal of minimizing the maximum load of any server and also minimizing the number of moves after adding or removing a server or a client 1 . We want a hashing-style solution where we given the ID of a client can efficiently find its server in a distributed dynamic environment. In such a dynamic environment, both servers and clients may be added and/or removed from the system in any order. The most popular solutions for such dynamic settings are Consistent Hashing [KLL + 97,SML + 03] or Rendezvous Hashing [TR98]. However, the load balancing of these schemes is no better than a random assignment of clients to servers, so with n of each, we expect many servers to be overloaded with Θ(log n/ log log n) clients. In this paper, we aim to design hashing schemes that achieve any desirable level of load balancing, while minimizing the number of movements under any addition or removal of servers or clients. In particular, we consider a problem with m balls and n bins, and given a user-specified balancing parameter c = 1 + ε > 1, we aim to find a hashing scheme with no load above cm/n , referred to as the capacity of the bins. Our algorithmic starting point is the consistent hashing scheme where current balls and bins are hashed to a unit cycle, and a ball is placed in the first bin succeeding it in clock-wise order. In order to cope with given capacity constraints, we apply the idea of linear probing by forwarding the ball on the circle to the first non-full bin. We show that in our hashing scheme when a ball or bin is inserted or deleted, the expected number of balls that have to be moved is within a multiplicative factor of O( 1 ε 2 ) of the optimum for ε ≤ 1 (Theorem 3) and within a factor 1 + O( log c c ) of the optimum for ε ≥ 1 (Theorem 2). Technically, the latter bound is the most challenging to prove. It implies that we for superconstant c, we only pay a negligible cost in extra moves. We also get the same bounds for the simpler problem where we instead of a user specified balancing parameter have a fixed bin capacity C for all bins, and define c = 1 + ε = Cn/m.
Persistent load balancing was extended REF to have guarantees on the maximum load.
Consistent Hashing with Bounded Loads
ArXiv
ArXiv
Mathematics Computer Science