DOC: update ROADMAP file
This one became a bit old, refine it with recent updates.
This commit is contained in:
parent
67dad2715b
commit
5f0eee7faa
75
ROADMAP
75
ROADMAP
@ -1,8 +1,8 @@
|
|||||||
Medium-long term roadmap - 2011/03/01
|
Medium-long term roadmap - 2013/06/17
|
||||||
|
|
||||||
Legend: '+' = done, '-' = todo, '*' = done except doc
|
Legend: '+' = done, '-' = todo, '*' = done except doc
|
||||||
|
|
||||||
1.5 (ETA 2010/12/31) :
|
1.5 (ETA 2013/12/31) :
|
||||||
- server-side HTTP keepalive
|
- server-side HTTP keepalive
|
||||||
=> maybe with limitation to only reuse connections that don't depend
|
=> maybe with limitation to only reuse connections that don't depend
|
||||||
on layer7 in a first time (just check the target).
|
on layer7 in a first time (just check the target).
|
||||||
@ -35,22 +35,6 @@ Legend: '+' = done, '-' = todo, '*' = done except doc
|
|||||||
based on request matching. Each session will have one ebtree node to be
|
based on request matching. Each session will have one ebtree node to be
|
||||||
attached to whatever queue the session is waiting in.
|
attached to whatever queue the session is waiting in.
|
||||||
|
|
||||||
- assign a nice priority based on ACLs.
|
|
||||||
|
|
||||||
- dontlog if <acl> (front/back)
|
|
||||||
|
|
||||||
- fix "PR--" flags when accessing stats
|
|
||||||
|
|
||||||
- pattern extraction is needed for ACLs and stickiness. It would work like
|
|
||||||
this :
|
|
||||||
|
|
||||||
acl <name> <pattern> [-i] <values>...
|
|
||||||
|
|
||||||
All ACL fetch method currently available would be transformed into pattern
|
|
||||||
extraction methods. That way we could stick on hdr(x-forwarded-for) or use
|
|
||||||
source 0.0.0.0 usesrc <pattern> (such as "hdr_ip(headername)"). Note that
|
|
||||||
ACLs sometimes need iterative matching/extraction.
|
|
||||||
|
|
||||||
- add support for complex pattern extraction rules :
|
- add support for complex pattern extraction rules :
|
||||||
|
|
||||||
pattern = <pattern_term>
|
pattern = <pattern_term>
|
||||||
@ -75,7 +59,7 @@ Legend: '+' = done, '-' = todo, '*' = done except doc
|
|||||||
|
|
||||||
- add a flag in logs to indicate keep-alive requests ?
|
- add a flag in logs to indicate keep-alive requests ?
|
||||||
|
|
||||||
- make it possible to condition a timeout on an ACL
|
- make it possible to condition a timeout on an ACL (dynamic timeouts)
|
||||||
|
|
||||||
- forwardfor/originalto except with IPv6
|
- forwardfor/originalto except with IPv6
|
||||||
|
|
||||||
@ -86,6 +70,14 @@ Legend: '+' = done, '-' = todo, '*' = done except doc
|
|||||||
- remove lots of remaining Alert() calls or ensure that they forward to
|
- remove lots of remaining Alert() calls or ensure that they forward to
|
||||||
send_log() after the fork.
|
send_log() after the fork.
|
||||||
|
|
||||||
|
- tcp-request session
|
||||||
|
|
||||||
|
- http-request track-sc* to avoid having the ugly "if !HTTP" in tcp-request
|
||||||
|
|
||||||
|
- tcp-request {connection|session} expect-proxy {L4|L5} if ...
|
||||||
|
|
||||||
|
- compression : to be fixed
|
||||||
|
|
||||||
DONE:
|
DONE:
|
||||||
* rename L4 acls as L6 ACLs when some content is involved
|
* rename L4 acls as L6 ACLs when some content is involved
|
||||||
|
|
||||||
@ -137,16 +129,27 @@ DONE:
|
|||||||
to explain the possible huge difference between frontend and backend
|
to explain the possible huge difference between frontend and backend
|
||||||
sessions.
|
sessions.
|
||||||
|
|
||||||
|
* assign a nice priority based on ACLs.
|
||||||
|
|
||||||
|
* set-log-level if <acl> (front/back)
|
||||||
|
|
||||||
|
* fix "PR--" flags when accessing stats
|
||||||
|
|
||||||
|
* merged ACL/fetches
|
||||||
|
|
||||||
|
* use_server ... if ...
|
||||||
|
|
||||||
|
* ability to kill an arbitrary session from the command line. Put a "kill now"
|
||||||
|
flag in every session which preempts any other processing and wake the
|
||||||
|
session up.
|
||||||
|
|
||||||
1.6 (will probably change anyway) :
|
1.6 (will probably change anyway) :
|
||||||
- wait on resource (mem, socket, server's conn, server's rate, ...)
|
- wait on resource (time, mem, CPU, socket, buffers, server's conn, server's rate, ...)
|
||||||
|
|
||||||
- bandwidth limits
|
- bandwidth limits
|
||||||
|
|
||||||
- create internal services and make stats, CLI, etc... part of that.
|
- create internal services and make stats, CLI, etc... part of that.
|
||||||
|
|
||||||
- use_server ... if ...
|
|
||||||
|
|
||||||
- buddy servers to build defined lists of failovers. Detect loops during
|
- buddy servers to build defined lists of failovers. Detect loops during
|
||||||
the config check.
|
the config check.
|
||||||
|
|
||||||
@ -163,10 +166,6 @@ DONE:
|
|||||||
- evaluate the changes required for multi-process+shared mem or multi-thread
|
- evaluate the changes required for multi-process+shared mem or multi-thread
|
||||||
+thread-local+fast locking.
|
+thread-local+fast locking.
|
||||||
|
|
||||||
- ability to kill an arbitrary session from the command line. Put a "kill now"
|
|
||||||
flag in every session which preempts any other processing and wake the
|
|
||||||
session up.
|
|
||||||
|
|
||||||
- ability to decide whether to drain or kill sessions when putting a server
|
- ability to decide whether to drain or kill sessions when putting a server
|
||||||
to maintenance mode => requires a per-server session list and the change
|
to maintenance mode => requires a per-server session list and the change
|
||||||
above.
|
above.
|
||||||
@ -177,8 +176,6 @@ Old, maybe obsolete points
|
|||||||
- 3 memory models : failsafe (prealloc), normal (current), optimal (alloc on
|
- 3 memory models : failsafe (prealloc), normal (current), optimal (alloc on
|
||||||
demand)
|
demand)
|
||||||
|
|
||||||
- ability to assign a task priority based on L7 matching
|
|
||||||
|
|
||||||
- implement support for event-triggerred epoll()
|
- implement support for event-triggerred epoll()
|
||||||
|
|
||||||
- verify if it would be worth implementing an epoll_ctl_batch() for Linux
|
- verify if it would be worth implementing an epoll_ctl_batch() for Linux
|
||||||
@ -189,3 +186,25 @@ Old, maybe obsolete points
|
|||||||
- new keyword 'check' : check http xxx, check smtp xxx, check ssl-hello
|
- new keyword 'check' : check http xxx, check smtp xxx, check ssl-hello
|
||||||
|
|
||||||
- initcwnd parameter for bind sockets : needed in kernel first
|
- initcwnd parameter for bind sockets : needed in kernel first
|
||||||
|
|
||||||
|
Unsorted :
|
||||||
|
- outgoing log load-balancing (round-robin or hash among multiple servers)
|
||||||
|
- internal socket for "server XXX frontend:name"
|
||||||
|
- ACL feeding via the UNIX socket
|
||||||
|
- HTTP/2.0
|
||||||
|
- DNS requests on health checks
|
||||||
|
- XML inspection (content-switching for SOAP requests)
|
||||||
|
- lookup tables (eg: map IP to country)
|
||||||
|
- sync all stick-tables data, not just serverid.
|
||||||
|
- request, session and user variables
|
||||||
|
- random cookie generator
|
||||||
|
- external checker
|
||||||
|
- fastcgi to servers
|
||||||
|
- hot config reload
|
||||||
|
- RAM-based cache for small files
|
||||||
|
- 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...)
|
||||||
|
- "show stats detail" with a different output format and encoding of quotes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user