haproxy/src
Andrew Rodland 4f88c63609 MEDIUM: server: Implement bounded-load hash algorithm
The consistent hash lookup is done as normal, then if balancing is
enabled, we progress through the hash ring until we find a server that
doesn't have "too much" load. In the case of equal weights for all
servers, the allowed number of requests for a server is either the
floor or the ceil of (num_requests * hash-balance-factor / num_servers);
with unequal weights things are somewhat more complicated, but the
spirit is the same -- a server should not be able to go too far above
(its relative weight times) the average load. Using the hash ring to
make the second/third/etc. choice maintains as much locality as
possible given the load limit.

Signed-off-by: Andrew Rodland <andrewr@vimeo.com>
2016-10-25 20:21:32 +02:00
..
51d.c BUILD/MAJOR:updated 51d Trie implementation to incorperate latest update to 51Degrees.c 2016-08-24 20:29:31 +02:00
acl.c MINOR: acl: Add predefined METH_DELETE, METH_PUT 2016-04-12 11:44:09 +02:00
applet.c
arg.c MINOR: sample: Moves ARGS underlying type from 32 to 64 bits. 2016-03-15 22:11:52 +01:00
auth.c
backend.c MINOR: server: compute a "cumulative weight" to allow chash balancing to hit its target 2016-10-25 20:21:32 +02:00
base64.c
buffer.c BUG/MEDIUM: buffers: do not round up buffer size during allocation 2016-01-25 02:31:18 +01:00
cfgparse.c MINOR: backend: add hash-balance-factor option for hash-type consistent 2016-10-25 20:21:32 +02:00
channel.c BUG/MEDIUM: channel: fix inconsistent handling of 4GB-1 transfers 2016-05-04 15:26:37 +02:00
checks.c MAJOR: check: find out which port to use for health check at run time 2016-09-11 08:12:13 +02:00
chunk.c CLEANUP: fixed some usages of realloc leading to memory leak 2016-06-29 10:45:18 +02:00
compression.c BUILD: compression: remove a warning when no compression lib is used 2016-08-10 21:17:06 +02:00
connection.c CLEANUP: connection: using internal struct to hold source and dest port. 2016-07-05 14:43:05 +02:00
da.c MINOR: da: Using ARG12 macro for the sample fetch and the convertor. 2016-03-17 05:44:33 +01:00
dns.c BUG/MEDIUM: dns: don't randomly crash on out-of-memory 2016-10-01 09:23:04 +02:00
dumpstats.c MINOR: stats: emit dses 2016-10-21 18:19:48 +02:00
ev_epoll.c
ev_kqueue.c CLEANUP: remove unneeded casts 2016-04-03 14:17:42 +02:00
ev_poll.c BUILD: poll: remove unused hap_fd_isset() which causes a warning with clang 2016-08-10 21:23:48 +02:00
ev_select.c
fd.c CLEANUP: remove unneeded casts 2016-04-03 14:17:42 +02:00
filters.c BUG/MEDIUM: filters: Fix data filtering when data are modified 2016-06-21 18:53:08 +02:00
flt_http_comp.c BUG/MEDIUM: http/compression: Fix how chunked data are copied during the HTTP body parsing 2016-09-23 16:01:14 +02:00
flt_trace.c MEDIUM: filters: Add pre and post analyzer callbacks 2016-05-18 15:11:54 +02:00
freq_ctr.c
frontend.c MINOR: Add fe_req_rate sample fetch 2016-10-03 16:08:09 +02:00
haproxy-systemd-wrapper.c BUG/MEDIUM: systemd: let the wrapper know that haproxy has completed or failed 2016-10-25 17:43:45 +02:00
haproxy.c BUG/MEDIUM: systemd: let the wrapper know that haproxy has completed or failed 2016-10-25 17:43:45 +02:00
hash.c
hdr_idx.c
hlua.c BUG/MEDIUM: lua: somme HTTP manipulation functions are called without valid requests 2016-08-03 00:06:13 +02:00
hlua_fcn.c CLEANUP: remove unneeded casts 2016-04-03 14:17:42 +02:00
i386-linux-vsys.c
lb_chash.c MEDIUM: server: Implement bounded-load hash algorithm 2016-10-25 20:21:32 +02:00
lb_fas.c
lb_fwlc.c
lb_fwrr.c
lb_map.c CLEANUP: remove unneeded casts 2016-04-03 14:17:42 +02:00
listener.c MINOR: listener: add the "accept-netscaler-cip" option to the "bind" keyword 2016-06-20 23:02:47 +02:00
log.c MEDIUM: log: Decompose %Tq in %Th %Ti %TR 2016-08-23 15:18:08 +02:00
lru.c MINOR: lru: new function to delete <nb> least recently used keys 2016-01-11 07:31:35 +01:00
mailers.c
map.c CLEANUP: map: Avoid memory leak in out-of-memory condition. 2016-03-08 12:55:06 +01:00
memory.c MEDIUM: pools: add a new flag to avoid rounding pool size up 2016-01-25 02:31:18 +01:00
namespace.c CLEANUP: uniformize last argument of malloc/calloc 2016-04-03 14:17:42 +02:00
pattern.c BUG/MINOR: pattern: Avoid memory leak on out-of-memory condition 2016-03-13 07:47:25 +01:00
payload.c BUG/MINOR: payload: fix SSLv2 version parser 2016-08-30 14:47:57 +02:00
peers.c MEDIUM: peers: Fix a peer stick-tables synchronization issue. 2016-10-17 19:44:35 +02:00
pipe.c
proto_http.c CLEANUP: proto_http: Removing useless variable assignation 2016-08-30 14:24:48 +02:00
proto_tcp.c MEDIUM: tcp: add registration and processing of TCP L5 rules 2016-10-21 18:19:24 +02:00
proto_udp.c CLEANUP: fix inconsistency between fd->iocb, proto->accept and accept() 2016-04-14 11:18:22 +02:00
proto_uxst.c MINOR: unix: don't mention free ports on EAGAIN 2016-01-26 21:11:51 +01:00
protocol.c BUILD: protocol: fix some build errors on OpenBSD 2016-08-10 19:31:58 +02:00
proxy.c MEDIUM: tcp: add registration and processing of TCP L5 rules 2016-10-21 18:19:24 +02:00
queue.c MINOR: proxy: add 'served' field to proxy, equal to total of all servers' 2016-10-25 20:21:32 +02:00
raw_sock.c
rbtree.c
regex.c CLEANUP: uniformize last argument of malloc/calloc 2016-04-03 14:17:42 +02:00
sample.c MINOR: sample: use smp_make_rw() in upper/lower converters 2016-08-09 14:31:25 +02:00
server.c MINOR: dns: query type change when last record is a CNAME 2016-09-12 20:01:40 +02:00
session.c MEDIUM: tcp: add registration and processing of TCP L5 rules 2016-10-21 18:19:24 +02:00
shctx.c CLEANUP: remove unneeded casts 2016-04-03 14:17:42 +02:00
signal.c MEDIUM: unblock signals on startup. 2016-04-20 10:53:12 +02:00
ssl_sock.c BUG/MINOR: ssl: prevent multiple entries for the same certificate 2016-10-24 19:13:12 +02:00
standard.c MINOR: standard.c: ipcpy() function to copy an IP address from a struct sockaddr_storage into an other one 2016-08-14 12:16:43 +02:00
stick_table.c MEDIUM: tcp: add registration and processing of TCP L5 rules 2016-10-21 18:19:24 +02:00
stream.c MINOR: proxy: add 'served' field to proxy, equal to total of all servers' 2016-10-25 20:21:32 +02:00
stream_interface.c
task.c
time.c
trace.c BUG/MEDIUM: trace.c: rdtsc() is defined in two files 2016-04-09 22:27:01 +02:00
uri_auth.c CLEANUP: uniformize last argument of malloc/calloc 2016-04-03 14:17:42 +02:00
vars.c MEDIUM: tcp: add registration and processing of TCP L5 rules 2016-10-21 18:19:24 +02:00
xxhash.c CLEANUP: remove unneeded casts 2016-04-03 14:17:42 +02:00