From 5f0eee7faa2a2caf0b7c0f43b57121f7df59443b Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 17 Jun 2013 14:51:38 +0200 Subject: [PATCH] DOC: update ROADMAP file This one became a bit old, refine it with recent updates. --- ROADMAP | 75 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 28 deletions(-) diff --git a/ROADMAP b/ROADMAP index 2d1064b4b..b4b9dd0b3 100644 --- a/ROADMAP +++ b/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 -1.5 (ETA 2010/12/31) : +1.5 (ETA 2013/12/31) : - server-side HTTP keepalive => maybe with limitation to only reuse connections that don't depend 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 attached to whatever queue the session is waiting in. - - assign a nice priority based on ACLs. - - - dontlog if (front/back) - - - fix "PR--" flags when accessing stats - - - pattern extraction is needed for ACLs and stickiness. It would work like - this : - - acl [-i] ... - - 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 (such as "hdr_ip(headername)"). Note that - ACLs sometimes need iterative matching/extraction. - - add support for complex pattern extraction rules : pattern = @@ -75,7 +59,7 @@ Legend: '+' = done, '-' = todo, '*' = done except doc - 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 @@ -86,6 +70,14 @@ Legend: '+' = done, '-' = todo, '*' = done except doc - remove lots of remaining Alert() calls or ensure that they forward to 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: * 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 sessions. + * assign a nice priority based on ACLs. + + * set-log-level if (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) : - - 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 - 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 the config check. @@ -163,10 +166,6 @@ DONE: - evaluate the changes required for multi-process+shared mem or multi-thread +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 to maintenance mode => requires a per-server session list and the change above. @@ -177,8 +176,6 @@ Old, maybe obsolete points - 3 memory models : failsafe (prealloc), normal (current), optimal (alloc on demand) - - ability to assign a task priority based on L7 matching - - implement support for event-triggerred epoll() - 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 - 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