12007-10-03 Paul Lindner <[email protected]> 2 * Incorporate "cas" operation developed by Dustin 3 Sallings <[email protected]> This change allows you 4 to do atomic changes to an existing key. 5 6 * Fix for stats.evictions not incrementing 7 when exptime == 0 items are kicked off the cache. 8 from Jean-Francois BUSTARRET <[email protected]>. 9 10 * Fix for do_item_cachedump() which was returning 11 an incorrect timestamp. 12 13 * Switch to unsigned 64-bit increment/decrement counters 14 from Evan Miller and Dustin Sallings. 15 16 * Add append command support written by Filipe Laborde. 17 Thread safe version plus prepend command from Maxim Dounin 18 <[email protected]> 19 20 * The memcached-tool script can now display stats. Patch 21 provided by Dan Christian <[email protected]> 22 23 * Fix for Unix Domain sockets on FreeBSD 24 FreeBSD's sendmsg() requires msg_name in msghdr structure 25 to be NULL if not used, setting msg_namelen to 0 isn't enough. 26 Patch from Maxim Dounin <[email protected]> 27 282007-08-21 Paul Lindner <[email protected]> 29 * Incorporate incrememnt patch from Evan Miller 30 <[email protected]> to define increment overflow 31 behavior. 32 332007-08-07 Leon Brocard <[email protected]> 34 * Bring the memcached.1 manpage up to date 35 362007-08-06 Paul Lindner <[email protected]> 37 * Fix crash when using -P and -d flags on x86_64 38 with latest libevent release. 39 402007-07-08 Steven Grimm <[email protected]> 41 42 * Item stats commands weren't thread-safe; wrap them with locks 43 when compiled in multithreaded mode. 44 * The "stats items" command now works again; it broke with the 45 introduction of the powers-of-N chunk size change. 46 472007-07-06 [Version 1.2.3 released] 48 492007-06-19 Paul Lindner <[email protected]> 50 51 * Solaris portability fixes from Trond Norbye 52 532007-05-29 Paul Lindner <[email protected]> 54 55 * Properly document evictions statistic value 56 572007-05-10 Paul Lindner <[email protected]> 58 59 * Flesh out tests for unix domain sockets and binary data. 60 * Update rpm spec file to run tests 61 622007-05-07 Paul Lindner <[email protected]> 63 64 * Fix compilation bug on freebsd 6.x (and maybe others) 65 * Update RPM spec file per redhat bugzilla #238994 66 * Move unistd.h to memcached.h to get rid of warnings 67 * Add string.h to thread.c to get correctly prototyped strerror() 68 692007-05-04 Paul Lindner <[email protected]> 70 71 * Add fedora/redhat style init script and RPM spec file 72 732007-05-12 [Version 1.2.2 released] 74 752007-04-16 Steven Grimm <[email protected]> 76 77 * Command tokenizer performance and cleanliness improvement. 78 Patch contributed by Paolo Borelli <[email protected]>. 79 802007-04-16 Paul Lindner <[email protected]> 81 82 * Add notes to README about MacOS, libevent and kqueue. 83 84 * Windows Patch integration -- part 1, warnings elimination. 85 862007-04-12 Paul Lindner <[email protected]> 87 88 * Allow changes to the verbosity level of the server with a new 89 "verbosity" command and some compiler cleanups. 90 Patch contributed by Paolo Borelli <[email protected]>. 91 922007-04-08 Paul Lindner <[email protected]> 93 94 * Add cleanup patch from "Tim Yardley" <[email protected]> to 95 clean up source spacing issues, fix -Wall warnings, add some 96 null checks, adds asserts at the top of each function for any 97 use of conn *c without checking to see if c is NULL first. 98 99 * Also adjust clean-whitespace.pl to clean *.ac files. Add 100 script to test-suite to test for tabs. 101 1022007-04-04 Paul Lindner <[email protected]> 103 104 * Add clarification of flush_all in the protocol docs 105 from Elizabeth Mattijsen <[email protected]> 106 1072007-03-31 Paul Lindner <[email protected]> 108 109 * Add patch from Eli Bingham <[email protected]> to 110 re-enable the -n switch to memcached. 111 1122007-03-20 Paul Lindner <[email protected]> 113 * Add patch to collect eviction statistics from 114 Jean-Francois BUSTARRET <[email protected]>. 115 116 * Updated docs, added new test cases for t/stats.t 117 1182007-03-18 Paul Lindner <[email protected]> 119 120 * Add more test cases using larger buffer sizes up to and greater 121 than 1MB. 122 123 * Remove unused parameter to item_size_ok() 124 125 * Use a single printf() in usage() 126 127 * Add a failing test for conforming with maximum connections. 128 1292007-03-17 130 * crash fix from Thomas van Gulick <[email protected]> in 131 conn_shrink(), passing &ptr, instead of ptr to realloc(). 132 1332007-03-05 Paul Lindner <[email protected]> 134 * Fix a number of places where (s)printf calls were using unsigned 135 or signed formats that did not match their arguments. 136 137 * Add support for stdbool.h and stdint.h to use the bool and 138 uint8_t types. 139 140 * Major refactoring - move API calls for assoc/items/slabs to 141 their own individual header files. Add apropriate const and 142 static declarations as appropriate. 143 144 * Avoid type-punning. Do a more efficient realloc inside the 145 conn_shrink routine. 146 147 * Fix overflow bug where uninitialized access to slabclass caused 148 size-0 mallocs during slab preallocation. 149 150 * Use EXIT_SUCCESS/EXIT_FAILURE constants. 151 152 * Convert some sprintf calls to snprintf to protect against 153 buffer overflows. 154 155 * Explicitly compare against NULL or zero in many places. 156 1572007-03-05 158 * Steven Grimm <[email protected]>: Per-object-type stats collection 159 support. Specify the object type delimiter with the -D command line 160 option. Turn stats gathering on and off with "stats detail on" and 161 "stats detail off". Dump the per-object-type details with 162 "stats detail dump". 163 1642007-03-01 165 * Steven Grimm <[email protected]>: Fix an off-by-one error in the 166 multithreaded version's message passing code. 167 1682006-12-23 169 * fix expirations of items set with absolute expiration times in 170 the past, before the server's start time. bug was introduced in 171 1.2.0 with rel_time_t. Thanks to Adam Dixon 172 <[email protected]> for the bug report and test case! 173 1742006-11-26 175 * Steven Grimm <[email protected]>: Performance improvements: 176 177 Dynamic sizing of hashtable to reduce collisions on very large 178 caches and conserve memory on small caches. 179 180 Only reposition items in the LRU queue once a minute, to reduce 181 overhead of accessing extremely frequently-used items. 182 183 Stop listening for new connections until an existing one closes 184 if we run out of available file descriptors. 185 186 Command parser refactoring: Add a single-pass tokenizer to cut 187 down on string scanning. Split the command processing into 188 separate functions for easier profiling and better readability. 189 Pass key lengths along with the keys in all API functions that 190 need keys, to avoid needing to call strlen() repeatedly. 191 1922006-11-25 193 * Steve Peters <[email protected]>: OpenBSD has a malloc.h, 194 but warns to use stdlib.h instead 195 1962006-11-22 197 * Steven Grimm <[email protected]>: Add support for multithreaded 198 execution. Run configure with "--enable-threads" to enable. See 199 doc/threads.txt for details. 200 2012006-11-13 202 * Iain Wade <[email protected]>: Fix for UDP responses on non-"get" 203 commands. 204 2052006-10-15 206 * Steven Grimm <[email protected]>: Dynamic sizing of hashtable to 207 reduce collisions on very large caches and conserve memory on 208 small caches. 209 2102006-10-13 211 * Steven Grimm <[email protected]>: New faster hash function. 212 2132006-09-20 214 215 * don't listen on UDP by default; more clear message when UDP port in use 216 2172006-09-09 218 * release 1.2.0 (along with 1.1.13, which is the more tested branch) 219 220 nobody has run 1.2.0 in production, to my knowledge. facebook has run 221 their pre-merge-with-trunk version, but bugs were discovered (and fixed) 222 after the merge. there might be more. you've been warned. :) 223 2242006-09-04 225 * improved autoconf libevent detection, from the Tor project. 226 2272006-09-03 228 * test suite and lot of expiration, delete, flush_all, etc corner 229 case bugs fixed (Brad Fitzpatrick) 230 2312006-09-02 232 * Nathan Neulinger <[email protected]>: fix breakage in expiration code 233 causing expiration times to not be processed correctly. 234 2352006-08-21 236 * Nathan Neulinger <[email protected]>: fix incompatabilities with 237 unix domain socket support and the UDP code and clean up stale 238 sockets 239 2402006-08-20 241 * Nathan Neulinger <[email protected]>: unix domain socket support 242 2432006-05-03 244 * Steven Grimm <[email protected]>: big bunch of changes: 245 big CPU reduction work, UDP-based interface, increased memory 246 efficiency. (intertwined patch, committed all together) 247 <http://lists.danga.com/pipermail/memcached/2006-May/002164.html> 248 or see svn commit logs 249 2502006-04-30 251 * River Tarnell: autoconf work for Solaris 10. Brad: 252 merge and verify it works on Nexenta. 253 2542006-03-04 255 * avva: bucket/generation patch (old, but Brad's just finally 256 committing it) 257 2582006-01-01 259 * Brad Fitzpatrick <[email protected]>: allocate 1 slab per class 260 on start-up, to avoid confusing users with out-of-memory errors 261 later. this is 18 MB of allocation on start, unless max memory 262 allowed with -m is lower, in which case only the smaller slab 263 classes are allocated. 264 2652005-08-09 266 * Elizabeth Mattijsen <[email protected]>: needed a way to flush all 267 memcached backend servers, but not at exactly the same time (to 268 reduce load peaks), I've added some simple functionality to the 269 memcached protocol in the "flush_all" command that allows you to 270 specify a time at which the flush will actually occur (instead of 271 always at the moment the "flush_all" command is received). 272 2732005-05-25 274 * patch from Peter van Dijk <[email protected]> to make 275 stderr unbuffered, for running under daemontools 276 2772005-04-04 278 * patch from Don MacAskill <[email protected]> 'flush_all' doesn't 279 seem to work properly. Basically, if you try to add a key which 280 is present, but expired, the store fails but the old key is no 281 longer expired. 282 283 * release 1.1.12 284 2852005-01-14 286 * Date: Thu, 18 Nov 2004 15:25:59 -0600 287 From: David Phillips <[email protected]> 288 Here is a patch to configure.ac and Makefile.am to put the man page in 289 the correct location. Trying to install the man page from a 290 subdirectory results in the subdirectory being used in the install 291 path (it tries to install to doc/memcached.1). This is the correct 292 thing to do: 293 294 - create a Makefile.am in the doc directory that installs the man page 295 with man_MANS 296 - modify Makefile.am in the base directory to reference the doc 297 directory using SUBDIRS 298 - modify the AC_CONFIG_FILES macro in configure.ac to output the 299 Makefile in doc 300 301 3022005-01-14 303 * pidfile saving support from Lisa Seelye <[email protected]>, sent 304 Jan 13, 2005 305 3062005-01-14 307 * don't delete libevent events that haven't been added (the deltimer) 308 patch from Ted Schundler <[email protected]> 309 3102004-12-10 311 * document -M and -r in manpage (Doug Porter <[email protected]>) 312 3132004-07-22 314 * fix buffer overflow in items.c with 250 byte keys along with 315 other info on the same line going into a 256 byte char[]. 316 thanks to Andrei Nigmatulin <[email protected]> 317 3182004-06-15 319 * immediate deletes weren't being unlinked a few seconds, 320 preventing "add" commands to the same key in that time period. 321 thanks to Michael Alan Dorman <[email protected]> for the 322 bug report and demo script. 323 3242004-04-30 325 * released 1.1.11 326 3272004-04-24 328 * Avva: Add a new command line option: -r , to maximize core file 329 limit. 330 3312004-03-31 332 * Avva: Use getrlimit and setrlimit to set limits for number of 333 simultaneously open file descriptors. Get the current limits and 334 try to raise them if they're not enough for the specified (or the 335 default) setting of max connections. 336 3372004-02-24 338 * Adds a '-M' flag to turn off tossing items from the cache. 339 (Jason Titus <[email protected]>) 340 3412004-02-19 (Evan) 342 * Install manpage on "make install", etc. 343 3442003-12-30 (Brad) 345 * remove static build stuff. interferes with PAM setuid stuff 346 and was only included as a possible fix with the old memory 347 allocator. really shouldn't make a difference. 348 * add Jay Bonci's Debian scripts and manpage 349 * release version 1.1.10 350 3512003-12-01 (Avva) 352 * New command: flush_all, causes all existing items to 353 be invalidated immediately (without deleting them from 354 memory, merely causing memcached to no longer return them). 3552003-10-23 356 * Shift init code around to fix daemon mode on FreeBSD, 357 * and drop root only after creating the server socket (to 358 * allow the use of privileged ports) 359 * version 1.1.10pre 360 3612003-10-09 362 * BSD compile fixes from Ryan T. Dean 363 * version 1.1.9 364 3652003-09-29 366 * ignore SIGPIPE at start instead of crashing in rare cases it 367 comes up. no other code had to be modified, since everything 368 else is already dead-connection-aware. (avva) 369 3702003-09-09 (Avva, Lisa Marie Seelye <[email protected]>) 371 * setuid support 372 3732003-09-05 (Avva) 374 * accept all new connections in the same event (so we work with ET epoll) 375 * mark all items as clsid=0 after slab page reassignment to please future 376 asserts (on the road to making slab page reassignment work fully) 377 3782003-08-12 (Brad Fitzpatrick) 379 * use TCP_CORK on Linux or TCP_PUSH on BSD 380 * only use TCP_NODELAY when we don't have alternatives 381 3822003-08-10 383 * disable Nagel's Algorithm (TCP_NODELAY) for better performance (avva) 384 3852003-08-10 386 * support multiple levels of verbosity (-vv) 387 3882003-08-10 (Evan Martin) 389 * Makefile.am: debug, optimization, and static flags are controlled 390 by the configure script. 391 * configure.ac: 392 - allow specifying libevent directory with --with-libevent=DIR 393 - check for malloc.h (unavailable on BSDs) 394 - check for socklen_t (unavailable on OSX) 395 * assoc.c, items.c, slabs.c: Remove some unused headers. 396 * memcached.c: allow for nonexistence of malloc.h; #define a POSIX 397 macro to import mlockall flags. 398 3992003-07-29 400 * version 1.1.7 401 * big bug fix: item exptime 0 meant expire immediately, not never 402 * version 1.1.8 403 4042003-07-22 405 * make 'delete' take second arg, of time to refuse new add/replace 406 * set/add/replace/delete can all take abs or delta time (delta can't 407 be larger than a month) 408 4092003-07-21 410 * added doc/protocol.txt 411 4122003-07-01 413 * report CPU usage in stats 414 4152003-06-30 416 * version 1.1.6 417 * fix a number of obscure bugs 418 * more stats reporting 419 4202003-06-10 421 * removing use of Judy; use a hash. (judy caused memory fragmentation) 422 * shrink some structures 423 * security improvements 424 * version 1.1.0 425 4262003-06-18 427 * changing maxsize back to an unsigned int 428 4292003-06-16 430 * adding PHP support 431 * added CONTRIBUTORS file 432 * version 1.0.4 433 4342003-06-15 435 * forgot to distribute website/api (still learning auto*) 436 * version 1.0.3 437 4382003-06-15 439 * update to version 1.0.2 440 * autoconf/automake fixes for older versions 441 * make stats report version number 442 * change license from GPL to BSD 443 444Fri, 13 Jun 2003 10:05:51 -0700 Evan Martin <[email protected]> 445 446 * configure.ac, autogen.sh, Makefile.am: Use autotools. 447 * items.c, memcached.c: #include <time.h> for time(), 448 printf time_t as %lu (is this correct?), 449 minor warnings fixes. 450 451