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