12016-08-23 2 * ChangeLog moved from Google Code to Github Wiki, it's now available at: 3 https://github.com/memcached/memcached/wiki/ReleaseNotes 4 52010-10-11 6 * ChangeLog is no longer being updated. 7 See http://code.google.com/p/memcached/wiki/ReleaseNotes 8 92009-04-10 10 11 * *critical bugfix*. In 1.2.7 under multithreaded mode, memcached 12 would never restart accepting connections after hitting the 13 maximum connection limit. 14 152009-04-02 16 17 * Fix: Rewrote stat buffer handling (Trond) 18 192009-03-31 20 21 * Feature: -b option for configuring backlog 22 23 * Feature: stats settings 24 25 * Fix: binary stat alignment bug (bug26) 26 27 * Fix: buffer overflow in stats (bug27) 28 29 * Fix: recycle memory more aggressively (bug14) 30 31 * Fix: incr validation (bug31) 32 33 * Fix: 64-bit incr/decr delta problem (bug21) 34 35 * Fix: Ascii UDP set (bug36) 36 37 * Fix: stats slabs' used chunks (bug29) 38 39 * Fix: stats reset resetting more (bug22) 40 41 * Misc: More tests, documentation, cleanliness (godliness) 42 43 * Stable merge (stats, debuggability, listen bugs) 44 452009-03-11 46 47 * Protocol: Binary complete (Dustin, Trond, Toru, etc...) 48 49 * Performance: improvements from facebook (Dormando) 50 51 * Performance: per-thread stats (Trond) 52 53 * Performance: Hash expansion in its own thread (Trond) 54 55 * Stats: Lots of new stats (Dustin) 56 57 * Bug fixes (various) 58 59 See the 1.3.2 release notes or revision control for more detail. 60 612008-09-06 62 * Display error status on listen failures (Dormando) 63 64 * Remove managed instance code. Incomplete/etc. (Dormando) 65 66 * Handle broken IPV6 stacks better (Brian Aker) 67 68 * Generate warnings on setsockopt() failures (Brian Aker) 69 70 * Fix some indentation issues (Brian Aker) 71 72 * UDP/TCP can be disabled by setting their port to zero (Brian Aker) 73 74 * Zero out libevent thread structures before use (Ricky Zhou) 75 76 * New stat: Last accessed time for last evicted item per slab class. 77 (Dormando) 78 79 * Use a dedicated socket accept thread (Facebook) 80 81 * Add -R option. Limit the number of requests processed by a connection 82 at once. Prevents starving other threads if bulk loading. (Facebook) 83 842008-07-29 [Version 1.2.6 released] 85 862008-07-24 [Version 1.2.6-rc1 released] 87 88 * Add support for newer automake (Facebook) 89 90 * DTrace support for Solaris/etc (Trond Norbye) 91 92 * LRU tests (Steve Yen) 93 94 * Handle negative length items properly (Dormando) 95 96 * Don't leave stale data after failed set attempts (Dormando) 97 98 * Fix refcount leaks, which would result in OOM's on all sets 99 (Dormando) 100 101 * Fix buffer overruns (Dustin Sallings, Tomash Brechko) 102 103 * Fix memory corruption with CAS (Dustin Sallings) 104 1052008-06-11 106 107 * Fix -k to work with -d. (reported by Gary Zhu) 108 1092008-03-02 [Version 1.2.5-rc1 released] 110 111 * Add per-item-class tracking of evictions and OOM errors (dormando) 112 113 * Optimize item_alloc() a little (dormando) 114 115 * Give 'SERVER_ERROR out of memory' errors more context (dormando) 116 117 * Enable usage of large memory pages under solaris 118 ([email protected]) 119 120 * Enable UDP by default, clean up server socket code 121 ([email protected]) 122 123 * 'noreply' support (Tomash Brechko) 124 125 * IPv6 support, and IPv6 multi-interface support ([email protected]) 126 127 * Add compiler options for Sun Studio compilers with --enable-threads 128 ([email protected]) 129 130 * Add --enable-64bit for mulitarget platforms ([email protected]) 131 132 * Use gettimeofday(2) instead of time(2). 133 134 * Make -k option work (Tomash Brechko) 135 136 * Fix chunk slab alignment ([email protected]) 137 1382007-12-06 [Version 1.2.4 released] 139 1402007-12-05 141 142 * Fix compilation on panther (JS and Dormando) 143 144 * More CAS tests (Chris Goffinet) 145 146 * Final fixes for all 1.2.4 features are in, -rc2 sent out. 147 1482007-11-19 [Version 1.2.4-rc1 released] 149 1502007-11-19 Dormando <[email protected]> 151 152 * Patch series from Tomash Brechko <[email protected]>: 153 Minor fixes and optimizations. 154 155 * Patches from Chris, Dustin, and Dormando to fix CAS. 156 157 * Prepping for 1.2.4 release. 158 1592007-11-13 Dormando <[email protected]> 160 161 * Adjusted patch from js <[email protected]>: Compile on OS X Panther 162 and earlier. 163 1642007-11-12 Steven Grimm <[email protected]> 165 166 * Patch from Tomash Brechko <[email protected]>: Always send 167 "SERVER_ERROR out of memory" when memory exhausted. 168 1692007-10-15 Paul Lindner <[email protected]> 170 171 * Patch from David Bremner <[email protected]> that implements 172 a new option "-a" which takes an octal permission mask 173 (like chmod) sets the permissions on the unix domain socket 174 (specified by "-s"). 175 1762007-10-03 Paul Lindner <[email protected]> 177 * Incorporate "cas" operation developed by Dustin 178 Sallings <[email protected]> This change allows you 179 to do atomic changes to an existing key. 180 181 * Fix for stats.evictions not incrementing 182 when exptime == 0 items are kicked off the cache. 183 from Jean-Francois BUSTARRET <[email protected]>. 184 185 * Fix for do_item_cachedump() which was returning 186 an incorrect timestamp. 187 188 * Switch to unsigned 64-bit increment/decrement counters 189 from Evan Miller and Dustin Sallings. 190 191 * Add append command support written by Filipe Laborde. 192 Thread safe version plus prepend command from Maxim Dounin 193 <[email protected]> 194 195 * The memcached-tool script can now display stats. Patch 196 provided by Dan Christian <[email protected]> 197 198 * Fix for Unix Domain sockets on FreeBSD 199 FreeBSD's sendmsg() requires msg_name in msghdr structure 200 to be NULL if not used, setting msg_namelen to 0 isn't enough. 201 Patch from Maxim Dounin <[email protected]> 202 2032007-08-21 Paul Lindner <[email protected]> 204 * Incorporate increment patch from Evan Miller 205 <[email protected]> to define increment overflow 206 behavior. 207 2082007-08-07 Leon Brocard <[email protected]> 209 * Bring the memcached.1 manpage up to date 210 2112007-08-06 Paul Lindner <[email protected]> 212 * Fix crash when using -P and -d flags on x86_64 213 with latest libevent release. 214 2152007-07-08 Steven Grimm <[email protected]> 216 217 * Item stats commands weren't thread-safe; wrap them with locks 218 when compiled in multithreaded mode. 219 * The "stats items" command now works again; it broke with the 220 introduction of the powers-of-N chunk size change. 221 2222007-07-06 [Version 1.2.3 released] 223 2242007-06-19 Paul Lindner <[email protected]> 225 226 * Solaris portability fixes from Trond Norbye 227 2282007-05-29 Paul Lindner <[email protected]> 229 230 * Properly document evictions statistic value 231 2322007-05-10 Paul Lindner <[email protected]> 233 234 * Flesh out tests for unix domain sockets and binary data. 235 * Update rpm spec file to run tests 236 2372007-05-07 Paul Lindner <[email protected]> 238 239 * Fix compilation bug on freebsd 6.x (and maybe others) 240 * Update RPM spec file per redhat bugzilla #238994 241 * Move unistd.h to memcached.h to get rid of warnings 242 * Add string.h to thread.c to get correctly prototyped strerror() 243 2442007-05-04 Paul Lindner <[email protected]> 245 246 * Add fedora/redhat style init script and RPM spec file 247 2482007-05-12 [Version 1.2.2 released] 249 2502007-04-16 Steven Grimm <[email protected]> 251 252 * Command tokenizer performance and cleanliness improvement. 253 Patch contributed by Paolo Borelli <[email protected]>. 254 2552007-04-16 Paul Lindner <[email protected]> 256 257 * Add notes to README about MacOS, libevent and kqueue. 258 259 * Windows Patch integration -- part 1, warnings elimination. 260 2612007-04-12 Paul Lindner <[email protected]> 262 263 * Allow changes to the verbosity level of the server with a new 264 "verbosity" command and some compiler cleanups. 265 Patch contributed by Paolo Borelli <[email protected]>. 266 2672007-04-08 Paul Lindner <[email protected]> 268 269 * Add cleanup patch from "Tim Yardley" <[email protected]> to 270 clean up source spacing issues, fix -Wall warnings, add some 271 null checks, adds asserts at the top of each function for any 272 use of conn *c without checking to see if c is NULL first. 273 274 * Also adjust clean-whitespace.pl to clean *.ac files. Add 275 script to test-suite to test for tabs. 276 2772007-04-04 Paul Lindner <[email protected]> 278 279 * Add clarification of flush_all in the protocol docs 280 from Elizabeth Mattijsen <[email protected]> 281 2822007-03-31 Paul Lindner <[email protected]> 283 284 * Add patch from Eli Bingham <[email protected]> to 285 re-enable the -n switch to memcached. 286 2872007-03-20 Paul Lindner <[email protected]> 288 * Add patch to collect eviction statistics from 289 Jean-Francois BUSTARRET <[email protected]>. 290 291 * Updated docs, added new test cases for t/stats.t 292 2932007-03-18 Paul Lindner <[email protected]> 294 295 * Add more test cases using larger buffer sizes up to and greater 296 than 1MB. 297 298 * Remove unused parameter to item_size_ok() 299 300 * Use a single printf() in usage() 301 302 * Add a failing test for conforming with maximum connections. 303 3042007-03-17 305 * crash fix from Thomas van Gulick <[email protected]> in 306 conn_shrink(), passing &ptr, instead of ptr to realloc(). 307 3082007-03-05 Paul Lindner <[email protected]> 309 * Fix a number of places where (s)printf calls were using unsigned 310 or signed formats that did not match their arguments. 311 312 * Add support for stdbool.h and stdint.h to use the bool and 313 uint8_t types. 314 315 * Major refactoring - move API calls for assoc/items/slabs to 316 their own individual header files. Add appropriate const and 317 static declarations as appropriate. 318 319 * Avoid type-punning. Do a more efficient realloc inside the 320 conn_shrink routine. 321 322 * Fix overflow bug where uninitialized access to slabclass caused 323 size-0 mallocs during slab preallocation. 324 325 * Use EXIT_SUCCESS/EXIT_FAILURE constants. 326 327 * Convert some sprintf calls to snprintf to protect against 328 buffer overflows. 329 330 * Explicitly compare against NULL or zero in many places. 331 3322007-03-05 333 * Steven Grimm <[email protected]>: Per-object-type stats collection 334 support. Specify the object type delimiter with the -D command line 335 option. Turn stats gathering on and off with "stats detail on" and 336 "stats detail off". Dump the per-object-type details with 337 "stats detail dump". 338 3392007-03-01 340 * Steven Grimm <[email protected]>: Fix an off-by-one error in the 341 multithreaded version's message passing code. 342 3432006-12-23 344 * fix expirations of items set with absolute expiration times in 345 the past, before the server's start time. bug was introduced in 346 1.2.0 with rel_time_t. Thanks to Adam Dixon 347 <[email protected]> for the bug report and test case! 348 3492006-11-26 350 * Steven Grimm <[email protected]>: Performance improvements: 351 352 Dynamic sizing of hashtable to reduce collisions on very large 353 caches and conserve memory on small caches. 354 355 Only reposition items in the LRU queue once a minute, to reduce 356 overhead of accessing extremely frequently-used items. 357 358 Stop listening for new connections until an existing one closes 359 if we run out of available file descriptors. 360 361 Command parser refactoring: Add a single-pass tokenizer to cut 362 down on string scanning. Split the command processing into 363 separate functions for easier profiling and better readability. 364 Pass key lengths along with the keys in all API functions that 365 need keys, to avoid needing to call strlen() repeatedly. 366 3672006-11-25 368 * Steve Peters <[email protected]>: OpenBSD has a malloc.h, 369 but warns to use stdlib.h instead 370 3712006-11-22 372 * Steven Grimm <[email protected]>: Add support for multithreaded 373 execution. Run configure with "--enable-threads" to enable. See 374 doc/threads.txt for details. 375 3762006-11-13 377 * Iain Wade <[email protected]>: Fix for UDP responses on non-"get" 378 commands. 379 3802006-10-15 381 * Steven Grimm <[email protected]>: Dynamic sizing of hashtable to 382 reduce collisions on very large caches and conserve memory on 383 small caches. 384 3852006-10-13 386 * Steven Grimm <[email protected]>: New faster hash function. 387 3882006-09-20 389 390 * don't listen on UDP by default; more clear message when UDP port in use 391 3922006-09-09 393 * release 1.2.0 (along with 1.1.13, which is the more tested branch) 394 395 nobody has run 1.2.0 in production, to my knowledge. facebook has run 396 their pre-merge-with-trunk version, but bugs were discovered (and fixed) 397 after the merge. there might be more. you've been warned. :) 398 3992006-09-04 400 * improved autoconf libevent detection, from the Tor project. 401 4022006-09-03 403 * test suite and lot of expiration, delete, flush_all, etc corner 404 case bugs fixed (Brad Fitzpatrick) 405 4062006-09-02 407 * Nathan Neulinger <[email protected]>: fix breakage in expiration code 408 causing expiration times to not be processed correctly. 409 4102006-08-21 411 * Nathan Neulinger <[email protected]>: fix incompatibilities with 412 unix domain socket support and the UDP code and clean up stale 413 sockets 414 4152006-08-20 416 * Nathan Neulinger <[email protected]>: unix domain socket support 417 4182006-05-03 419 * Steven Grimm <[email protected]>: big bunch of changes: 420 big CPU reduction work, UDP-based interface, increased memory 421 efficiency. (intertwined patch, committed all together) 422 <https://lists.danga.com/pipermail/memcached/2006-May/002164.html> 423 or see svn commit logs 424 4252006-04-30 426 * River Tarnell: autoconf work for Solaris 10. Brad: 427 merge and verify it works on Nexenta. 428 4292006-03-04 430 * avva: bucket/generation patch (old, but Brad's just finally 431 committing it) 432 4332006-01-01 434 * Brad Fitzpatrick <[email protected]>: allocate 1 slab per class 435 on start-up, to avoid confusing users with out-of-memory errors 436 later. this is 18 MB of allocation on start, unless max memory 437 allowed with -m is lower, in which case only the smaller slab 438 classes are allocated. 439 4402005-08-09 441 * Elizabeth Mattijsen <[email protected]>: needed a way to flush all 442 memcached backend servers, but not at exactly the same time (to 443 reduce load peaks), I've added some simple functionality to the 444 memcached protocol in the "flush_all" command that allows you to 445 specify a time at which the flush will actually occur (instead of 446 always at the moment the "flush_all" command is received). 447 4482005-05-25 449 * patch from Peter van Dijk <[email protected]> to make 450 stderr unbuffered, for running under daemontools 451 4522005-04-04 453 * patch from Don MacAskill <[email protected]> 'flush_all' doesn't 454 seem to work properly. Basically, if you try to add a key which 455 is present, but expired, the store fails but the old key is no 456 longer expired. 457 458 * release 1.1.12 459 4602005-01-14 461 * Date: Thu, 18 Nov 2004 15:25:59 -0600 462 From: David Phillips <[email protected]> 463 Here is a patch to configure.ac and Makefile.am to put the man page in 464 the correct location. Trying to install the man page from a 465 subdirectory results in the subdirectory being used in the install 466 path (it tries to install to doc/memcached.1). This is the correct 467 thing to do: 468 469 - create a Makefile.am in the doc directory that installs the man page 470 with man_MANS 471 - modify Makefile.am in the base directory to reference the doc 472 directory using SUBDIRS 473 - modify the AC_CONFIG_FILES macro in configure.ac to output the 474 Makefile in doc 475 476 4772005-01-14 478 * pidfile saving support from Lisa Seelye <[email protected]>, sent 479 Jan 13, 2005 480 4812005-01-14 482 * don't delete libevent events that haven't been added (the deltimer) 483 patch from Ted Schundler <[email protected]> 484 4852004-12-10 486 * document -M and -r in manpage (Doug Porter <[email protected]>) 487 4882004-07-22 489 * fix buffer overflow in items.c with 250 byte keys along with 490 other info on the same line going into a 256 byte char[]. 491 thanks to Andrei Nigmatulin <[email protected]> 492 4932004-06-15 494 * immediate deletes weren't being unlinked a few seconds, 495 preventing "add" commands to the same key in that time period. 496 thanks to Michael Alan Dorman <[email protected]> for the 497 bug report and demo script. 498 4992004-04-30 500 * released 1.1.11 501 5022004-04-24 503 * Avva: Add a new command line option: -r , to maximize core file 504 limit. 505 5062004-03-31 507 * Avva: Use getrlimit and setrlimit to set limits for number of 508 simultaneously open file descriptors. Get the current limits and 509 try to raise them if they're not enough for the specified (or the 510 default) setting of max connections. 511 5122004-02-24 513 * Adds a '-M' flag to turn off tossing items from the cache. 514 (Jason Titus <[email protected]>) 515 5162004-02-19 (Evan) 517 * Install manpage on "make install", etc. 518 5192003-12-30 (Brad) 520 * remove static build stuff. interferes with PAM setuid stuff 521 and was only included as a possible fix with the old memory 522 allocator. really shouldn't make a difference. 523 * add Jay Bonci's Debian scripts and manpage 524 * release version 1.1.10 525 5262003-12-01 (Avva) 527 * New command: flush_all, causes all existing items to 528 be invalidated immediately (without deleting them from 529 memory, merely causing memcached to no longer return them). 5302003-10-23 531 * Shift init code around to fix daemon mode on FreeBSD, 532 * and drop root only after creating the server socket (to 533 * allow the use of privileged ports) 534 * version 1.1.10pre 535 5362003-10-09 537 * BSD compile fixes from Ryan T. Dean 538 * version 1.1.9 539 5402003-09-29 541 * ignore SIGPIPE at start instead of crashing in rare cases it 542 comes up. no other code had to be modified, since everything 543 else is already dead-connection-aware. (avva) 544 5452003-09-09 (Avva, Lisa Marie Seelye <[email protected]>) 546 * setuid support 547 5482003-09-05 (Avva) 549 * accept all new connections in the same event (so we work with ET epoll) 550 * mark all items as clsid=0 after slab page reassignment to please future 551 asserts (on the road to making slab page reassignment work fully) 552 5532003-08-12 (Brad Fitzpatrick) 554 * use TCP_CORK on Linux or TCP_PUSH on BSD 555 * only use TCP_NODELAY when we don't have alternatives 556 5572003-08-10 558 * disable Nagel's Algorithm (TCP_NODELAY) for better performance (avva) 559 5602003-08-10 561 * support multiple levels of verbosity (-vv) 562 5632003-08-10 (Evan Martin) 564 * Makefile.am: debug, optimization, and static flags are controlled 565 by the configure script. 566 * configure.ac: 567 - allow specifying libevent directory with --with-libevent=DIR 568 - check for malloc.h (unavailable on BSDs) 569 - check for socklen_t (unavailable on OSX) 570 * assoc.c, items.c, slabs.c: Remove some unused headers. 571 * memcached.c: allow for nonexistence of malloc.h; #define a POSIX 572 macro to import mlockall flags. 573 5742003-07-29 575 * version 1.1.7 576 * big bug fix: item exptime 0 meant expire immediately, not never 577 * version 1.1.8 578 5792003-07-22 580 * make 'delete' take second arg, of time to refuse new add/replace 581 * set/add/replace/delete can all take abs or delta time (delta can't 582 be larger than a month) 583 5842003-07-21 585 * added doc/protocol.txt 586 5872003-07-01 588 * report CPU usage in stats 589 5902003-06-30 591 * version 1.1.6 592 * fix a number of obscure bugs 593 * more stats reporting 594 5952003-06-10 596 * removing use of Judy; use a hash. (judy caused memory fragmentation) 597 * shrink some structures 598 * security improvements 599 * version 1.1.0 600 6012003-06-18 602 * changing maxsize back to an unsigned int 603 6042003-06-16 605 * adding PHP support 606 * added CONTRIBUTORS file 607 * version 1.0.4 608 6092003-06-15 610 * forgot to distribute website/api (still learning auto*) 611 * version 1.0.3 612 6132003-06-15 614 * update to version 1.0.2 615 * autoconf/automake fixes for older versions 616 * make stats report version number 617 * change license from GPL to BSD 618 619Fri, 13 Jun 2003 10:05:51 -0700 Evan Martin <[email protected]> 620 621 * configure.ac, autogen.sh, Makefile.am: Use autotools. 622 * items.c, memcached.c: #include <time.h> for time(), 623 printf time_t as %lu (is this correct?), 624 minor warnings fixes. 625 626