Hello,
On Tue, 27 Mar 2018, Inju Song wrote:
> Implements the Google's Maglev hashing algorithm as a IPVS scheduler.
> Basically it provides consistent hashing but offers some special
> features about disruption and load balancing.
>
> 1) minimal disruption: when the set of destinations changes,
> a connection will likely be sent to the same destination
> as it was before.
>
> 2) load balancing: each destination will receive an almost
> equal number of connections.
>
> Seel also: [3.4 Consistent Hasing] in
> https://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-eisenbud.pdf
>
> v1: Add maglev consistent hasing
>
> v2: Add and refactor some features about MH and attach distribution test
> results based on the MH's realtive weights.
>
> v3: Optimize some features, clean up strcutures of MH, rearrange
> patchset order with new patches and so on.
>
> v4: Attach MH state to svc->sched_data only on success and free the
> state when RCU callback is called.
Great, v4 of the patchset looks good to me. Thanks!
Signed-off-by: Julian Anastasov <ja@xxxxxx>
Simon, I know it is late for the current net-next,
so I'm not sure whether you can keep the patchset or it
should be resubmitted later.
> Inju Song (3):
> netfilter: ipvs: Keep latest weight of destination
> netfilter: ipvs: Add Maglev hashing scheduler
> netfilter: ipvs: Add configurations of Maglev hashing
>
> include/net/ip_vs.h | 1 +
> net/netfilter/ipvs/Kconfig | 37 +++
> net/netfilter/ipvs/Makefile | 1 +
> net/netfilter/ipvs/ip_vs_ctl.c | 4 +
> net/netfilter/ipvs/ip_vs_mh.c | 540
> +++++++++++++++++++++++++++++++++++++++++
> 5 files changed, 583 insertions(+)
> create mode 100644 net/netfilter/ipvs/ip_vs_mh.c
Regards
--
Julian Anastasov <ja@xxxxxx>
|