The use of memory in randomized load balancing

We consider the following canonical load balancing problem: Drop n balls into n bins so as to minimize the maximum loading. An execution of the well-known "load the least loaded bin" algorithm results in an optimal loading of one ball per bin. Azar et al. (1994) consider an algorithm which assigns each ball to the least loaded of d randomly chosen bins and show that the maximum load is ln ln n/ln d + O(1) for d /spl ges/ 2, as compared to ln n/ln ln n (1 + o(1)) for d = 1. A dynamic version of the load balancing problem involves jobs arriving as a rate n/spl lambda/ Poisson process at n rate 1 exponential server queues is considered in Mitzenmacher (1996) and in Vvedenskaya et. al. (1996). They find similar exponential improvements in performance for d /spl ges/ 2 as compared with d = 1. In this paper, we consider a variation of randomized load balancing schemes which involve the use of memory. This is motivated by the observation that the loads do not change by much between iterations; hence remembering "good samples" from one iteration for use in future iterations ought to pay off significantly. We find this is indeed true, and quantify the improvement.