12008-09-06 2 * Display error status on listen failures (Dormando) 3 4 * Remove managed instance code. Incomplete/etc. (Dormando) 5 6 * Handle broken IPV6 stacks better (Brian Aker) 7 8 * Generate warnings on setsockopt() failures (Brian Aker) 9 10 * Fix some indentation issues (Brian Aker) 11 12 * UDP/TCP can be disabled by setting their port to zero (Brian Aker) 13 14 * Zero out libevent thread structures before use (Ricky Zhou) 15 16 * New stat: Last accessed time for last evicted item per slab class. 17 (Dormando) 18 19 * Use a dedicated socket accept thread (Facebook) 20 21 * Add -R option. Limit the number of requests processed by a connection 22 at once. Prevents starving other threads if bulk loading. (Facebook) 23 242008-07-29 [Version 1.2.6 released] 25 262008-07-24 [Version 1.2.6-rc1 released] 27 28 * Add support for newer automake (Facebook) 29 30 * DTrace support for Solaris/etc (Trond Norbye) 31 32 * LRU tests (Steve Yen) 33 34 * Handle negative length items properly (Dormando) 35 36 * Don't leave stale data after failed set attempts (Dormando) 37 38 * Fix refcount leaks, which would result in OOM's on all sets 39 (Dormando) 40 41 * Fix buffer overruns (Dustin Sallings, Tomash Brechko) 42 43 * Fix memory corruption with CAS (Dustin Sallings) 44 452008-06-11 46 47 * Fix -k to work with -d. (reported by Gary Zhu) 48 492008-03-02 [Version 1.2.5-rc1 released] 50 51 * Add per-item-class tracking of evictions and OOM errors (dormando) 52 53 * Optimize item_alloc() a little (dormando) 54 55 * Give 'SERVER_ERROR out of memory' errors more context (dormando) 56 57 * Enable usage of large memory pages under solaris 58 ([email protected]) 59 60 * Enable UDP by default, clean up server socket code 61 ([email protected]) 62 63 * 'noreply' support (Tomash Brechko) 64 65 * IPv6 support, and IPv6 multi-interface support ([email protected]) 66 67 * Add compiler options for Sun Studio compilers with --enable-threads 68 ([email protected]) 69 70 * Add --enable-64bit for mulitarget platforms ([email protected]) 71 72 * Use gettimeofday(2) instead of time(2). 73 74 * Make -k option work (Tomash Brechko) 75 76 * Fix chunk slab alignment ([email protected]) 77 782007-12-06 [Version 1.2.4 released] 79 802007-12-05 81 82 * Fix compilation on panther (JS and Dormando) 83 84 * More CAS tests (Chris Goffinet) 85 86 * Final fixes for all 1.2.4 features are in, -rc2 sent out. 87 882007-11-19 [Version 1.2.4-rc1 released] 89 902007-11-19 Dormando <[email protected]> 91 92 * Patch series from Tomash Brechko <[email protected]>: 93 Minor fixes and optimisations. 94 95 * Patches from Chris, Dustin, and Dormando to fix CAS. 96 97 * Prepping for 1.2.4 release. 98 992007-11-13 Dormando <[email protected]> 100 101 * Adjusted patch from js <[email protected]>: Compile on OS X Panther 102 and earlier. 103 1042007-11-12 Steven Grimm <[email protected]> 105 106 * Patch from Tomash Brechko <[email protected]>: Always send 107 "SERVER_ERROR out of memory" when memory exhausted. 108 1092007-10-15 Paul Lindner <[email protected]> 110 111 * Patch from David Bremner <[email protected]> that implements 112 a new option "-a" which takes an octal permission mask 113 (like chmod) sets the permissions on the unix domain socket 114 (specified by "-s"). 115 1162007-10-03 Paul Lindner <[email protected]> 117 * Incorporate "cas" operation developed by Dustin 118 Sallings <[email protected]> This change allows you 119 to do atomic changes to an existing key. 120 121 * Fix for stats.evictions not incrementing 122 when exptime == 0 items are kicked off the cache. 123 from Jean-Francois BUSTARRET <[email protected]>. 124 125 * Fix for do_item_cachedump() which was returning 126 an incorrect timestamp. 127 128 * Switch to unsigned 64-bit increment/decrement counters 129 from Evan Miller and Dustin Sallings. 130 131 * Add append command support written by Filipe Laborde. 132 Thread safe version plus prepend command from Maxim Dounin 133 <[email protected]> 134 135 * The memcached-tool script can now display stats. Patch 136 provided by Dan Christian <[email protected]> 137 138 * Fix for Unix Domain sockets on FreeBSD 139 FreeBSD's sendmsg() requires msg_name in msghdr structure 140 to be NULL if not used, setting msg_namelen to 0 isn't enough. 141 Patch from Maxim Dounin <[email protected]> 142 1432007-08-21 Paul Lindner <[email protected]> 144 * Incorporate incrememnt patch from Evan Miller 145 <[email protected]> to define increment overflow 146 behavior. 147 1482007-08-07 Leon Brocard <[email protected]> 149 * Bring the memcached.1 manpage up to date 150 1512007-08-06 Paul Lindner <[email protected]> 152 * Fix crash when using -P and -d flags on x86_64 153 with latest libevent release. 154 1552007-07-08 Steven Grimm <[email protected]> 156 157 * Item stats commands weren't thread-safe; wrap them with locks 158 when compiled in multithreaded mode. 159 * The "stats items" command now works again; it broke with the 160 introduction of the powers-of-N chunk size change. 161 1622007-07-06 [Version 1.2.3 released] 163 1642007-06-19 Paul Lindner <[email protected]> 165 166 * Solaris portability fixes from Trond Norbye 167 1682007-05-29 Paul Lindner <[email protected]> 169 170 * Properly document evictions statistic value 171 1722007-05-10 Paul Lindner <[email protected]> 173 174 * Flesh out tests for unix domain sockets and binary data. 175 * Update rpm spec file to run tests 176 1772007-05-07 Paul Lindner <[email protected]> 178 179 * Fix compilation bug on freebsd 6.x (and maybe others) 180 * Update RPM spec file per redhat bugzilla #238994 181 * Move unistd.h to memcached.h to get rid of warnings 182 * Add string.h to thread.c to get correctly prototyped strerror() 183 1842007-05-04 Paul Lindner <[email protected]> 185 186 * Add fedora/redhat style init script and RPM spec file 187 1882007-05-12 [Version 1.2.2 released] 189 1902007-04-16 Steven Grimm <[email protected]> 191 192 * Command tokenizer performance and cleanliness improvement. 193 Patch contributed by Paolo Borelli <[email protected]>. 194 1952007-04-16 Paul Lindner <[email protected]> 196 197 * Add notes to README about MacOS, libevent and kqueue. 198 199 * Windows Patch integration -- part 1, warnings elimination. 200 2012007-04-12 Paul Lindner <[email protected]> 202 203 * Allow changes to the verbosity level of the server with a new 204 "verbosity" command and some compiler cleanups. 205 Patch contributed by Paolo Borelli <[email protected]>. 206 2072007-04-08 Paul Lindner <[email protected]> 208 209 * Add cleanup patch from "Tim Yardley" <[email protected]> to 210 clean up source spacing issues, fix -Wall warnings, add some 211 null checks, adds asserts at the top of each function for any 212 use of conn *c without checking to see if c is NULL first. 213 214 * Also adjust clean-whitespace.pl to clean *.ac files. Add 215 script to test-suite to test for tabs. 216 2172007-04-04 Paul Lindner <[email protected]> 218 219 * Add clarification of flush_all in the protocol docs 220 from Elizabeth Mattijsen <[email protected]> 221 2222007-03-31 Paul Lindner <[email protected]> 223 224 * Add patch from Eli Bingham <[email protected]> to 225 re-enable the -n switch to memcached. 226 2272007-03-20 Paul Lindner <[email protected]> 228 * Add patch to collect eviction statistics from 229 Jean-Francois BUSTARRET <[email protected]>. 230 231 * Updated docs, added new test cases for t/stats.t 232 2332007-03-18 Paul Lindner <[email protected]> 234 235 * Add more test cases using larger buffer sizes up to and greater 236 than 1MB. 237 238 * Remove unused parameter to item_size_ok() 239 240 * Use a single printf() in usage() 241 242 * Add a failing test for conforming with maximum connections. 243 2442007-03-17 245 * crash fix from Thomas van Gulick <[email protected]> in 246 conn_shrink(), passing &ptr, instead of ptr to realloc(). 247 2482007-03-05 Paul Lindner <[email protected]> 249 * Fix a number of places where (s)printf calls were using unsigned 250 or signed formats that did not match their arguments. 251 252 * Add support for stdbool.h and stdint.h to use the bool and 253 uint8_t types. 254 255 * Major refactoring - move API calls for assoc/items/slabs to 256 their own individual header files. Add apropriate const and 257 static declarations as appropriate. 258 259 * Avoid type-punning. Do a more efficient realloc inside the 260 conn_shrink routine. 261 262 * Fix overflow bug where uninitialized access to slabclass caused 263 size-0 mallocs during slab preallocation. 264 265 * Use EXIT_SUCCESS/EXIT_FAILURE constants. 266 267 * Convert some sprintf calls to snprintf to protect against 268 buffer overflows. 269 270 * Explicitly compare against NULL or zero in many places. 271 2722007-03-05 273 * Steven Grimm <[email protected]>: Per-object-type stats collection 274 support. Specify the object type delimiter with the -D command line 275 option. Turn stats gathering on and off with "stats detail on" and 276 "stats detail off". Dump the per-object-type details with 277 "stats detail dump". 278 2792007-03-01 280 * Steven Grimm <[email protected]>: Fix an off-by-one error in the 281 multithreaded version's message passing code. 282 2832006-12-23 284 * fix expirations of items set with absolute expiration times in 285 the past, before the server's start time. bug was introduced in 286 1.2.0 with rel_time_t. Thanks to Adam Dixon 287 <[email protected]> for the bug report and test case! 288 2892006-11-26 290 * Steven Grimm <[email protected]>: Performance improvements: 291 292 Dynamic sizing of hashtable to reduce collisions on very large 293 caches and conserve memory on small caches. 294 295 Only reposition items in the LRU queue once a minute, to reduce 296 overhead of accessing extremely frequently-used items. 297 298 Stop listening for new connections until an existing one closes 299 if we run out of available file descriptors. 300 301 Command parser refactoring: Add a single-pass tokenizer to cut 302 down on string scanning. Split the command processing into 303 separate functions for easier profiling and better readability. 304 Pass key lengths along with the keys in all API functions that 305 need keys, to avoid needing to call strlen() repeatedly. 306 3072006-11-25 308 * Steve Peters <[email protected]>: OpenBSD has a malloc.h, 309 but warns to use stdlib.h instead 310 3112006-11-22 312 * Steven Grimm <[email protected]>: Add support for multithreaded 313 execution. Run configure with "--enable-threads" to enable. See 314 doc/threads.txt for details. 315 3162006-11-13 317 * Iain Wade <[email protected]>: Fix for UDP responses on non-"get" 318 commands. 319 3202006-10-15 321 * Steven Grimm <[email protected]>: Dynamic sizing of hashtable to 322 reduce collisions on very large caches and conserve memory on 323 small caches. 324 3252006-10-13 326 * Steven Grimm <[email protected]>: New faster hash function. 327 3282006-09-20 329 330 * don't listen on UDP by default; more clear message when UDP port in use 331 3322006-09-09 333 * release 1.2.0 (along with 1.1.13, which is the more tested branch) 334 335 nobody has run 1.2.0 in production, to my knowledge. facebook has run 336 their pre-merge-with-trunk version, but bugs were discovered (and fixed) 337 after the merge. there might be more. you've been warned. :) 338 3392006-09-04 340 * improved autoconf libevent detection, from the Tor project. 341 3422006-09-03 343 * test suite and lot of expiration, delete, flush_all, etc corner 344 case bugs fixed (Brad Fitzpatrick) 345 3462006-09-02 347 * Nathan Neulinger <[email protected]>: fix breakage in expiration code 348 causing expiration times to not be processed correctly. 349 3502006-08-21 351 * Nathan Neulinger <[email protected]>: fix incompatabilities with 352 unix domain socket support and the UDP code and clean up stale 353 sockets 354 3552006-08-20 356 * Nathan Neulinger <[email protected]>: unix domain socket support 357 3582006-05-03 359 * Steven Grimm <[email protected]>: big bunch of changes: 360 big CPU reduction work, UDP-based interface, increased memory 361 efficiency. (intertwined patch, committed all together) 362 <http://lists.danga.com/pipermail/memcached/2006-May/002164.html> 363 or see svn commit logs 364 3652006-04-30 366 * River Tarnell: autoconf work for Solaris 10. Brad: 367 merge and verify it works on Nexenta. 368 3692006-03-04 370 * avva: bucket/generation patch (old, but Brad's just finally 371 committing it) 372 3732006-01-01 374 * Brad Fitzpatrick <[email protected]>: allocate 1 slab per class 375 on start-up, to avoid confusing users with out-of-memory errors 376 later. this is 18 MB of allocation on start, unless max memory 377 allowed with -m is lower, in which case only the smaller slab 378 classes are allocated. 379 3802005-08-09 381 * Elizabeth Mattijsen <[email protected]>: needed a way to flush all 382 memcached backend servers, but not at exactly the same time (to 383 reduce load peaks), I've added some simple functionality to the 384 memcached protocol in the "flush_all" command that allows you to 385 specify a time at which the flush will actually occur (instead of 386 always at the moment the "flush_all" command is received). 387 3882005-05-25 389 * patch from Peter van Dijk <[email protected]> to make 390 stderr unbuffered, for running under daemontools 391 3922005-04-04 393 * patch from Don MacAskill <[email protected]> 'flush_all' doesn't 394 seem to work properly. Basically, if you try to add a key which 395 is present, but expired, the store fails but the old key is no 396 longer expired. 397 398 * release 1.1.12 399 4002005-01-14 401 * Date: Thu, 18 Nov 2004 15:25:59 -0600 402 From: David Phillips <[email protected]> 403 Here is a patch to configure.ac and Makefile.am to put the man page in 404 the correct location. Trying to install the man page from a 405 subdirectory results in the subdirectory being used in the install 406 path (it tries to install to doc/memcached.1). This is the correct 407 thing to do: 408 409 - create a Makefile.am in the doc directory that installs the man page 410 with man_MANS 411 - modify Makefile.am in the base directory to reference the doc 412 directory using SUBDIRS 413 - modify the AC_CONFIG_FILES macro in configure.ac to output the 414 Makefile in doc 415 416 4172005-01-14 418 * pidfile saving support from Lisa Seelye <[email protected]>, sent 419 Jan 13, 2005 420 4212005-01-14 422 * don't delete libevent events that haven't been added (the deltimer) 423 patch from Ted Schundler <[email protected]> 424 4252004-12-10 426 * document -M and -r in manpage (Doug Porter <[email protected]>) 427 4282004-07-22 429 * fix buffer overflow in items.c with 250 byte keys along with 430 other info on the same line going into a 256 byte char[]. 431 thanks to Andrei Nigmatulin <[email protected]> 432 4332004-06-15 434 * immediate deletes weren't being unlinked a few seconds, 435 preventing "add" commands to the same key in that time period. 436 thanks to Michael Alan Dorman <[email protected]> for the 437 bug report and demo script. 438 4392004-04-30 440 * released 1.1.11 441 4422004-04-24 443 * Avva: Add a new command line option: -r , to maximize core file 444 limit. 445 4462004-03-31 447 * Avva: Use getrlimit and setrlimit to set limits for number of 448 simultaneously open file descriptors. Get the current limits and 449 try to raise them if they're not enough for the specified (or the 450 default) setting of max connections. 451 4522004-02-24 453 * Adds a '-M' flag to turn off tossing items from the cache. 454 (Jason Titus <[email protected]>) 455 4562004-02-19 (Evan) 457 * Install manpage on "make install", etc. 458 4592003-12-30 (Brad) 460 * remove static build stuff. interferes with PAM setuid stuff 461 and was only included as a possible fix with the old memory 462 allocator. really shouldn't make a difference. 463 * add Jay Bonci's Debian scripts and manpage 464 * release version 1.1.10 465 4662003-12-01 (Avva) 467 * New command: flush_all, causes all existing items to 468 be invalidated immediately (without deleting them from 469 memory, merely causing memcached to no longer return them). 4702003-10-23 471 * Shift init code around to fix daemon mode on FreeBSD, 472 * and drop root only after creating the server socket (to 473 * allow the use of privileged ports) 474 * version 1.1.10pre 475 4762003-10-09 477 * BSD compile fixes from Ryan T. Dean 478 * version 1.1.9 479 4802003-09-29 481 * ignore SIGPIPE at start instead of crashing in rare cases it 482 comes up. no other code had to be modified, since everything 483 else is already dead-connection-aware. (avva) 484 4852003-09-09 (Avva, Lisa Marie Seelye <[email protected]>) 486 * setuid support 487 4882003-09-05 (Avva) 489 * accept all new connections in the same event (so we work with ET epoll) 490 * mark all items as clsid=0 after slab page reassignment to please future 491 asserts (on the road to making slab page reassignment work fully) 492 4932003-08-12 (Brad Fitzpatrick) 494 * use TCP_CORK on Linux or TCP_PUSH on BSD 495 * only use TCP_NODELAY when we don't have alternatives 496 4972003-08-10 498 * disable Nagel's Algorithm (TCP_NODELAY) for better performance (avva) 499 5002003-08-10 501 * support multiple levels of verbosity (-vv) 502 5032003-08-10 (Evan Martin) 504 * Makefile.am: debug, optimization, and static flags are controlled 505 by the configure script. 506 * configure.ac: 507 - allow specifying libevent directory with --with-libevent=DIR 508 - check for malloc.h (unavailable on BSDs) 509 - check for socklen_t (unavailable on OSX) 510 * assoc.c, items.c, slabs.c: Remove some unused headers. 511 * memcached.c: allow for nonexistence of malloc.h; #define a POSIX 512 macro to import mlockall flags. 513 5142003-07-29 515 * version 1.1.7 516 * big bug fix: item exptime 0 meant expire immediately, not never 517 * version 1.1.8 518 5192003-07-22 520 * make 'delete' take second arg, of time to refuse new add/replace 521 * set/add/replace/delete can all take abs or delta time (delta can't 522 be larger than a month) 523 5242003-07-21 525 * added doc/protocol.txt 526 5272003-07-01 528 * report CPU usage in stats 529 5302003-06-30 531 * version 1.1.6 532 * fix a number of obscure bugs 533 * more stats reporting 534 5352003-06-10 536 * removing use of Judy; use a hash. (judy caused memory fragmentation) 537 * shrink some structures 538 * security improvements 539 * version 1.1.0 540 5412003-06-18 542 * changing maxsize back to an unsigned int 543 5442003-06-16 545 * adding PHP support 546 * added CONTRIBUTORS file 547 * version 1.0.4 548 5492003-06-15 550 * forgot to distribute website/api (still learning auto*) 551 * version 1.0.3 552 5532003-06-15 554 * update to version 1.0.2 555 * autoconf/automake fixes for older versions 556 * make stats report version number 557 * change license from GPL to BSD 558 559Fri, 13 Jun 2003 10:05:51 -0700 Evan Martin <[email protected]> 560 561 * configure.ac, autogen.sh, Makefile.am: Use autotools. 562 * items.c, memcached.c: #include <time.h> for time(), 563 printf time_t as %lu (is this correct?), 564 minor warnings fixes. 565 566