ipvs: add weighted random twos choice algorithm
authorDarby Payne <darby.payne@gmail.com>
Wed, 6 Jan 2021 19:02:42 +0000 (11:02 -0800)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 26 Jan 2021 00:09:46 +0000 (01:09 +0100)
commit012da53d1afb619556f1a63c9da76b15888b190f
tree40b35a1f3a3d603c82a49071e65724b752bbfa05
parent83ace77f51175023c3757e2d08a92565f9b1c7f3
ipvs: add weighted random twos choice algorithm

Adds the random twos choice load-balancing algorithm. The algorithm will
pick two random servers based on weights. Then select the server with
the least amount of connections normalized by weight. The algorithm
avoids the "herd behavior" problem. The algorithm comes from a paper
by Michael Mitzenmacher available here
http://www.eecs.harvard.edu/~michaelm/NEWWORK/postscripts/twosurvey.pdf

Signed-off-by: Darby Payne <darby.payne@gmail.com>
Acked-by: Julian Anastasov <ja@ssi.bg>
Acked-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/ipvs/Kconfig
net/netfilter/ipvs/Makefile
net/netfilter/ipvs/ip_vs_twos.c [new file with mode: 0644]