blob: f2d00a60fb412299999a39b7b9f866c4e28004ec [file] [log] [blame]
Willy Tarreaud5961ad2017-11-24 18:00:32 +01001Medium-long term wish list - 2017/11/24
willy tarreau814cbc62006-05-13 13:00:29 +02002
Willy Tarreau21475e32010-05-23 08:46:08 +02003Legend: '+' = done, '-' = todo, '*' = done except doc
willy tarreau814cbc62006-05-13 13:00:29 +02004
Willy Tarreaud5961ad2017-11-24 18:00:32 +010051.9 or later :
Willy Tarreau21475e32010-05-23 08:46:08 +02006 - return-html code xxx [ file "xxx" | text "xxx" ] if <acl>
willy tarreau1f431b52006-05-21 14:46:15 +02007
Willy Tarreau65ce3912010-11-24 16:21:56 +01008 - return-raw [ file "xxx" | text "xxx" ] if <acl>
9
Willy Tarreau0a6b1fd2010-11-14 14:23:22 +010010 - have multi-criteria analysers which subscribe to req flags, rsp flags, and
11 stream interface changes. This would result in a single analyser to wait
12 for the end of data transfer in HTTP.
13
Willy Tarreau5f0eee72013-06-17 14:51:38 +020014 - make it possible to condition a timeout on an ACL (dynamic timeouts)
Willy Tarreau0a6b1fd2010-11-14 14:23:22 +010015
16 - forwardfor/originalto except with IPv6
17
Willy Tarreau3c212372013-12-17 00:35:27 +010018 - tcp-request session expect-proxy {L4|L5} if ...
Willy Tarreau5f0eee72013-06-17 14:51:38 +020019
Willy Tarreau4167c882015-10-13 18:38:15 +020020 - wait on resource (time, mem, CPU, socket, server's conn, server's rate, ...)
willy tarreau814cbc62006-05-13 13:00:29 +020021
Willy Tarreau21475e32010-05-23 08:46:08 +020022 - bandwidth limits
willy tarreau814cbc62006-05-13 13:00:29 +020023
Willy Tarreau21475e32010-05-23 08:46:08 +020024 - buddy servers to build defined lists of failovers. Detect loops during
25 the config check.
26
27 server XXX buddy YYY
28 server YYY # may replace XXX when XXX fails
29
30 - spare servers : servers which are used in LB only when a minimum farm
31 weight threshold is not satisfied anymore. Useful for inter-site LB with
32 local pref by default.
33
Willy Tarreau65ce3912010-11-24 16:21:56 +010034 - add support for event-triggered epoll, and maybe change all events handling
35 to pass through an event cache to handle temporarily disabled events.
36
37 - evaluate the changes required for multi-process+shared mem or multi-thread
38 +thread-local+fast locking.
Willy Tarreau1c47f852006-07-09 08:22:27 +020039
Willy Tarreau3139fec2014-06-19 14:49:40 +020040Old, maybe obsolete points :
41 - clarify licence by adding a 'MODULE_LICENCE("GPL")' or something equivalent.
Willy Tarreau21475e32010-05-23 08:46:08 +020042
Willy Tarreau3139fec2014-06-19 14:49:40 +020043 - 3 memory models : failsafe (prealloc), normal (current), optimal (alloc on
44 demand)
Willy Tarreau21475e32010-05-23 08:46:08 +020045
Willy Tarreau3139fec2014-06-19 14:49:40 +020046 - verify if it would be worth implementing an epoll_ctl_batch() for Linux
Willy Tarreau21475e32010-05-23 08:46:08 +020047
Willy Tarreau3139fec2014-06-19 14:49:40 +020048 - option minservers XXX : activates some spare servers when active servers
49 are insufficient
Willy Tarreau1c47f852006-07-09 08:22:27 +020050
Willy Tarreau3139fec2014-06-19 14:49:40 +020051 - initcwnd parameter for bind sockets : needed in kernel first
Willy Tarreau5f0eee72013-06-17 14:51:38 +020052
Willy Tarreau3139fec2014-06-19 14:49:40 +020053 - have a callback function which would be called after a server is selected,
54 for header post-processing. That would be mainly used to remove then add
55 the server's name or cookie in a header so that the server knows it.
Willy Tarreau941aac02014-05-10 13:34:32 +020056
Willy Tarreau5f0eee72013-06-17 14:51:38 +020057Unsorted :
58 - outgoing log load-balancing (round-robin or hash among multiple servers)
Willy Tarreau3139fec2014-06-19 14:49:40 +020059
Willy Tarreau5f0eee72013-06-17 14:51:38 +020060 - internal socket for "server XXX frontend:name"
Willy Tarreau3139fec2014-06-19 14:49:40 +020061
Willy Tarreau5f0eee72013-06-17 14:51:38 +020062 - XML inspection (content-switching for SOAP requests)
Willy Tarreau3139fec2014-06-19 14:49:40 +020063
Willy Tarreau5f0eee72013-06-17 14:51:38 +020064 - random cookie generator
Willy Tarreau3139fec2014-06-19 14:49:40 +020065
Willy Tarreau5f0eee72013-06-17 14:51:38 +020066 - fastcgi to servers
Willy Tarreau3139fec2014-06-19 14:49:40 +020067
Willy Tarreau5f0eee72013-06-17 14:51:38 +020068 - hot config reload
Willy Tarreau3139fec2014-06-19 14:49:40 +020069
Willy Tarreau5f0eee72013-06-17 14:51:38 +020070 - RHI - BGP
Willy Tarreau3139fec2014-06-19 14:49:40 +020071
Willy Tarreau5f0eee72013-06-17 14:51:38 +020072 - telnet/SSH cli
Willy Tarreau3139fec2014-06-19 14:49:40 +020073
Willy Tarreau5f0eee72013-06-17 14:51:38 +020074 - dynamic memory allocation
Willy Tarreau3139fec2014-06-19 14:49:40 +020075
Willy Tarreau5f0eee72013-06-17 14:51:38 +020076 - dynamic weights based on check response headers and traffic response time
Willy Tarreau3139fec2014-06-19 14:49:40 +020077
Willy Tarreau5f0eee72013-06-17 14:51:38 +020078 - various kernel-level acceleration (multi-accept, ssplice, epoll2...)