12007-04-08 Paul Lindner <[email protected]> 2 3 * Add cleanup patch from "Tim Yardley" <[email protected]> to 4 clean up source spacing issues, fix -Wall warnings, add some 5 null checks, adds asserts at the top of each function for any 6 use of conn *c without checking to see if c is NULL first. 7 82007-04-04 Paul Lindner <[email protected]> 9 10 * Add clarification of flush_all in the protocol docs 11 from Elizabeth Mattijsen <[email protected]> 12 132007-03-31 Paul Lindner <[email protected]> 14 15 * Add patch from Eli Bingham <[email protected]> to 16 re-enable the -n switch to memcached. 17 182007-03-20 Paul Lindner <[email protected]> 19 * Add patch to collect eviction statistics from 20 Jean-Francois BUSTARRET <[email protected]>. 21 22 * Updated docs, added new test cases for t/stats.t 23 242007-03-18 Paul Lindner <[email protected]> 25 26 * Add more test cases using larger buffer sizes up to and greater 27 than 1MB. 28 29 * Remove unused parameter to item_size_ok() 30 31 * Use a single printf() in usage() 32 33 * Add a failing test for conforming with maximum connections. 34 352007-03-17 36 * crash fix from Thomas van Gulick <[email protected]> in 37 conn_shrink(), passing &ptr, instead of ptr to realloc(). 38 392007-03-05 Paul Lindner <[email protected]> 40 * Fix a number of places where (s)printf calls were using unsigned 41 or signed formats that did not match their arguments. 42 43 * Add support for stdbool.h and stdint.h to use the bool and 44 uint8_t types. 45 46 * Major refactoring - move API calls for assoc/items/slabs to 47 their own individual header files. Add apropriate const and 48 static declarations as appropriate. 49 50 * Avoid type-punning. Do a more efficient realloc inside the 51 conn_shrink routine. 52 53 * Fix overflow bug where uninitialized access to slabclass caused 54 size-0 mallocs during slab preallocation. 55 56 * Use EXIT_SUCCESS/EXIT_FAILURE constants. 57 58 * Convert some sprintf calls to snprintf to protect against 59 buffer overflows. 60 61 * Explicitly compare against NULL or zero in many places. 62 632006-12-23 64 * fix expirations of items set with absolute expiration times in 65 the past, before the server's start time. bug was introduced in 66 1.2.0 with rel_time_t. Thanks to Adam Dixon 67 <[email protected]> for the bug report and test case! 68 692006-11-26 70 * Steven Grimm <[email protected]>: Performance improvements: 71 72 Dynamic sizing of hashtable to reduce collisions on very large 73 caches and conserve memory on small caches. 74 75 Only reposition items in the LRU queue once a minute, to reduce 76 overhead of accessing extremely frequently-used items. 77 78 Stop listening for new connections until an existing one closes 79 if we run out of available file descriptors. 80 81 Command parser refactoring: Add a single-pass tokenizer to cut 82 down on string scanning. Split the command processing into 83 separate functions for easier profiling and better readability. 84 Pass key lengths along with the keys in all API functions that 85 need keys, to avoid needing to call strlen() repeatedly. 86 872006-11-25 88 * Steve Peters <[email protected]>: OpenBSD has a malloc.h, 89 but warns to use stdlib.h instead 90 912006-11-13 92 * Iain Wade <[email protected]>: Fix for UDP responses on non-"get" 93 commands. 94 952006-10-13 96 * Steven Grimm <[email protected]>: New faster hash function. 97 982006-09-20 99 100 * don't listen on UDP by default; more clear message when UDP port in use 101 1022006-09-09 103 * release 1.2.0 (along with 1.1.13, which is the more tested branch) 104 105 nobody has run 1.2.0 in production, to my knowledge. facebook has run 106 their pre-merge-with-trunk version, but bugs were discovered (and fixed) 107 after the merge. there might be more. you've been warned. :) 108 1092006-09-04 110 * improved autoconf libevent detection, from the Tor project. 111 1122006-09-03 113 * test suite and lot of expiration, delete, flush_all, etc corner 114 case bugs fixed (Brad Fitzpatrick) 115 1162006-09-02 117 * Nathan Neulinger <[email protected]>: fix breakage in expiration code 118 causing expiration times to not be processed correctly. 119 1202006-08-21 121 * Nathan Neulinger <[email protected]>: fix incompatabilities with 122 unix domain socket support and the UDP code and clean up stale 123 sockets 124 1252006-08-20 126 * Nathan Neulinger <[email protected]>: unix domain socket support 127 1282006-05-03 129 * Steven Grimm <[email protected]>: big bunch of changes: 130 big CPU reduction work, UDP-based interface, increased memory 131 efficiency. (intertwined patch, committed all together) 132 <http://lists.danga.com/pipermail/memcached/2006-May/002164.html> 133 or see svn commit logs 134 1352006-04-30 136 * River Tarnell: autoconf work for Solaris 10. Brad: 137 merge and verify it works on Nexenta. 138 1392006-03-04 140 * avva: bucket/generation patch (old, but Brad's just finally 141 committing it) 142 1432006-01-01 144 * Brad Fitzpatrick <[email protected]>: allocate 1 slab per class 145 on start-up, to avoid confusing users with out-of-memory errors 146 later. this is 18 MB of allocation on start, unless max memory 147 allowed with -m is lower, in which case only the smaller slab 148 classes are allocated. 149 1502005-08-09 151 * Elizabeth Mattijsen <[email protected]>: needed a way to flush all 152 memcached backend servers, but not at exactly the same time (to 153 reduce load peaks), I've added some simple functionality to the 154 memcached protocol in the "flush_all" command that allows you to 155 specify a time at which the flush will actually occur (instead of 156 always at the moment the "flush_all" command is received). 157 1582005-05-25 159 * patch from Peter van Dijk <[email protected]> to make 160 stderr unbuffered, for running under daemontools 161 1622005-04-04 163 * patch from Don MacAskill <[email protected]> 'flush_all' doesn't 164 seem to work properly. Basically, if you try to add a key which 165 is present, but expired, the store fails but the old key is no 166 longer expired. 167 168 * release 1.1.12 169 1702005-01-14 171 * Date: Thu, 18 Nov 2004 15:25:59 -0600 172 From: David Phillips <[email protected]> 173 Here is a patch to configure.ac and Makefile.am to put the man page in 174 the correct location. Trying to install the man page from a 175 subdirectory results in the subdirectory being used in the install 176 path (it tries to install to doc/memcached.1). This is the correct 177 thing to do: 178 179 - create a Makefile.am in the doc directory that installs the man page 180 with man_MANS 181 - modify Makefile.am in the base directory to reference the doc 182 directory using SUBDIRS 183 - modify the AC_CONFIG_FILES macro in configure.ac to output the 184 Makefile in doc 185 186 1872005-01-14 188 * pidfile saving support from Lisa Seelye <[email protected]>, sent 189 Jan 13, 2005 190 1912005-01-14 192 * don't delete libevent events that haven't been added (the deltimer) 193 patch from Ted Schundler <[email protected]> 194 1952004-12-10 196 * document -M and -r in manpage (Doug Porter <[email protected]>) 197 1982004-07-22 199 * fix buffer overflow in items.c with 250 byte keys along with 200 other info on the same line going into a 256 byte char[]. 201 thanks to Andrei Nigmatulin <[email protected]> 202 2032004-06-15 204 * immediate deletes weren't being unlinked a few seconds, 205 preventing "add" commands to the same key in that time period. 206 thanks to Michael Alan Dorman <[email protected]> for the 207 bug report and demo script. 208 2092004-04-30 210 * released 1.1.11 211 2122004-04-24 213 * Avva: Add a new command line option: -r , to maximize core file 214 limit. 215 2162004-03-31 217 * Avva: Use getrlimit and setrlimit to set limits for number of 218 simultaneously open file descriptors. Get the current limits and 219 try to raise them if they're not enough for the specified (or the 220 default) setting of max connections. 221 2222004-02-24 223 * Adds a '-M' flag to turn off tossing items from the cache. 224 (Jason Titus <[email protected]>) 225 2262004-02-19 (Evan) 227 * Install manpage on "make install", etc. 228 2292003-12-30 (Brad) 230 * remove static build stuff. interferes with PAM setuid stuff 231 and was only included as a possible fix with the old memory 232 allocator. really shouldn't make a difference. 233 * add Jay Bonci's Debian scripts and manpage 234 * release version 1.1.10 235 2362003-12-01 (Avva) 237 * New command: flush_all, causes all existing items to 238 be invalidated immediately (without deleting them from 239 memory, merely causing memcached to no longer return them). 2402003-10-23 241 * Shift init code around to fix daemon mode on FreeBSD, 242 * and drop root only after creating the server socket (to 243 * allow the use of privileged ports) 244 * version 1.1.10pre 245 2462003-10-09 247 * BSD compile fixes from Ryan T. Dean 248 * version 1.1.9 249 2502003-09-29 251 * ignore SIGPIPE at start instead of crashing in rare cases it 252 comes up. no other code had to be modified, since everything 253 else is already dead-connection-aware. (avva) 254 2552003-09-09 (Avva, Lisa Marie Seelye <[email protected]>) 256 * setuid support 257 2582003-09-05 (Avva) 259 * accept all new connections in the same event (so we work with ET epoll) 260 * mark all items as clsid=0 after slab page reassignment to please future 261 asserts (on the road to making slab page reassignment work fully) 262 2632003-08-12 (Brad Fitzpatrick) 264 * use TCP_CORK on Linux or TCP_PUSH on BSD 265 * only use TCP_NODELAY when we don't have alternatives 266 2672003-08-10 268 * disable Nagel's Algorithm (TCP_NODELAY) for better performance (avva) 269 2702003-08-10 271 * support multiple levels of verbosity (-vv) 272 2732003-08-10 (Evan Martin) 274 * Makefile.am: debug, optimization, and static flags are controlled 275 by the configure script. 276 * configure.ac: 277 - allow specifying libevent directory with --with-libevent=DIR 278 - check for malloc.h (unavailable on BSDs) 279 - check for socklen_t (unavailable on OSX) 280 * assoc.c, items.c, slabs.c: Remove some unused headers. 281 * memcached.c: allow for nonexistence of malloc.h; #define a POSIX 282 macro to import mlockall flags. 283 2842003-07-29 285 * version 1.1.7 286 * big bug fix: item exptime 0 meant expire immediately, not never 287 * version 1.1.8 288 2892003-07-22 290 * make 'delete' take second arg, of time to refuse new add/replace 291 * set/add/replace/delete can all take abs or delta time (delta can't 292 be larger than a month) 293 2942003-07-21 295 * added doc/protocol.txt 296 2972003-07-01 298 * report CPU usage in stats 299 3002003-06-30 301 * version 1.1.6 302 * fix a number of obscure bugs 303 * more stats reporting 304 3052003-06-10 306 * removing use of Judy; use a hash. (judy caused memory fragmentation) 307 * shrink some structures 308 * security improvements 309 * version 1.1.0 310 3112003-06-18 312 * changing maxsize back to an unsigned int 313 3142003-06-16 315 * adding PHP support 316 * added CONTRIBUTORS file 317 * version 1.0.4 318 3192003-06-15 320 * forgot to distribute website/api (still learning auto*) 321 * version 1.0.3 322 3232003-06-15 324 * update to version 1.0.2 325 * autoconf/automake fixes for older versions 326 * make stats report version number 327 * change license from GPL to BSD 328 329Fri, 13 Jun 2003 10:05:51 -0700 Evan Martin <[email protected]> 330 331 * configure.ac, autogen.sh, Makefile.am: Use autotools. 332 * items.c, memcached.c: #include <time.h> for time(), 333 printf time_t as %lu (is this correct?), 334 minor warnings fixes. 335 336