Suppose that we sequentially place n balls into n boxes by putting each bal
l into a randomly chosen box. It is well known that when we are done, the f
ullest box has with high probability (1 + o(1)) ln n/ ln ln n balls in it.
Suppose instead that for each ball we choose two boxes at random and place
the ball into the one which is less full at the time of placement. We show
that with high probability, the fullest box contains only ln ln n/ ln 2 + O
(1) balls-exponentially less than before. Furthermore, we show that a simil
ar gap exists in the infinite process, where at each step one ball, chosen
uniformly at random, is deleted, and one ball is added in the manner above.
We discuss consequences of this and related theorems for dynamic resource
allocation, hashing, and on-line load balancing.