Hi, TLDR: We would like to benchmark a simple variant of the Two-Choice load balancing algorithm on HAProxy. Is this benchmark/setup <https://github.com/haproxytech/bench-algo-p2c> still the suggested approach?
We would like to evaluate the following simple variant of the Two-Choice algorithm for load balancing: For each request, 1. Allocate to the least loaded of two randomly chosen servers (i.e., like Two-Choice) with probability β. 2. Otherwise, allocate to a random server. Somewhat surprisingly we recently demonstrated in theory and simulations ( paper <https://arxiv.org/pdf/2302.04399.pdf>, slides <https://www.cl.cam.ac.uk/~dl516/slides/spaa23_slides.pdf>, visualisation <https://dimitrioslos.com/phdthesis/conf/spaa23.html>) that for suitably chosen β, this outperforms Two-Choice when there is outdated information (RTT is large, there are multiple allocators) or there is noise. The main reason for this is that it allocates to lesser loaded servers less aggressively than Two-Choice, so that it spreads the load more evenly (see this figure <https://dimitrioslos.com/phdthesis/conf/figs/spaa23_tc_vs_opb.svg>). We would like to see whether this result also implies improvements in real-world load balancers, including HAProxy. For the evaluation purposes, I have drafted a very (very) simple implementation (see here <https://github.com/Dim131/haproxy>) and was wondering whether you could give me some pointers for running benchmarks or evaluating against typical workloads. While I am working on this, I would be happy to implement/benchmark any other load balancing algorithms (that may be in your TODO list). Kind regards, Dimitris