]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[DEV] open new 1.5 development branch
authorWilly Tarreau <w@1wt.eu>
Sun, 23 May 2010 06:46:08 +0000 (08:46 +0200)
committerWilly Tarreau <w@1wt.eu>
Sun, 23 May 2010 06:55:53 +0000 (08:55 +0200)
This new branch is based on 1.4.6, which 1.5-dev0 is 100% equivalent to.
The roadmap has been updated.

CHANGELOG
ROADMAP
VERDATE
VERSION
doc/configuration.txt
examples/haproxy.spec

index 6672f9879f39d3e07b377d41dca2d4f38c91c400..6f523932025fc0d984140e40358298d0910a28ca 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,9 @@
 ChangeLog :
 ===========
 
+2010/05/23 : 1.5-dev0
+    - exact copy of 1.4.6
+
 2010/05/16 : 1.4.6
     - [BUILD] ebtree: update to v6.0.1 to remove references to dprintf()
     - [CLEANUP] acl: make use of eb_is_empty() instead of open coding the tree's emptiness test
diff --git a/ROADMAP b/ROADMAP
index f5c638fff50b45d98761295bd4e07690ddd2b610..2231716121b9a6781f100923acfd0f72257285d8 100644 (file)
--- a/ROADMAP
+++ b/ROADMAP
-'+' = done, '-' = todo, '*' = done except doc
-
-1.2.12 :
- + weighted RR/SH
-
-1.2.13 :
- + maxconn
- + queueing
-
-1.2.14 :
- + HTML status page
-
-        stats enable
-        stats uri /?stats  
-        stats realm w.ods.org\ statistics
-        stats auth user1:pass1
-        stats auth user2:pass2
-        stats auth user3:pass3
-        stats scope <px_id> | '.'
-
- + allow server-less proxies (for stats)
-
- - separate timeout controls
-
- + option 'abortonclose' : if the session is queued or being connecting
-   to the server, and the client sends a shutdown(), then decide to abort
-   the session early because in most situations, this will be caused by
-   a client hitting the 'Stop' button, so there's no reason to overload
-   the servers with unservable requests. However, this is not HTTP compliant
-   and might cause little trouble to some very specific clients used to
-   close immediately after sending the request (no support for KA, which ones?)
-
- + minconn : makes the server's maxconn dynamic, which will be computed as a
-   ratio of the proxy's sessions :
-     srv->effective_maxconn =
-          max(srv->maxconn * px->nbsess / px->maxconn, srv->minconn)
-
-1.2.15 :
- + monitor-uri : specify an URI for which we will always return 'HTTP/1.0 200'
-   and never forward nor log it.
-
- + option ssl-hello-chk : send SSLv3 client hello messages to check the servers
-
-1.3 :
- - remove unused STATTIME
-
- - reference all the include files that must be created, possibly under subdirs :
-
-   - acl.h      => more general ACL work
-   - appcook.h  => appsession-related cookies
-   - backend.h  => back-end part of the PR_O_* + backend definitions
-   - buffers.h  => buffer management relying on memory.h
-   - capture.h  => header and cookie capture
-   - cfgparse.h => configuration parser
-   - checks.h   => health checks
-   - clireq.h   => the client side "request" part of the current sessions.
-   - compat.h   => compatibility with other OSes (TCP_NODELAY, ...)
-   - config.h   => config parameters, renamed CONFIG_HAP_*, includes defaults.h
-   - controls.h => SN_CACHEABLE, ...
-   - cookies.h  => definitions related to cookie management + SN_SCK_*
-   - defaults.h => many default values, might disappear soon after cleanup
-   - frontend.h => front-end part of the PR_O_* + client definitions + listeners
-   - global.h   => shared global variables
-   - http.h     => HTTP state definitions and transitions
-   - httperr.{hc} => HTTP return codes
-   - libtask.h  => task scheduler
-   - libtime.h  => time-related definitions
-   - loadbal.h  => load balancing algorithms
-   - log.h      => log definitions
-   - memory.h   => pools
-   - polling.h  => definitions of select(), poll(), INTBITS, ...
-   - queue.h    => queue management
-   - regex.h    => filtering
-   - servers.h  => servers definitions (SRV_*, states, ...)
-   - fd.h       => FD_ST* (add FD_DGRAM), RES_*, socket states, etc...
-   - srvreq.h   => the server side "request" part of the current sessions.
-   - standard.h => general purpose macros and defines (eg: MIN/MAX, ...)
-   - startup.h  => MODE_*
-   - tuning.h   => platform-specific tuning parameters
+Medium-long term roadmap - 2010/04/10
 
+Legend: '+' = done, '-' = todo, '*' = done except doc
 
- - clarify licence by adding a 'MODULE_LICENCE("GPL")' or something equivalent.
+1.5 (ETA 2010/12/31) :
+  - server-side HTTP keepalive
 
