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
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.
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
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html