Automake improvements
Misc documentation fixes
Misc updates to startup scripts
lru_crawler enable blocks until ready (test failure)
Record and report on time spent in listen_disabled (time_in_listen_disabled_us)
Update manpage for -I command. Make it more clear
Fix display of settings.hot_lru_pct in stats settings
No longer edits the output of ps while processing arguments
No longer crashes when failing to give arguments to some start args
Fix memcached unable to bind to an ipv6 address
No longer attempts bind to same interface more than once
fixed libevent version check: add the missing 1.0.x version check
fix off-by-one in LRU crawler, causing rare segfault
remove another invalid assert(), fixes clang and pedantic compilation
Changes in memcached 1.4.15
Overview
This is a somewhat experimental release which pushes thread
performance even more than before. Since this is a more
experimental release than usual, and contains no other major
fixes or features, we urge some caution for important
deployments. We feel as though it is high quality software, but
please take caution and do slow rollouts or testing. Thanks!
Fixes
* Add some mild thread documentation
* README.md was missing from dist tarball
* Issue 286 : --disable-coverage drops "-pthread" option
* Reduce odds of getting OOM errors in some odd cases
New Features
Thread scalability is much improved for reads, and somewhat
improved for writes. In a pure read-only situation on a dual
socket six core NUMA machine I've tested key fetch rates around
13.6 million keys per second.
More tuning is necessary and you'd get significant lag at that
rate, but that shows the theoretical limit of the locks.
Changes in memcached 1.4.14
Overview
Fixes
* fix compile issue with new GCC's
* Added support for automake-1.12 in autogen.sh
* Use Markdown for README.
* Fixed issue with invalid binary protocol touch command
expiration time (http://code.google.com/p/memcached/issues/detail?id=275)
* Define touch command probe for DTrace support
* Error and exit if we don't have hugetlb support (changes -L behavior)
* update reassign/automove documentation
* Remove USE_SYSTEM_MALLOC define
* slab rebalancing from random class
* split slab rebalance and automove threads
* pre-split slab pages into slab freelists
* Avoid race condition in test during pid creation by blind retrying
New Features
This release mainly features a number of small bugfixes, but
also a change to slab rebalance behavior.
Previously, if you moved a slab page from one slab to another,
you had to wait until that new page was fully used before moving
another one. That wait has been removed, and you can move pages
as fast as the system can ... move them.
A few new features as well:
slabs reassign
slabs reassign -1 15 will pick a page from any slab class and move it to class 15.
slabs automove
slabs automove 2 now enables an ultra aggressive page
reassignment algorithm. On every eviction, it will try to move a
slab page into that class. You should never run this in
production unless you have a very, very good idea of what's
going to happen. For most people who have spurious evictions
everywhere, you'll end up mass evicting random data and hurting
your hit rate. It can be useful to momentarily enable for
emergency situations, or if you have a data access pattern where
evictions should never happen.
This was work we were planning on doing already, but twitter's
rewrite has people presently interested in trying it out. You've
been warned.
* Use a monotonically increasing timer
* Immediately expire items when given a negative expiration time
* Fix memcached-tool to print about all slabs
* Properly daemonize memcached for debian
* Don't permanently close UDP listeners on error
* Allow memcached-init to start multiple instances (not recommended)
* Issue 214: Search for network libraries before searching for libevent
* Issue 213: Search for clock_gettime in librt
* Issue 115: accont for CAS in item_size_ok
* Fix incredibly slim race for maxconns handler. Should no longer hang ever
* Issue 183: Reclaim items dead by flush_all
* Issue 200: Don't fire dtrace probe as the last thing in a function
Critical bug affecting multithreaded builds
Many minor bugfixes, new statistics, minor new features.
Major crash fixes, DTrace support, minor updates.
Minor bugfixes, build support for opensolaris, ipv6 support,
"noreply" mode for many commands, largepage support for solaris.
Made out of memory errors more clear and added eviction/OOM tracking
per slab class.
Many bug and platform fixes since 1.2.2. New threading support for
stat queries. New commands 'append', 'prepend', 'gets', and 'cas'.
2007-04-16 Steven Grimm <sgrimm@facebook.com>
* Command tokenizer performance and cleanliness improvement.
Patch contributed by Paolo Borelli <paolo.borelli@gmail.com>.
2007-04-16 Paul Lindner <lindner@inuus.com>
* Add notes to README about MacOS, libevent and kqueue.
* Windows Patch integration -- part 1, warnings elimination.
2007-04-12 Paul Lindner <lindner@mirth.inuus.com>
* Allow changes to the verbosity level of the server with a new
"verbosity" command and some compiler cleanups.
Patch contributed by Paolo Borelli <paolo.borelli@gmail.com>.
2007-04-08 Paul Lindner <lindner@inuus.com>
* Add cleanup patch from "Tim Yardley" <liquid@haveheart.com> to
clean up source spacing issues, fix -Wall warnings, add some
null checks, adds asserts at the top of each function for any
use of conn *c without checking to see if c is NULL first.
* Also adjust clean-whitespace.pl to clean *.ac files. Add
script to test-suite to test for tabs.
2007-04-04 Paul Lindner <lindner@inuus.com>
* Add clarification of flush_all in the protocol docs
from Elizabeth Mattijsen <liz@dijkmat.nl>
2007-03-31 Paul Lindner <lindner@inuus.com>
* Add patch from Eli Bingham <eli@pandora.com> to
re-enable the -n switch to memcached.
2007-03-20 Paul Lindner <lindner@inuus.com>
* Add patch to collect eviction statistics from
Jean-Francois BUSTARRET <jfbustarret@wat.tv>.
* Updated docs, added new test cases for t/stats.t
2007-03-18 Paul Lindner <lindner@inuus.com>
* Add more test cases using larger buffer sizes up to and greater
than 1MB.
* Remove unused parameter to item_size_ok()
* Use a single printf() in usage()
* Add a failing test for conforming with maximum connections.
2007-03-17
* crash fix from Thomas van Gulick <thomas@partyflock.nl> in
conn_shrink(), passing &ptr, instead of ptr to realloc().
2007-03-05 Paul Lindner <lindner@inuus.com>
* Fix a number of places where (s)printf calls were using unsigned
or signed formats that did not match their arguments.
* Add support for stdbool.h and stdint.h to use the bool and
uint8_t types.
* Major refactoring - move API calls for assoc/items/slabs to
their own individual header files. Add apropriate const and
static declarations as appropriate.
* Avoid type-punning. Do a more efficient realloc inside the
conn_shrink routine.
* Fix overflow bug where uninitialized access to slabclass caused
size-0 mallocs during slab preallocation.
* Use EXIT_SUCCESS/EXIT_FAILURE constants.
* Convert some sprintf calls to snprintf to protect against
buffer overflows.
* Explicitly compare against NULL or zero in many places.
2007-03-05
* Steven Grimm <sgrimm@facebook.com>: Per-object-type stats collection
support. Specify the object type delimiter with the -D command line
option. Turn stats gathering on and off with "stats detail on" and
"stats detail off". Dump the per-object-type details with
"stats detail dump".
2007-03-01
* Steven Grimm <sgrimm@facebook.com>: Fix an off-by-one error in the
multithreaded version's message passing code.
2006-12-23
* fix expirations of items set with absolute expiration times in
the past, before the server's start time. bug was introduced in
1.2.0 with rel_time_t. Thanks to Adam Dixon
<adamtdixon@gmail.com> for the bug report and test case!
memcached is a high-performance, distributed memory object caching
system, generic in nature, but intended for use in speeding up dynamic
web applications by alleviating database load.