-
Notifications
You must be signed in to change notification settings - Fork 0
/
ROADMAP
78 lines (47 loc) · 2.44 KB
/
ROADMAP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Medium-long term wish list - 2017/11/24
Legend: '+' = done, '-' = todo, '*' = done except doc
1.9 or later :
- return-html code xxx [ file "xxx" | text "xxx" ] if <acl>
- return-raw [ file "xxx" | text "xxx" ] if <acl>
- have multi-criteria analysers which subscribe to req flags, rsp flags, and
stream interface changes. This would result in a single analyser to wait
for the end of data transfer in HTTP.
- make it possible to condition a timeout on an ACL (dynamic timeouts)
- forwardfor/originalto except with IPv6
- tcp-request session expect-proxy {L4|L5} if ...
- wait on resource (time, mem, CPU, socket, server's conn, server's rate, ...)
- bandwidth limits
- buddy servers to build defined lists of failovers. Detect loops during
the config check.
server XXX buddy YYY
server YYY # may replace XXX when XXX fails
- spare servers : servers which are used in LB only when a minimum farm
weight threshold is not satisfied anymore. Useful for inter-site LB with
local pref by default.
- add support for event-triggered epoll, and maybe change all events handling
to pass through an event cache to handle temporarily disabled events.
- evaluate the changes required for multi-process+shared mem or multi-thread
+thread-local+fast locking.
Old, maybe obsolete points :
- clarify licence by adding a 'MODULE_LICENCE("GPL")' or something equivalent.
- 3 memory models : failsafe (prealloc), normal (current), optimal (alloc on
demand)
- verify if it would be worth implementing an epoll_ctl_batch() for Linux
- option minservers XXX : activates some spare servers when active servers
are insufficient
- initcwnd parameter for bind sockets : needed in kernel first
- have a callback function which would be called after a server is selected,
for header post-processing. That would be mainly used to remove then add
the server's name or cookie in a header so that the server knows it.
Unsorted :
- outgoing log load-balancing (round-robin or hash among multiple servers)
- internal socket for "server XXX frontend:name"
- XML inspection (content-switching for SOAP requests)
- random cookie generator
- fastcgi to servers
- hot config reload
- RHI - BGP
- telnet/SSH cli
- dynamic memory allocation
- dynamic weights based on check response headers and traffic response time
- various kernel-level acceleration (multi-accept, ssplice, epoll2...)