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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265
|
February 27th, 1999 (02.27.1999) -- mod_backhand -- 0.5
=================================================
* Bothered setting up this change log file.
* Now supports Linux platform.
* Backhand -- directive (directory) added.
* backhand-handler -- handler added.
* Implements HTTP redirection to other servers in the clutser
* Implements shared memory space (like scoreboard) for cluster resources.
* Implements client/server communication via AF_UNIX sockets.
This will be the means of handing open file descriptors when
implemented.
March 3rd, 1999 (03.03.1999) -- mod_backhand -- 0.6
=================================================
* BrodcastStats broadcastaddr:port -- directive added
* Handling loop was debugged for cleaner release of file handles.
* UnixSocketDir [directory] was added so the AF_UNIX sockets could be placed
as an administrator sees fit.
* AcceptStats inetaddr[/mask] -- directive added. Can be cascaded, these
only allow statistics to be accepted from trusted sources.
March 16th, 1999 (03.16.1999) -- mod_backhand -- 0.7
=================================================
* BroadcastStats inetaddr broadcastaddr:port -- directive changed
This will allow httpd to be run as a normal user ID. Before it needed
priveldges to determine interface routing selections for outgoing
broadcasts to determine an advertised IP address. Now it is specified
by the config file.
* Made changes necessary to support multiple "BroadcastStats" directives for
multiple networks, private networks and upcoming IP Multicast support.
March 24th, 1999 (03.24.1999) -- mod_backhand -- 0.8
=================================================
* BroadcastStats inetaddr (broadcastaddr:port | multicastaddr:port,ttl) --
directive augmented to support IP multicast as medium for resource
information distribution.
* Fixed nasty bug in the proxying loop that munged persistent (pipelined)
HTTP requests. Bug could also cause seg faults (exploits) for certain
length requests.
March 29th, 1999 (03.29.1999) -- mod_backhand -- 0.9
=================================================
* Rewrote the connection proxying code. It now handles persistent connections
better and survives broken redirection sockets.
* We actually parse the incoming header and the response header now, to allow
better error handling and future intentional header munging.
* Changed the Backhand directive to specify a function from builtin.c and an
optional argument. The functions so far are byLoad and byCPU.
* Added a BackhandFromSO directive to allow user functions to be written
easily. One is provided as byHostname.c and returns the first host
that matches the regex. Directive is
BackhandFromSO libexec/byHostame.so byHostname hostname.
* Implemented byAge and byRandom builtin candidacy functions.
* Changed the inputs to builtin and user-defined decision making functions.
It is now (request_rec *, int *, int *, char *) -- see builtin.h
header for details. This provides a mechinsims for specifying a set
of candidates instead of a single server.
* Implmeneted Cascadable Backhand(FromSO) directives. Now users can
implement more likeable resrictions: byAge, byLoad, byRandom.
This would prune old servers, find the least loaded and choose
randomly among them. (each directive is on its own line).
June 27th, 1999 (06.27.1999) -- mod_backhand -- 1.0
=================================================
* LICENSE revised to be open-source. (Modelled after the BSD license)
* Fixed a bug in the handling or requests that have Content-length headers.
* Implemented byLogWindow candidacy functions.
* Change the byLoad candidacy function to be by load/#CPUs instead of just by
load.
* Added "balanced by mod_backhand/VERSION string to the Apache server string.
* Separated the operating systems specifics out of mod_backhand.c and
back_util.c.
* Changed the BroadcastStats directive to MulticastStats.
* Now supports Solaris platform.
September 1st, 1999 (09.01.1999) -- mod_backhand -- 1.0.1
=================================================
* Fixed the writing of log notices to go to the logfile instead of stdout
when starting Apache.
* Works with Apache 1.3.9 better.
* Moved the exploration, decisions and uri rewriting to the mime/types
stage from the access stage. Other modules were "un"making our
decisions.
* Moved AddModule mod_backhand.c down below mod_cgi. This allows
mod_backhand to redirect things in Location statements with cgi-script
handlers (or perl handlers)
September 10th, 1999 (09.10.1999) -- mod_backhand -- 1.0.2
=================================================
* Made small modifications to allow compilation under Sun Workshop C/C++
compiler (asmo.porma at saunalahti dot fi)
November 3rd, 1999 (11.03.1999) -- mod_backhand -- 1.0.5
=================================================
* Added a new candidacy function byCost that is still in the experimental
phase. It implements a decision making algortihm based on the
cost-benefit framework developed and discussed in the following paper
by Amir, Awerbuch, and Borgstrom:
http://www.cnds.jhu.edu/pub/papers/dss99.ps
* Now supports BSDI platform.
* Now supports (Net|Free|Open)BSD platform.
January 12th, 2000 (01.12.2000) -- mod_backhand -- 1.0.7
=================================================
* Changed parameter passing architecture for statistics daemon spawning to
correct problems on systems where sizeof(int)!=sizeof(void *).
* Updated arriba function to eliminate floating point errors on alpha.
* Fixed serious request proxying bug that caused "chunked" transfer encoded
responses to fail. Chunked encoding is a HTTP/1.1 defined transfer
encoding supported by Apache. This should fix any noticed
incompatibilities with Microsoft's IE.
* Now supports Linux (alpha fix) platform.
February 20th, 2000 (03.13.2000) -- mod_backhand -- 1.0.8
=================================================
* Include file fixes for FreeBSD (Now better supports FreeBSD platform).
* Updated cost calculations to accurately account for the power of machines.
* Added an optional argument to the byLoad candidacy function. It now takes
a floating point number (0.0 if not provided) that subtracts from the
local load when sorting. This provides a convenient mechanism for
local bias.
* Added a new candidacy function addPredition that will add a predictive load
to the first candidate (if addPrediction is last, this is the server
you choose). So, when assigning a request, you can add a predicted
incurred load to that server. See documentation for suggested use.
June 9th, 2000 (06.09.2000) -- mod_backhand -- 1.0.9
=================================================
* Fixed uninitialized variable causing occasional core dumps.
* fix for gcc -funsigned-char (Dmitry Khrustalev <dima at bog dot msu dot su>)
* Fixed type in addPrediction
* Added configure, configure.in, config.h.in, and Makefile.in allowing simple
apxs compiling. Thanks to Alex Vorobiev <sasha at mathforum dot com>.
* MAXSERVERS was supposed to equal HARD_SERVER_LIMIT. It now does.
* Added support for building mod_backhand as a static module in Apache.
This will fix as-of-yet untackled problems with having a shared
mod_backhand and shared candidacy functions under Solaris.
* Augmented the MulticastStats directive to allow local port specifcaion.
It now looks like MulticastStats [ip[:port]] destip:destport[,TTL],
where ip:port is the services this server announces to others and
the destip:destport,ttl is the same as before -- where to announce.
* Added ap_internal_redirect if there are low-level errors in the redirection
handler.
* Added BackhandSelfRedirect (On|Off) directive that will ask backhand to
actually proxy to itself if it finds that the local isntance is best.
This can be very useful if you advertise yourself on a different
interface or port.
* Added BackhandLogLevel (+|-)level[,(+|-)level[,(+|-)level[...]]]. This
now allows better control over what is printed to the error log.
* HTTP redirection is now a supported method for delivering content from
another server. This redirection method can be chosen via new
candidacy functions.
* HTTPRedirectToIP was added for IP based HTTP redirection.
* HTTPRedirectToName [format] was added for name based HTTP redirection.
* Changes to the function prototype of the candidacy functions to allow
for the choice of redirection method. Methods now supported are:
Proxying (old), HTTP Redirection by IP address (new), HTTP
Redirection by hostname (new).
September 4th, 2000 (09.04.2000) -- mod_backhand -- 1.1.0
=================================================
* Fixed uninitialized variable bug in back_util.c. The effects were that
trash values could be found in the server port of the advertised
service. This caused different mod_backhand instances to fail when
proxying. I could not reproduce this on my Linux machine. Many
thanks to Sean Chittenden for the time on his BSD boxes to debug the
problem.
* Fixed logic error when calculating byLoad with a bias. It did not
calculate biases as the FAQ implied. Thanks to Blake Mills.
* Changed the byAge candidacy function to never eliminate oneself. Under
high loads, the daemon process was often scheduled so infrequently
that the local server expired, rendering BackhandSelfRedirect On
ineffective.
* Changed two accidental snprintf's to ap_snprintf's for portability.
May 30th, 2001 (05.30.2001) -- mod_backhand -- 1.2.0
==================================================
* Fixed issue appending GET style query parameters on HTTP redirected URLs --
patch submitted by Jrgen Brunk <juergen.brunk at gmx dot de>.
* Fixed RFC compliance issue with HTTP response codes that are 304, 204,
and less that 200. They are explicitly defined to have no content
length.
* Some header clean up when fetching proxying documents.
* No longer recalculate the arriba if there is a backhand-arriba file
available. This should speed things up tremendously and was
blatantly unnecessary.
* Before the parent Apache process forks children, it now waits to assure
that the mod_backhand moderator process is bound and accepting on
the unix domain socket required for MBCS.
* Added a notes file to detail issues with different platforms. Started it
off with a Solaris patch requirement. Insight and debugging courtesy
of Kevin Walters.
* Better logging and error handling in a few places -- still no docs :-(
* Added code to setgid() the moderator processes. Before, we only setuid().
-- original patch from Stephan Seyboth <sps at caldera dot de>
* Added addSelf as a candidacy function. (adds the local machine if it is
not already on the list)
* Added removeSelf as a candidacy function. (removes the local machine if
it is on the list)
* Added off as a candidacy function. (just removes all servers as candidates)
This is required to turn of mod_backhand in directories that are
below enabled directories in the heirarchy.
* Added bySessions [identifier] to redirect established sessions to the same
machine every time. Read README.bySession for more details. This
was contributed by Martin Domig <mdi at ms dot at>
* Moved all builtin candidacy function code into builtins.[ch] so that the
addition of new builtin candidacy functions only requires modifications
of those two files.
* Added a "logger" callback to clean up the r->connection->remote_addr that
we intentionally munged if the connection was proxied. Without this
the remote address was not correct for subsequent HTTP requests over
the same connection (KeepAlives.) This fixes the bug that causes
$REMOTE_ADDR to be wrong sometimes.
* Now supports FreeBSD-4.x platform.
* Removed BackhandProxied: from the headers_in on the proxying machine. This
allows SetEnvIf BackhandProxied to work write even when
BackhandSelfRedirect is enabled.
* No longer remove Content-Length headers from Connection: close responses.
This makes users' progress bars work correctly.
* Clients speaking HTTP/1.1 were not getting Keep-Alives turned on under
certain circumstances. This has been fixed -- I think.
* Headers in multiplicity were reduced to a single headers. This breaks some
apps that use multiple Set-Cookie headers. This has been fixed.
* Fixed bug in moderator restart when mod_backhand is statically compiled into
Apache.
* Fixed double printing of mod_backhand settings to error_log on startup.
* Change the autoconf configuration to automatically add -lm and -lkstat is
necessary.
* Added the byBusyChildren candidacy function.
* Fixed a bug that caused expired sessions in the pool to cause POSTs to hang.
* Fixed compilation error on OpenBSD.
* Now support Darwin/Mac OS X platform -- Marquis Logan <nibs at mac dot com>
* Fixed AF_UNIX problem on *BSD. Pathnam (.sun_path) was not null terminated
correctly.
* Added tight timeouts around the MBCS code to protect the child. Hanging
indefinitely will not happen now.
* precompile now runs configure before installing itself in the apache source
tree. Without this, config.h didn't exist.
* precompile now augments Apache's configure to force mod_so on if backhand is
enabled.
* Added BackhandModeratorPIDFile configuration directive. If specified, it
will write the new moderator PID in this file.
Dec 9th, 2001 (12.09.2001) -- mod_backhand -- 1.2.1
==================================================
* Fixed brown-paper-bag problem with byBusyChildren. It was internally
calling byLoad. :-(
* Added "BackhandConnectionPools (on|off)" to allow the Apache child to do a
keepalive-disabled connect instead of the moderator maintaining
everything.
* Added compile fix under Sun C Compuler 6.1 from luc at ispi dot net
* Added correct 100 support -- Stefan Seufert <se at fast-connect dot de>.
* Removed ap_is_initial_req to allow correct operation with modules like
mod_gzip -- Stefan Seufert <se at fast-connect dot de>.
* Changed serverstats to allow multiple entries with the same IP but different
ports -- Mike Cramer <mcramer at pbs dot org>.
* Changed the serverstring to drop "balanced_by".
* Integrated parts of Michael Cramer's <mcramer at pbs dot org> cosmetic
changes to the /backhand/ page.
* Added Rob's NT Backhand Broadcaster.
* Now supports Windows NT through ntbhb (see related links) platform
* Fix for uninitialized variable causing duplicate resource announcements --
<glen at delfi dot ee>
* Fix ownership of backhand dir during install with precompile -- Yusuf
Goolamabbas <yusufg at outblaze dot com>
|