\(\newcommand{\footnotename}{footnote}\)
\(\def \LWRfootnote {1}\)
\(\newcommand {\footnote }[2][\LWRfootnote ]{{}^{\mathrm {#1}}}\)
\(\newcommand {\footnotemark }[1][\LWRfootnote ]{{}^{\mathrm {#1}}}\)
\(\let \LWRorighspace \hspace \)
\(\renewcommand {\hspace }{\ifstar \LWRorighspace \LWRorighspace }\)
\(\newcommand {\mathnormal }[1]{{#1}}\)
\(\newcommand \ensuremath [1]{#1}\)
\(\newcommand {\LWRframebox }[2][]{\fbox {#2}} \newcommand {\framebox }[1][]{\LWRframebox } \)
\(\newcommand {\setlength }[2]{}\)
\(\newcommand {\addtolength }[2]{}\)
\(\newcommand {\setcounter }[2]{}\)
\(\newcommand {\addtocounter }[2]{}\)
\(\newcommand {\arabic }[1]{}\)
\(\newcommand {\number }[1]{}\)
\(\newcommand {\noalign }[1]{\text {#1}\notag \\}\)
\(\newcommand {\cline }[1]{}\)
\(\newcommand {\directlua }[1]{\text {(directlua)}}\)
\(\newcommand {\luatexdirectlua }[1]{\text {(directlua)}}\)
\(\newcommand {\protect }{}\)
\(\def \LWRabsorbnumber #1 {}\)
\(\def \LWRabsorbquotenumber "#1 {}\)
\(\newcommand {\LWRabsorboption }[1][]{}\)
\(\newcommand {\LWRabsorbtwooptions }[1][]{\LWRabsorboption }\)
\(\def \mathchar {\ifnextchar "\LWRabsorbquotenumber \LWRabsorbnumber }\)
\(\def \mathcode #1={\mathchar }\)
\(\let \delcode \mathcode \)
\(\let \delimiter \mathchar \)
\(\def \oe {\unicode {x0153}}\)
\(\def \OE {\unicode {x0152}}\)
\(\def \ae {\unicode {x00E6}}\)
\(\def \AE {\unicode {x00C6}}\)
\(\def \aa {\unicode {x00E5}}\)
\(\def \AA {\unicode {x00C5}}\)
\(\def \o {\unicode {x00F8}}\)
\(\def \O {\unicode {x00D8}}\)
\(\def \l {\unicode {x0142}}\)
\(\def \L {\unicode {x0141}}\)
\(\def \ss {\unicode {x00DF}}\)
\(\def \SS {\unicode {x1E9E}}\)
\(\def \dag {\unicode {x2020}}\)
\(\def \ddag {\unicode {x2021}}\)
\(\def \P {\unicode {x00B6}}\)
\(\def \copyright {\unicode {x00A9}}\)
\(\def \pounds {\unicode {x00A3}}\)
\(\let \LWRref \ref \)
\(\renewcommand {\ref }{\ifstar \LWRref \LWRref }\)
\( \newcommand {\multicolumn }[3]{#3}\)
\(\require {textcomp}\)
\(\newcommand {\intertext }[1]{\text {#1}\notag \\}\)
\(\let \Hat \hat \)
\(\let \Check \check \)
\(\let \Tilde \tilde \)
\(\let \Acute \acute \)
\(\let \Grave \grave \)
\(\let \Dot \dot \)
\(\let \Ddot \ddot \)
\(\let \Breve \breve \)
\(\let \Bar \bar \)
\(\let \Vec \vec \)
\(\newcommand {\tcbset }[1]{}\)
\(\newcommand {\tcbsetforeverylayer }[1]{}\)
\(\newcommand {\tcbox }[2][]{\boxed {\text {#2}}}\)
\(\newcommand {\tcboxfit }[2][]{\boxed {#2}}\)
\(\newcommand {\tcblower }{}\)
\(\newcommand {\tcbline }{}\)
\(\newcommand {\tcbtitle }{}\)
\(\newcommand {\tcbsubtitle [2][]{\mathrm {#2}}}\)
\(\newcommand {\tcboxmath }[2][]{\boxed {#2}}\)
\(\newcommand {\tcbhighmath }[2][]{\boxed {#2}}\)
\(\newcommand {\Batched }{b\text {-}{\rm B{\small ATCHED}}}\)
\(\newcommand {\OneChoice }{{\rm O{\small NE}}\text {-}{\rm C{\small HOICE}}}\)
\(\newcommand {\TwoChoice }{{\rm T{\small WO}}\text {-}{\rm C{\small HOICE}}}\)
\(\newcommand {\DSample }{d\text {-}{\rm S{\small AMPLE}}}\)
\(\newcommand {\TwoSample }{{\rm T{\small WO}}\text {-}{\rm S{\small AMPLE}}}\)
\(\newcommand {\Graphical }{{\rm G{\small RAPHICAL}}}\)
\(\newcommand {\DChoice }{d\text {-}{\rm C{\small HOICE}}}\)
\(\newcommand {\GBounded }{g\text {-}{\rm B{\small OUNDED}}}\)
\(\newcommand {\GMyopic }{g\text {-}{\rm M{\small YOPIC}}}\)
\(\newcommand {\RelativeThreshold }{{\rm R{\small ELATIVE}\text {-}T{\small RHESHOLD}}}\)
\(\newcommand {\MeanThinning }{{\rm M{\small EAN}\text {-}T{\small HINNING}}}\)
\(\newcommand {\TwoThinning }{{\rm T{\small WO}\text {-}T{\small HINNING}}}\)
\(\newcommand {\DThinning }{d\text {-}{\rm T{\small HINNING}}}\)
\(\newcommand {\Twinning }{{\rm T{\small WINNING}}}\)
\(\newcommand {\Threshold }{{\rm T{\small HRESHOLD}}}\)
\(\newcommand {\Thinning }{{\rm T{\small HINNING}}}\)
\(\newcommand {\KThreshold }{k\text {-}{\rm T{\small HRESHOLD}}}\)
\(\newcommand {\OnePlusBeta }{(1+\beta )}\)
\(\newcommand {\Packing }{{\rm P{\small ACKING}}}\)
\(\newcommand {\Quantile }{{\rm Q{\small UANTILE}}}\)
\(\newcommand {\Memory }{{\rm M{\small EMORY}}}\)
\(\newcommand {\N }{\mathbb {N}}\)
\(\newcommand {\R }{\mathbb {R}}\)
\(\newcommand {\Oh }{\mathcal {O}}\)
\(\newcommand {\AdvTauDelay }{\tau \text {-}{\rm A{\small DV}}\text {-}{\rm D{\small ELAY}}}\)
\(\newcommand {\RandomTauDelay }{\tau \text {-}{\rm R{\small AND}}\text {-}{\rm D{\small ELAY}}}\)
\(\newcommand {\TauDelay }{\tau \text {-}{\rm D{\small ELAY}}}\)
\(\newcommand {\SigmaNoisyLoad }{\sigma \text {-}{\rm N{\small OISY}}\text {-}{\rm L{\small OAD}}}\)
\(\newcommand {\Heterogeneous }{{\rm H{\small ETEROGENEOUS}}}\)
\(\newcommand {\Gap }{\mathrm {Gap}}\)
\(\newcommand {\eps }{\epsilon }\)
The \(\Threshold (f)\) process is an instance of the \(\TwoThinning \) process where the decision function is based on a threshold \(f \in \N \). It was one of the processes considered by Eager, Lazowska and Zahorjan (1986). The optimal threshold for the case \(m = n\) was identified in [1] and which produces \(\Gap (n) = (1+o(1)) \cdot \sqrt {\frac {\log
n}{\log \log n}}\). In [4], processes with a threshold relative to the average load (i.e., \(f^t = t/n + f(n)\)) were analysed, the so-called \(\RelativeThreshold \) proceses, proving an \(\Oh (\log n + f)\) gap. An adaptive process matching the \(\Omega (\log
n/\log \log n)\) lower bound was developed in [2], who also showed that there is an adaptive process achieving \(\Gap (m) = \Oh ( (\log n)^{1/2 + o(1)})\) at any fixed \(m\).
The \(\Threshold (f)\) process:
Iteration: At each step \(t = 1, 2, \ldots \),
-
• Sample bins \(i_1, i_2 \in [n]\) uniformly at random.
-
• Then, update:
\[ \begin {cases} x_{i_1}^{t+1} = x_{i_1}^t + 1 & \text {if }x_{i_1}^t \leq f \\ x_{i_2}^{t+1} = x_{i_2}^t + 1 & \text {otherwise}. \end {cases} \]
.
Furthermore, in [3] an extension of \(\Threshold \) processes where considered where the process samples two bins uniformly at random and then sends \(k\) binary threshold queries. It then allocates the ball to the bin that was witnessed to be lesser loaded.
In [4], an adaptive process was devised achieving \(\Gap (m) = \Oh (k \cdot (\log n)^{1/k})\) for any \(k \in [1, \log \log n]\)
\(\KThreshold (f_1^t, f_2^t, \ldots , f_k^t)\) Process (\(\subseteq \) \(\TwoSample (Q^t)\)):
Parameters: Threshold functions \(f_1^t, \ldots , f_{k}^t\), where \(f_i^t : \mathcal {F}^t \to \R \) such that for any filtration \(\mathfrak {F}^t \in \mathcal {F}^t\),
\[ \infty = f_0^t(\mathfrak {F}^t) > f_1^t(\mathfrak {F}^t) > f_2^t(\mathfrak {F}^t) > \ldots > f_k^t(\mathfrak {F}^t). \]
Iteration: At step \(t \geq 0\), we define the tightest witnessed upper bound for a bin as
\[ \ell (\mathfrak {F}^t, i) := \max \{ u \in [k]\cup \{ 0 \} : f_u^t(\mathfrak {F}^t) > x_{i}^t \}, \]
and define the decision function \(Q^t\) that decides between the two bin samples \(j_1\) and \(j_2\) as follows,
\[ Q^t(\mathfrak {F}^t, j_1, j_2, i) = \begin {cases} \frac {1}{2} & \text {if }\ell (\mathfrak {F}^t, j_1) = \ell (\mathfrak {F}^t, j_2), \\ \mathbf {1}_{\ell (\mathfrak {F}^t, j_1) > \ell (\mathfrak {F}^t, j_2)} & \text {else
if }i = 1,\\ \mathbf {1}_{\ell (\mathfrak {F}^t, j_1) < \ell (\mathfrak {F}^t, j_2)} & \text {otherwise}. \end {cases} \]
References
-
[1] Ohad N. Feldheim and Ori Gurel-Gurevich. The power of thinning in balanced allocation. Electron. Commun. Probab., 26:Paper No. 34, 8, 2021.
-
[2] Ohad N. Feldheim, Ori Gurel-Gurevich, and Jiange Li. Long-term balanced allocation via thinning, 2021.
-
[3] Kazuo Iwama and Akinori Kawachi. Approximated two choices in randomized load balancing. In Proceedings of 15th International Symposium on Algorithms and Computation (ISAAC’04), volume 3341, pages 545–557. Springer-Verlag, 2004.
-
[4] Dimitrios Los and Thomas Sauerwald. Balanced allocations with incomplete information: The power of two queries. In 13th Innovations in Theoretical Computer Science Conference (ITCS’22), volume 215, pages 103:1–103:23. Schloss Dagstuhl –
Leibniz-Zentrum für Informatik, 2022.