haproxy/include/proto
Willy Tarreau f09c6603d3 MEDIUM: backend: add the 'first' balancing algorithm
The principle behind this load balancing algorithm was first imagined
and modeled by Steen Larsen then iteratively refined through several
work sessions until it would totally address its original goal.

The purpose of this algorithm is to always use the smallest number of
servers so that extra servers can be powered off during non-intensive
hours. Additional tools may be used to do that work, possibly by
locally monitoring the servers' activity.

The first server with available connection slots receives the connection.
The servers are choosen from the lowest numeric identifier to the highest
(see server parameter "id"), which defaults to the server's position in
the farm. Once a server reaches its maxconn value, the next server is used.
It does not make sense to use this algorithm without setting maxconn. Note
that it can however make sense to use minconn so that servers are not used
at full load before starting new servers, and so that introduction of new
servers requires a progressively increasing load (the number of servers
would more or less follow the square root of the load until maxconn is
reached). This algorithm ignores the server weight, and is more beneficial
to long sessions such as RDP or IMAP than HTTP, though it can be useful
there too.
2012-02-21 22:27:27 +01:00
..
acl.h MINOR: acl: include pattern.h to make pattern migration more transparent 2011-12-30 17:33:25 +01:00
auth.h [REORG] http: move the http-request rules to proto_http 2011-03-13 22:00:24 +01:00
backend.h BUG/MEDIUM: correctly disable servers tracking another disabled servers. 2012-01-20 16:18:30 +01:00
buffers.h CLEANUP: kill buffer_replace() and use an inline instead 2011-11-28 21:01:28 +01:00
checks.h [MEDIUM] add a maintenance mode to servers 2010-01-31 23:33:18 +01:00
cttproxy.h [MEDIUM] check for cttproxy support when required 2007-03-24 17:24:39 +01:00
dumpstats.h [MINOR] More flexible clearing of stick table 2011-06-17 11:39:29 +02:00
fd.h [MEDIUM] Fix memory freeing at exit 2008-05-30 07:07:19 +02:00
freq_ctr.h [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
frontend.h [MINOR] frontend: add a make_proxy_line function 2011-03-20 10:15:22 +01:00
hdr_idx.h OPTIM/MINOR: move the hdr_idx pools out of the proxy struct 2011-10-24 18:15:04 +02:00
lb_chash.h [MEDIUM] backend: implement consistent hashing variation 2009-10-09 07:17:58 +02:00
lb_fas.h MEDIUM: backend: add the 'first' balancing algorithm 2012-02-21 22:27:27 +01:00
lb_fwlc.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_fwrr.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_map.h [MINOR] lb_map: reorder code in order to ease integration of new hash functions 2009-10-01 21:11:15 +02:00
log.h MEDIUM: log: make http_sess_log use log_format 2012-02-09 17:03:28 +01:00
pattern.h MINOR: pattern: export the global temporary pattern 2011-12-30 17:33:25 +01:00
peers.h [CLEANUP] peers.h: fix declarations 2011-06-18 20:27:19 +02:00
pipe.h [MEDIUM] introduce pipe pools 2009-01-25 13:49:53 +01:00
port_range.h [MEDIUM] add support for binding to source port ranges during connect 2009-06-10 12:23:32 +02:00
proto_http.h MEDIUM: http: add support for sending the server's name in the outgoing request 2012-01-05 15:17:31 +01:00
proto_tcp.h MINOR: remove the client/server side distinction in SI addresses 2011-09-23 10:54:59 +02:00
proto_uxst.h [MEDIUM] separate protocol-level accept() from the frontend's 2010-06-14 10:53:11 +02:00
protocols.h [MINOR] listeners: add support for queueing resource limited listeners 2011-07-24 22:03:52 +02:00
proxy.h [MEDIUM] stats: add the ability to enable/disable/shutdown a frontend at runtime 2011-09-07 22:50:52 +02:00
queue.h BUG/MEDIUM: zero-weight servers must not dequeue requests from the backend 2012-01-20 16:18:53 +01:00
server.h [OPTIM] counters: move some max numbers to the counters struct 2009-10-04 23:26:19 +02:00
session.h [MEDIUM] session: make session_shutdown() an independant function 2011-09-07 23:01:56 +02:00
signal.h [MEDIUM] signals: support redistribution of signal zero when stopping 2010-08-27 18:26:11 +02:00
stick_table.h [MEDIUM] Create updates tree on stick table to manage sync. 2010-11-11 09:29:08 +01:00
stream_interface.h [MAJOR] session: remove the ->srv pointer from struct session 2011-03-10 23:32:17 +01:00
stream_sock.h [MEDIUM] backend: initialize the server stream_interface upon connect() 2010-06-14 10:53:15 +02:00
task.h [MAJOR] proxy: finally get rid of maintain_proxies() 2011-07-25 16:33:49 +02:00
template.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00