- - handle half-closed connections better (cli/srv would not distinguish
-   DATA/SHUTR/SHUTW, it would be a session flag which would tell shutr/shutw).
-   Check how it got changed in httpterm.
+  - return-html code xxx [ file "xxx" | text "xxx" ] if <acl>
 
- - 3 memory models : failsafe (prealloc), normal (current), optimal (alloc on
-   demand)
+  - return-raw  [ file "xxx" | text "xxx" ] if <acl>
 
- wait queues replaced for priority-based trees
 - add support for client-side and server-side unix sockets
 
- - ability to assign a prio based on L7 matching
+  - try to remove srv==NULL internally and assign a dummy server to each backend
+    for dispatch, http_proxy and transparent modes.
 
- - prio-based O(1) scheduler
+  - rename L4 acls as L6 ACLs when some content is involved
 
- - maxconn reserve for VIP/admins
+  - add new L4 ACL checks immediately after accept, before even allocating the
+    buffers ("connection {accept|reject|delay|freeze} {if|unless}").
 
- - verify if it would be worth implementing an epoll_ctl_batch() for Linux
+  - implement support for "connection freeze" after accept. A list of frozen
+    connections should be maintained so that it is possible to recycle them
+    when new file descriptors are required.
 
- - balance LC/WLC (patch available)
+  - support for time-ordered priority queues with ability to add an offset
+    based on request matching. Each session will have one ebtree node to be
+    attached to whatever queue the session is waiting in.
 
- - option minservers XXX : activates some backup servers when active servers
-   are insufficient
+  - assign a nice priority based on ACLs.
+
+  - 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 :
+
+       pattern = <pattern_term>
+               | '{' pattern_expr '}'
+
+       pattern_expr = <pattern_term> [ <transform> ... ]
+
+  - support loading data sets from files
+      + present/not present (eg: netmasks)
+      - pattern conversion per prefixes. Eg: convert src IP to country.
+
+  - make new patterns available based on stickiness matching :
+      - number of entries in table for the matched pattern
+      - same after having increased the match counter
+
+  - add support for concurrency match in tables
+      - just like stickiness, but counted per session (or request), increased
+        on first match and decreased at end of request or connection. This
+        requires that the session has a list of matched terms that must be
+        released at the end.
+
+1.6 (will probably change anyway) :
+  - wait on resource (mem, socket, server's conn, server's rate, ...)
+
+  - bandwidth limits
 
- - monitor minservers XXX : monitor-net and monitor-uri could report a failure
-   when the number of active servers is below this threshold.
+  - create internal services and make stats, CLI, etc... part of that.
 
- - option smtp-chk : use SMTP health checks (avoid logs if possible)
+  - use_server ... if ...
+
+  - 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.
+
+
+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)
+
+ - 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
+
+ - option minservers XXX : activates some spare servers when active servers
+   are insufficient
 
  - new keyword 'check' : check http xxx, check smtp xxx, check ssl-hello
 
diff --git a/VERDATE b/VERDATE
index ad186d80908afe947c22736d855d98c04489c3c2..bf310d7d05c96df71ab100234a2a67b96d748cbc 100644 (file)
--- a/VERDATE
+++ b/VERDATE
@@ -1 +1 @@
-2010/05/16
+2010/05/20
diff --git a/VERSION b/VERSION
index c514bd85c2ecef1342dde79c99195d23edfc6a77..a34f29e2b86daa0ef5e4093013dfa9775fb84cb0 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.4.6
+1.5-dev0
index 1d2718cf9d9669d2f5d5957b452efe1a0c090524..490e7305b429d4f38b05b858f1fe0eabeb0e9eb2 100644 (file)
@@ -2,9 +2,9 @@
                                  HAProxy
                           Configuration Manual
                          ----------------------
-                             version 1.4.6
+                             version 1.5
                              willy tarreau
-                              2010/05/16
+                              2010/05/23
 
 
 This document covers the configuration language as implemented in the version
index 2737f67ebb6f0bd8bb1c7e82f66e18c41e290358..dfb623c7474f4a998ec0916fae2720337b95fbdd 100644 (file)
@@ -1,6 +1,6 @@
 Summary: HA-Proxy is a TCP/HTTP reverse proxy for high availability environments
 Name: haproxy
-Version: 1.4.6
+Version: 1.5-dev0
 Release: 1
 License: GPL
 Group: System Environment/Daemons
@@ -76,6 +76,9 @@ fi
 %attr(0755,root,root) %config %{_sysconfdir}/rc.d/init.d/%{name}
 
 %changelog
+* Sun May 23 2010 Willy Tarreau <w@1wt.eu>
+- updated to 1.5-dev0
+
 * Sun May 16 2010 Willy Tarreau <w@1wt.eu>
 - updated to 1.4.6