12008-09-06 2 3 * Display error status on listen failures (Dormando) 4 5 * Remove managed instance code. Incomplete/etc. (Dormando) 6 7 * Handle broken IPV6 stacks better (Brian Aker) 8 9 * Generate warnings on setsockopt() failures (Brian Aker) 10 11 * Fix some indentation issues (Brian Aker) 12 13 * UDP/TCP can be disabled by setting their port to zero (Brian Aker) 14 15 * Zero out libevent thread structures before use (Ricky Zhou) 16 17 * New stat: Last accessed time for last evicted item per slab class. 18 (Dormando) 19 20 * Use a dedicated socket accept thread (Facebook) 21 22 * Add -R option. Limit the number of requests processed by a connection 23 at once. Prevents starving other threads if bulk loading. (Facebook) 24 252008-07-29 [Version 1.2.6 released] 26 272008-07-24 [Version 1.2.6-rc1 released] 28 29 * Add support for newer automake (Facebook) 30 31 * DTrace support for Solaris/etc (Trond Norbye) 32 33 * LRU tests (Steve Yen) 34 35 * Handle negative length items properly (Dormando) 36 37 * Don't leave stale data after failed set attempts (Dormando) 38 39 * Fix refcount leaks, which would result in OOM's on all sets 40 (Dormando) 41 42 * Fix buffer overruns (Dustin Sallings, Tomash Brechko) 43 44 * Fix memory corruption with CAS (Dustin Sallings) 45 462008-06-11 47 48 * Fix -k to work with -d. (reported by Gary Zhu) 49 502008-03-02 [Version 1.2.5-rc1 released] 51 52 * Add per-item-class tracking of evictions and OOM errors (dormando) 53 54 * Optimize item_alloc() a little (dormando) 55 56 * Give 'SERVER_ERROR out of memory' errors more context (dormando) 57 58 * Enable usage of large memory pages under solaris 59 ([email protected]) 60 61 * Enable UDP by default, clean up server socket code 62 ([email protected]) 63 64 * 'noreply' support (Tomash Brechko) 65 66 * IPv6 support, and IPv6 multi-interface support ([email protected]) 67 68 * Add compiler options for Sun Studio compilers with --enable-threads 69 ([email protected]) 70 71 * Add --enable-64bit for mulitarget platforms ([email protected]) 72 73 * Use gettimeofday(2) instead of time(2). 74 75 * Make -k option work (Tomash Brechko) 76 77 * Fix chunk slab alignment ([email protected]) 78 792007-12-06 [Version 1.2.4 released] 80 812007-12-05 82 83 * Fix compilation on panther (JS and Dormando) 84 85 * More CAS tests (Chris Goffinet) 86 87 * Final fixes for all 1.2.4 features are in, -rc2 sent out. 88 892007-11-19 [Version 1.2.4-rc1 released] 90 912007-11-19 Dormando <[email protected]> 92 93 * Patch series from Tomash Brechko <[email protected]>: 94 Minor fixes and optimisations. 95 96 * Patches from Chris, Dustin, and Dormando to fix CAS. 97 98 * Prepping for 1.2.4 release. 99 1002007-11-13 Dormando <[email protected]> 101 102 * Adjusted patch from js <[email protected]>: Compile on OS X Panther 103 and earlier. 104 1052007-11-12 Steven Grimm <[email protected]> 106 107 * Patch from Tomash Brechko <[email protected]>: Always send 108 "SERVER_ERROR out of memory" when memory exhausted. 109 1102007-10-15 Paul Lindner <[email protected]> 111 112 * Patch from David Bremner <[email protected]> that implements 113 a new option "-a" which takes an octal permission mask 114 (like chmod) sets the permissions on the unix domain socket 115 (specified by "-s"). 116 1172007-10-03 Paul Lindner <[email protected]> 118 * Incorporate "cas" operation developed by Dustin 119 Sallings <[email protected]> This change allows you 120 to do atomic changes to an existing key. 121 122 * Fix for stats.evictions not incrementing 123 when exptime == 0 items are kicked off the cache. 124 from Jean-Francois BUSTARRET <[email protected]>. 125 126 * Fix for do_item_cachedump() which was returning 127 an incorrect timestamp. 128 129 * Switch to unsigned 64-bit increment/decrement counters 130 from Evan Miller and Dustin Sallings. 131 132 * Add append command support written by Filipe Laborde. 133 Thread safe version plus prepend command from Maxim Dounin 134 <[email protected]> 135 136 * The memcached-tool script can now display stats. Patch 137 provided by Dan Christian <[email protected]> 138 139 * Fix for Unix Domain sockets on FreeBSD 140 FreeBSD's sendmsg() requires msg_name in msghdr structure 141 to be NULL if not used, setting msg_namelen to 0 isn't enough. 142 Patch from Maxim Dounin <[email protected]> 143 1442007-08-21 Paul Lindner <[email protected]> 145 * Incorporate incrememnt patch from Evan Miller 146 <[email protected]> to define increment overflow 147 behavior. 148 1492007-08-07 Leon Brocard <[email protected]> 150 * Bring the memcached.1 manpage up to date 151 1522007-08-06 Paul Lindner <[email protected]> 153 * Fix crash when using -P and -d flags on x86_64 154 with latest libevent release. 155 1562007-07-08 Steven Grimm <[email protected]> 157 158 * Item stats commands weren't thread-safe; wrap them with locks 159 when compiled in multithreaded mode. 160 * The "stats items" command now works again; it broke with the 161 introduction of the powers-of-N chunk size change. 162 1632007-07-06 [Version 1.2.3 released] 164 1652007-06-19 Paul Lindner <[email protected]> 166 167 * Solaris portability fixes from Trond Norbye 168 1692007-05-29 Paul Lindner <[email protected]> 170 171 * Properly document evictions statistic value 172 1732007-05-10 Paul Lindner <[email protected]> 174 175 * Flesh out tests for unix domain sockets and binary data. 176 * Update rpm spec file to run tests 177 1782007-05-07 Paul Lindner <[email protected]> 179 180 * Fix compilation bug on freebsd 6.x (and maybe others) 181 * Update RPM spec file per redhat bugzilla #238994 182 * Move unistd.h to memcached.h to get rid of warnings 183 * Add string.h to thread.c to get correctly prototyped strerror() 184 1852007-05-04 Paul Lindner <[email protected]> 186 187 * Add fedora/redhat style init script and RPM spec file 188 1892007-05-12 [Version 1.2.2 released] 190 1912007-04-16 Steven Grimm <[email protected]> 192 193 * Command tokenizer performance and cleanliness improvement. 194 Patch contributed by Paolo Borelli <[email protected]>. 195 1962007-04-16 Paul Lindner <[email protected]> 197 198 * Add notes to README about MacOS, libevent and kqueue. 199 200 * Windows Patch integration -- part 1, warnings elimination. 201 2022007-04-12 Paul Lindner <[email protected]> 203 204 * Allow changes to the verbosity level of the server with a new 205 "verbosity" command and some compiler cleanups. 206 Patch contributed by Paolo Borelli <[email protected]>. 207 2082007-04-08 Paul Lindner <[email protected]> 209 210 * Add cleanup patch from "Tim Yardley" <[email protected]> to 211 clean up source spacing issues, fix -Wall warnings, add some 212 null checks, adds asserts at the top of each function for any 213 use of conn *c without checking to see if c is NULL first. 214 215 * Also adjust clean-whitespace.pl to clean *.ac files. Add 216 script to test-suite to test for tabs. 217 2182007-04-04 Paul Lindner <[email protected]> 219 220 * Add clarification of flush_all in the protocol docs 221 from Elizabeth Mattijsen <[email protected]> 222 2232007-03-31 Paul Lindner <[email protected]> 224 225 * Add patch from Eli Bingham <[email protected]> to 226 re-enable the -n switch to memcached. 227 2282007-03-20 Paul Lindner <[email protected]> 229 * Add patch to collect eviction statistics from 230 Jean-Francois BUSTARRET <[email protected]>. 231 232 * Updated docs, added new test cases for t/stats.t 233 2342007-03-18 Paul Lindner <[email protected]> 235 236 * Add more test cases using larger buffer sizes up to and greater 237 than 1MB. 238 239 * Remove unused parameter to item_size_ok() 240 241 * Use a single printf() in usage() 242 243 * Add a failing test for conforming with maximum connections. 244 2452007-03-17 246 * crash fix from Thomas van Gulick <[email protected]> in 247 conn_shrink(), passing &ptr, instead of ptr to realloc(). 248 2492007-03-05 Paul Lindner <[email protected]> 250 * Fix a number of places where (s)printf calls were using unsigned 251 or signed formats that did not match their arguments. 252 253 * Add support for stdbool.h and stdint.h to use the bool and 254 uint8_t types. 255 256 * Major refactoring - move API calls for assoc/items/slabs to 257 their own individual header files. Add apropriate const and 258 static declarations as appropriate. 259 260 * Avoid type-punning. Do a more efficient realloc inside the 261 conn_shrink routine. 262 263 * Fix overflow bug where uninitialized access to slabclass caused 264 size-0 mallocs during slab preallocation. 265 266 * Use EXIT_SUCCESS/EXIT_FAILURE constants. 267 268 * Convert some sprintf calls to snprintf to protect against 269 buffer overflows. 270 271 * Explicitly compare against NULL or zero in many places. 272 2732007-03-05 274 * Steven Grimm <[email protected]>: Per-object-type stats collection 275 support. Specify the object type delimiter with the -D command line 276 option. Turn stats gathering on and off with "stats detail on" and 277 "stats detail off". Dump the per-object-type details with 278 "stats detail dump". 279 2802007-03-01 281 * Steven Grimm <[email protected]>: Fix an off-by-one error in the 282 multithreaded version's message passing code. 283 2842006-12-23 285 * fix expirations of items set with absolute expiration times in 286 the past, before the server's start time. bug was introduced in 287 1.2.0 with rel_time_t. Thanks to Adam Dixon 288 <[email protected]> for the bug report and test case! 289 2902006-11-26 291 * Steven Grimm <[email protected]>: Performance improvements: 292 293 Dynamic sizing of hashtable to reduce collisions on very large 294 caches and conserve memory on small caches. 295 296 Only reposition items in the LRU queue once a minute, to reduce 297 overhead of accessing extremely frequently-used items. 298 299 Stop listening for new connections until an existing one closes 300 if we run out of available file descriptors. 301 302 Command parser refactoring: Add a single-pass tokenizer to cut 303 down on string scanning. Split the command processing into 304 separate functions for easier profiling and better readability. 305 Pass key lengths along with the keys in all API functions that 306 need keys, to avoid needing to call strlen() repeatedly. 307 3082006-11-25 309 * Steve Peters <[email protected]>: OpenBSD has a malloc.h, 310 but warns to use stdlib.h instead 311 3122006-11-22 313 * Steven Grimm <[email protected]>: Add support for multithreaded 314 execution. Run configure with "--enable-threads" to enable. See 315 doc/threads.txt for details. 316 3172006-11-13 318 * Iain Wade <[email protected]>: Fix for UDP responses on non-"get" 319 commands. 320 3212006-10-15 322 * Steven Grimm <[email protected]>: Dynamic sizing of hashtable to 323 reduce collisions on very large caches and conserve memory on 324 small caches. 325 3262006-10-13 327 * Steven Grimm <[email protected]>: New faster hash function. 328 3292006-09-20 330 331 * don't listen on UDP by default; more clear message when UDP port in use 332 3332006-09-09 334 * release 1.2.0 (along with 1.1.13, which is the more tested branch) 335 336 nobody has run 1.2.0 in production, to my knowledge. facebook has run 337 their pre-merge-with-trunk version, but bugs were discovered (and fixed) 338 after the merge. there might be more. you've been warned. :) 339 3402006-09-04 341 * improved autoconf libevent detection, from the Tor project. 342 3432006-09-03 344 * test suite and lot of expiration, delete, flush_all, etc corner 345 case bugs fixed (Brad Fitzpatrick) 346 3472006-09-02 348 * Nathan Neulinger <[email protected]>: fix breakage in expiration code 349 causing expiration times to not be processed correctly. 350 3512006-08-21 352 * Nathan Neulinger <[email protected]>: fix incompatabilities with 353 unix domain socket support and the UDP code and clean up stale 354 sockets 355 3562006-08-20 357 * Nathan Neulinger <[email protected]>: unix domain socket support 358 3592006-05-03 360 * Steven Grimm <[email protected]>: big bunch of changes: 361 big CPU reduction work, UDP-based interface, increased memory 362 efficiency. (intertwined patch, committed all together) 363 <http://lists.danga.com/pipermail/memcached/2006-May/002164.html> 364 or see svn commit logs 365 3662006-04-30 367 * River Tarnell: autoconf work for Solaris 10. Brad: 368 merge and verify it works on Nexenta. 369 3702006-03-04 371 * avva: bucket/generation patch (old, but Brad's just finally 372 committing it) 373 3742006-01-01 375 * Brad Fitzpatrick <[email protected]>: allocate 1 slab per class 376 on start-up, to avoid confusing users with out-of-memory errors 377 later. this is 18 MB of allocation on start, unless max memory 378 allowed with -m is lower, in which case only the smaller slab 379 classes are allocated. 380 3812005-08-09 382 * Elizabeth Mattijsen <[email protected]>: needed a way to flush all 383 memcached backend servers, but not at exactly the same time (to 384 reduce load peaks), I've added some simple functionality to the 385 memcached protocol in the "flush_all" command that allows you to 386 specify a time at which the flush will actually occur (instead of 387 always at the moment the "flush_all" command is received). 388 3892005-05-25 390 * patch from Peter van Dijk <[email protected]> to make 391 stderr unbuffered, for running under daemontools 392 3932005-04-04 394 * patch from Don MacAskill <[email protected]> 'flush_all' doesn't 395 seem to work properly. Basically, if you try to add a key which 396 is present, but expired, the store fails but the old key is no 397 longer expired. 398 399 * release 1.1.12 400 4012005-01-14 402 * Date: Thu, 18 Nov 2004 15:25:59 -0600 403 From: David Phillips <[email protected]> 404 Here is a patch to configure.ac and Makefile.am to put the man page in 405 the correct location. Trying to install the man page from a 406 subdirectory results in the subdirectory being used in the install 407 path (it tries to install to doc/memcached.1). This is the correct 408 thing to do: 409 410 - create a Makefile.am in the doc directory that installs the man page 411 with man_MANS 412 - modify Makefile.am in the base directory to reference the doc 413 directory using SUBDIRS 414 - modify the AC_CONFIG_FILES macro in configure.ac to output the 415 Makefile in doc 416 417 4182005-01-14 419 * pidfile saving support from Lisa Seelye <[email protected]>, sent 420 Jan 13, 2005 421 4222005-01-14 423 * don't delete libevent events that haven't been added (the deltimer) 424 patch from Ted Schundler <[email protected]> 425 4262004-12-10 427 * document -M and -r in manpage (Doug Porter <[email protected]>) 428 4292004-07-22 430 * fix buffer overflow in items.c with 250 byte keys along with 431 other info on the same line going into a 256 byte char[]. 432 thanks to Andrei Nigmatulin <[email protected]> 433 4342004-06-15 435 * immediate deletes weren't being unlinked a few seconds, 436 preventing "add" commands to the same key in that time period. 437 thanks to Michael Alan Dorman <[email protected]> for the 438 bug report and demo script. 439 4402004-04-30 441 * released 1.1.11 442 4432004-04-24 444 * Avva: Add a new command line option: -r , to maximize core file 445 limit. 446 4472004-03-31 448 * Avva: Use getrlimit and setrlimit to set limits for number of 449 simultaneously open file descriptors. Get the current limits and 450 try to raise them if they're not enough for the specified (or the 451 default) setting of max connections. 452 4532004-02-24 454 * Adds a '-M' flag to turn off tossing items from the cache. 455 (Jason Titus <[email protected]>) 456 4572004-02-19 (Evan) 458 * Install manpage on "make install", etc. 459 4602003-12-30 (Brad) 461 * remove static build stuff. interferes with PAM setuid stuff 462 and was only included as a possible fix with the old memory 463 allocator. really shouldn't make a difference. 464 * add Jay Bonci's Debian scripts and manpage 465 * release version 1.1.10 466 4672003-12-01 (Avva) 468 * New command: flush_all, causes all existing items to 469 be invalidated immediately (without deleting them from 470 memory, merely causing memcached to no longer return them). 4712003-10-23 472 * Shift init code around to fix daemon mode on FreeBSD, 473 * and drop root only after creating the server socket (to 474 * allow the use of privileged ports) 475 * version 1.1.10pre 476 4772003-10-09 478 * BSD compile fixes from Ryan T. Dean 479 * version 1.1.9 480 4812003-09-29 482 * ignore SIGPIPE at start instead of crashing in rare cases it 483 comes up. no other code had to be modified, since everything 484 else is already dead-connection-aware. (avva) 485 4862003-09-09 (Avva, Lisa Marie Seelye <[email protected]>) 487 * setuid support 488 4892003-09-05 (Avva) 490 * accept all new connections in the same event (so we work with ET epoll) 491 * mark all items as clsid=0 after slab page reassignment to please future 492 asserts (on the road to making slab page reassignment work fully) 493 4942003-08-12 (Brad Fitzpatrick) 495 * use TCP_CORK on Linux or TCP_PUSH on BSD 496 * only use TCP_NODELAY when we don't have alternatives 497 4982003-08-10 499 * disable Nagel's Algorithm (TCP_NODELAY) for better performance (avva) 500 5012003-08-10 502 * support multiple levels of verbosity (-vv) 503 5042003-08-10 (Evan Martin) 505 * Makefile.am: debug, optimization, and static flags are controlled 506 by the configure script. 507 * configure.ac: 508 - allow specifying libevent directory with --with-libevent=DIR 509 - check for malloc.h (unavailable on BSDs) 510 - check for socklen_t (unavailable on OSX) 511 * assoc.c, items.c, slabs.c: Remove some unused headers. 512 * memcached.c: allow for nonexistence of malloc.h; #define a POSIX 513 macro to import mlockall flags. 514 5152003-07-29 516 * version 1.1.7 517 * big bug fix: item exptime 0 meant expire immediately, not never 518 * version 1.1.8 519 5202003-07-22 521 * make 'delete' take second arg, of time to refuse new add/replace 522 * set/add/replace/delete can all take abs or delta time (delta can't 523 be larger than a month) 524 5252003-07-21 526 * added doc/protocol.txt 527 5282003-07-01 529 * report CPU usage in stats 530 5312003-06-30 532 * version 1.1.6 533 * fix a number of obscure bugs 534 * more stats reporting 535 5362003-06-10 537 * removing use of Judy; use a hash. (judy caused memory fragmentation) 538 * shrink some structures 539 * security improvements 540 * version 1.1.0 541 5422003-06-18 543 * changing maxsize back to an unsigned int 544 5452003-06-16 546 * adding PHP support 547 * added CONTRIBUTORS file 548 * version 1.0.4 549 5502003-06-15 551 * forgot to distribute website/api (still learning auto*) 552 * version 1.0.3 553 5542003-06-15 555 * update to version 1.0.2 556 * autoconf/automake fixes for older versions 557 * make stats report version number 558 * change license from GPL to BSD 559 560Fri, 13 Jun 2003 10:05:51 -0700 Evan Martin <[email protected]> 561 562 * configure.ac, autogen.sh, Makefile.am: Use autotools. 563 * items.c, memcached.c: #include <time.h> for time(), 564 printf time_t as %lu (is this correct?), 565 minor warnings fixes. 566 567