DOC: update ROADMAP file

This one became a bit old, refine it with recent updates.
This commit is contained in:
Willy Tarreau 2013-06-17 14:51:38 +02:00
parent 67dad2715b
commit 5f0eee7faa

75
ROADMAP
View File

@ -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