userver-0.4.4 o Released April 5, 2004 o TBB - changed the order in which some of the initialization is done o TBB - changed how some of the signals are used (no longer use SIGUSR1 and no longer install a default handler for SIGALRM) o TBB - added a testaio target to the Makefile o TBB - added more debugging output for aio code % TBB - added more stats for aio o TBB - fixed the event mask used to call aio_wait o TBB - recompiled on CYWIN and did a few small changes to compile o TBB - fixed a major bug in the caching code. The problem was that under certain circumstances files that were in the cache _and_being_served_ could be ejected. I've implemented reference counting and only evict files with a reference count of zero. If we are ever in a situation where we can't find a file to evict with a reference count of zero we print an appropriate message and exit. The reason for crashing is that the cache is sized too small and performance could really be hurt. That is, you should resize the cache and rerun the experiment. o TBB - mods to write trace files for multiple processes to different files now when -p # is used they get written to userver-#.trace o TBB - added code to permit setting cpu mask on Linux 2.6.x systems (i.e., --use-cpu-mask option combined with sched_setaffinity) o TBB - added Louay Gammo's code to do aperture control with the SEND kernel and added information about --auto-accept-aperture to man page o TBB - mods to use new version of epoll_ctlv we've created o TBB - modified how connection/info data structure is indexed o TBB - modified how lru data structure is indexed o TBB - small mod to how idle connections are timed out (still needs some more work). userver-0.4.3: o Released January 27, 2004 o TBB - added stuff to try a new epoll_ctlv system call we're exploring o TBB - updates for 2.6.1 on IA64 o TBB - changed aio code to use memory regions o TBB - added some code to aio_fake.c to fake some memory region use and checks o TBB - small changes to the way poll is working because there may be a bug/problem with 2.6.0 returning events that we haven't expressed an interest in o TBB - added changes so that output from different processes (-p #) will be written to different files (userver-#.log) o TBB - added support for aio_sock_writev and added code for testing to aio_fake.c o TBB - fixed up printing of stats and trace files when using aio_fake.c userver-0.4.2: o Released January 21, 2004 o TBB - slight reorg to some of the makefiles and added comments o TBB - reworked the testsend target for testing the userver with the SEND kernel o TBB - created interest_set_change routine in order to move towards a more efficient implementation of epoll changed all select/poll/epoll code to use this instead of fuctions interest_set_add_readable/writable interest_set_del_readable/writable interest_set_done o TBB - added --use-epoll2 option this is used to explore fewer calls to epoll_ctl at the possible expense of more events that we are not interested in from epoll_wait (see the man page -- userver.1 userver.txt for details) o TBB - added functions to call _syscalls for epoll so that they show up in gprof (called sys_epoll_ctl, sys_epoll_wait, and sys_epoll_create) o TBB - added the number of open connections to the --stats-interval output o TBB - added FSM_LISTENING state and put listening sockets into this state o TBB - added more running stats and improved code for formatting that output o TBB - added and fixed up some of the stats for the aio code o TBB - added the ability to do running stats for socket aio userver-0.4.1: o Released December 30, 2003 o TBB - reordered the CHANGELOG so it goes from most recent to oldest versions o TBB - fixed some SEND kernel related code to work with multiple listeners o TBB - modifying a few things for epoll to work with the 2.6.0 kernel (this still needs a bit of work as it may be a bit inefficient) o TBB - adding some simple running performance stats (to be expanded later) this is enabled by using --stats-interval=N where N is the interval between stats in seconds userver-0.4.0: o Released November 18, 2003 o TBB - incremented the sub version number because this version reflects some pretty major changes o TBB - changed the way that versioning is done in the Makefile o TBB - added info to the man page about specifying IP address and port as in --ip-addr 127.0.0.1:6806 o TBB - minor mods so things will compile again on CYGWIN o TBB - fairly major reworkings so that we can support an asynchronous I/O model. o TBB - added a check to the close_idle_conns function to try to ensure that it doesn't close down any listening sockets. The SEND and AIO interfaces may not provide information about which listening socket (i.e., the one we call accept on) a new connection comes from (i.e., the parent) so we may not be able to call lru_acess on that socket - which could make it stale and a candidate to be closed. Another possible solution would be to call lru_access at the time an accept call is made (whether successful or not). o TBB - implemented a simple fake aio layer that helps to do a bit of debugging of the aio_layer code and to provide a bit of an example of how the layer is used and what the underlying implementations need to provide. o TBB - trying to restructure to make it easier to support other non http servers and to support dynamic requests o TBB - setting better defaults for the maximum connections and the maximum fds o TBB - info.req.read_buf has been added and --read_buffer-size option this was needed for AIO and could be useful for other types of services o TBB - changed info.rep.file_buf to info.rep.reply_buf and added --reply-buffer-size option o TBB - reorganizing to try to permit filling of reply_buf and then having the rest of the code just drain it. o TBB - changed he way the parsing of requests is done to be more compliant with the protocol o TBB - made some changes to give slightly better default options (e.g., enable --use-sendfile and --use-tcp-cork if they are available) Caching is also now turned on (but the cache table size, cache size etc. will still need to be adjusted) o TBB - changed the way versioning gets done (versions are now controlled in Makefile.base) o TBB - changed some of the default behaviour for --use-socket-aio (i.e., caching is on and should use mmapped caching) o TBB - added code to register and deregister memory for socket aio. userver-0.3.3: o Released October 9, 2003 o TBB - adding code to allow server to listen on multiple interfaces/sockets NOTE!: this isn't quite working yet with the SEND kernel code o TBB - added some simple regression testing to Makefile (see test*: targets in the Makefile) NOTE: requires httperf o TBB - added include directory to the distribution to show examples of how to compile with larger FD_SETSIZE o TBB - changed the way the --version flag works (thanks to Ian Wienand ) for pointing out the problem. o TBB - added some code to support "special" sockets, i.e., those that should not be treated like regular client connections. These might be back end processors like another server, an external CGI or PHP process, etc. userver-0.3.2: o Released October 3, 2003 o TBB - cleaned up select_loop, poll_loop, epoll_loop, send_loop to use more common code. o TBB - added some of the test scripts and httperf log file generator code to the distribution o TBB - cleaned up, commented and added usage for the scripts in the scripts directory o TBB - updated the README in the scripts directory o TBB - fixed incorrect closing of connections for special escape uri's o DP - Added some code to optimize transfer of zero-byte file. o DP - Added some code to trace accept, read, write, close, and reply rates at the server side (uses special escape uri's) o TBB - Used inet_pton instead of inet_aton on Solaris o TBB - Added docs (test files) directory to the distribution userver-0.3.1: o Released August 25, 2003 o TBB - Modified some comparisons of sd (socket descriptor) with FD_SETSIZE o TBB - Added new option, --version to print version of the server o TBB - Print ifconfig info on Linux (for experimental config info e.g., txqueuelen) o TBB - Print /proc/cpuinfo on Linux (for experimental config info) o TBB - Added stats for ListenOverflows and ListenDrops from /proc/net/netstat o TBB - Fixed glitch in getting args for --full-read o TBB - Use full path now for ifconfig o TBB - Added code to track replies per cache entry userver-0.3.0: o Released August 1, 2003