Self-stabilizing Balls & Bins in Batches

A fundamental problem in distributed computing is the distribution of requests to a set of uniform servers without a centralized controller. Classically, such problems are modeled as static balls into bins processes, where $m$ balls (tasks) are to be distributed to $n$ bins (servers). In a seminal work, Azar et al. proposed the sequential strategy \greedy{d} for $n=m$. When thrown, a ball queries the load of $d$ random bins and is allocated to a least loaded of these. Azar et al. showed that $d=2$ yields an exponential improvement compared to $d=1$. Berenbrink et al. extended this to $m\gg n$, showing that the maximal load difference is independent of $m$ for $d=2$ (in contrast to $d=1$). We propose a new variant of an \emph{infinite} balls into bins process. Each round an expected number of $\lambda n$ new balls arrive and are distributed (in parallel) to the bins. Each non-empty bin deletes one of its balls. This setting models a set of servers processing incoming requests, where clients can query a server's current load but receive no information about parallel requests. We study the \greedy{d} distribution scheme in this setting and show a strong self-stabilizing property: For \emph{any} arrival rate $\lambda=\lambda(n)<1$, the system load is time-invariant. Moreover, for \emph{any} (even super-exponential) round $t$, the maximum system load is (w.h.p.) $O(\frac{1}{1-\lambda}\cdot\log\frac{n}{1-\lambda})$ for $d=1$ and $O(\log\frac{n}{1-\lambda})$ for $d=2$. In particular, \greedy{2} has an exponentially smaller system load for high arrival rates.