I'm coding up something that I think might be useful for memcached. It isn't very intrusive, but what is the correct branch I should be basing it on? I should probably get on IRC and chat with you guys more.
On Thu, Mar 12, 2009 at 3:09 PM, Toru Maesaka <tmaes...@gmail.com> wrote: > > Awesome! thanks big time for getting this out. > > One thing I'd like to add to Dustin's message is the space > efficiency option ("-C") for those that don't take advantage of > CAS. You can read more about this at: > > - http://torum.net/2008/12/more-memcached-space/ > - http://blogs.sun.com/trond/entry/not_using_cas_disable_them > > For those that are too busy to visit the above URLs, in brief you > can save 8 bytes per item if you start memcached with the -C > option. Do note though, that you're disabling CAS so you won't > be able to take benefit of CAS operations on that instance anymore. > > For those that don't care, well... happy caching! you can boost > the space efficiency of memcached and cache more data :) > > Cheers, > Toru > > On Thu, Mar 12, 2009 at 7:46 AM, Dustin <dsalli...@gmail.com> wrote: > > > > > > We've just released memcached beta 1.3.2. It's available for > > download immediately at the google code site: > > > > http://code.google.com/p/memcached/downloads > > > > There is one known bug (UDP support is somewhat lacking), but it was > > recently discovered by client authors attempting to implement the > > protocol, so I think we're good. > > > > We have quite a bit of confidence in this release as we've probably > > spent more effort testing it than implementing new features, but I > > wouldn't recommend you immediately switch all of your production sites > > over. I would, however, hope that you'd ignore my recommendations and > > do it anyway (or at least, test it really, really hard). > > > > Release notes are below. They're also in beta, so if something's > > wrong (you're not credited properly, or an important new feature was > > overlooked), be sure to let us know so we can get it right before the > > next release. > > > > Memcached 1.3 Beta 2 Release Notes > > ================================== > > > > Date: 2009-03-11 Wed > > > > > > Table of Contents > > ================= > > 1 New Features > > 1.1 Binary Protocol > > 1.1.1 Client Availability > > 1.2 Performance > > 1.3 Stats > > 1.3.1 New Stats > > 1.3.2 More Granular Stats > > 1.3.3 Removed stats > > 2 Bug Fixes > > 3 Development Info > > 4 Feedback > > 5 Contributors > > > > > > 1 New Features > > ~~~~~~~~~~~~~~~ > > > > 1.1 Binary Protocol > > ==================== > > > > A new feature that brings new features. We now have goodness like > > CAS-everywhere (e.g. delete), silent, but verifiable mutation > > commands, and many other wonders. > > > > Note that the original protocol is *not* deprecated. It will be > > supported indefinitely, although some new features may only be > > available in the binary protocol. > > > > 1.1.1 Client Availability > > -------------------------- > > > > Many clients for the binary protocol are available. > > > > * C > > > > libmemcached supports just about anything you can do with a > > memcached > > protocol and is the foundation for many clients in many different > > languages (which you can find linked from the project page). > > > > Project page: [http://tangent.org/552/libmemcached.html] > > > > * Java > > > > spymemcached has very good text and binary protocol support over > > IPv4 > > and IPv6 with a quite comprehensive test suite. > > > > Project page: [http://code.google.com/p/spymemcached/] > > > > * Protocol Spec > > > > NIH problem? Go write your own client. :) > > > > [http://cloud.github.com/downloads/dustin/memcached/protocol- > > binary.txt] > > > > > > 1.2 Performance > > ================ > > > > Lots of effort has gone into increasing performance. > > > > Facebook-inspired contention reduction with per-thread stat collection > > and the Facebook connection dispatch and thread starvation prevention > > contributions helped our scalability. > > > > Lock analysis also showed us that we had quite a bit of contention on > > hash table expansion which has been moved into its own thread, greatly > > improving the scalability on multicore hardware. > > > > A variety of smaller things also shook out of performance testing and > > analysis. > > > > 1.3 Stats > > ========== > > > > There are several new stats and some new ways to look at older stats. > > > > 1.3.1 New Stats > > ---------------- > > > > * Delete > > > > The global stats now contain statistics on deletion. > > > > delete_hits refers to the number of times a deletion command was > > issued which resulted in a modification of the cache while > > delete_misses refers to the number of times a deletion command was > > issued which had no effect due to a key mismatch. > > > > * Incr/Decr > > > > Incr and decr each have a pair of stats showing when a > > successful/unsuccessful incr occurred. incr_hits, incr_misses, > > decr_hits, and decr_misses show where such mutations worked and > > where > > they failed to find an existing object to mutate. > > > > * CAS > > > > CAS stats are tracked in three different ways: > > > > + cas_hits > > > > Number of attempts to CAS in a new value that worked. > > > > + cas_misses > > > > Number of attempts to CAS in a value where the key was not found. > > > > + cas_badval > > > > Number of attempts to CAS in a value where the CAS failed due to > > the > > object changing between the gets and the update. > > > > * slab class evicted time > > > > Per slab class, you can now see how recently accessed the most > > recent > > evicted data was. This is a useful gauge to determine eviction > > velocity on a slab so you can know whether evictions are healthy or > > if > > you've got a problem. > > > > > > 1.3.2 More Granular Stats > > -------------------------- > > > > Where possible, stats are now tracked individually by slab class. The > > following stats are available on a per-slab-class basis (via "stats > > slabs"): > > > > * get_hits > > * cmd_set > > * delete_hits > > * incr_hits > > * decr_hits > > * cas_hits > > * cas_badval > > > > (misses are obviously not available as they refer to a non-existent > > item) > > > > 1.3.3 Removed stats > > -------------------- > > > > "stats malloc" and "stats maps" have been removed. > > > > If you depended on these commands for anything, please let us know so > > we can bring them back in a more maintainable way. > > > > 2 Bug Fixes > > ~~~~~~~~~~~~ > > > > * Build fixes on ubuntu (gcc and icc) and FreeBSD > > * bad interaction with cas + incr (bug 15) > > * setuid failures are reported properly at daemonization time > > * decr overflow causing unnecessary truncation to 0 (bug 21) > > * failure to bind on Linux with no network (i.e. laptop dev) > > * some memcached-tool cleanup > > > > 3 Development Info > > ~~~~~~~~~~~~~~~~~~~ > > > > We've added a bunch of tests and new code coverage reports. > > > > All included code in this release has been tested against the > > following platforms (using the in-tree test suite): > > > > * ubuntu 8.10 (64-bit, both gcc and icc) > > * ubuntu 8.04 (32-bit) > > * OS X 10.5 (ppc and intel) > > * OpenSolaris 5.11 x86 (with and without dtrace) > > * FreeBSD 7 x86 > > > > 4 Feedback > > ~~~~~~~~~~~ > > > > Please try this version. Make it suffer. Report feedback to the list > > or file bugs as you find them. > > > > * Mailing List: [http://groups.google.com/group/memcached] > > * Issue Tracker: [http://code.google.com/p/memcached/issues/list] > > * IRC: #memcached on freenode > > > > 5 Contributors > > ~~~~~~~~~~~~~~~ > > > > The following people contributed to this release since 1.2.6. > > > > Note that this is based on who contributed changes, not how they were > > done. In many cases, a code snippet on the mailing list or a bug > > report ended up as a commit with your name on it. > > > > Note that this is just a summary of how many changes each person made > > which doesn't necessarily reflect how significant each change was. > > For details on what led up into a branch, either grab the git repo and > > look at the output of `git log 1.2.6..1.3.2` or use a web view. > > > > * Repo list: [http://code.google.com/p/memcached/wiki/ > > DevelopmentRepos] > > * Web View: [http://github.com/dustin/memcached/commits/1.3.2] > > > > 104 Dustin Sallings > > 49 Trond Norbye > > 32 Toru Maesaka > > 31 dormando > > 8 Steve Yen > > 7 hachi > > 6 Aaron Stone > > 6 Brian Aker > > 4 Victor Kirkebo > > 2 Ricky Zhou > > 1 Jonathan Bastien-Filiatrault > > 1 Evan Klitzke > > 1 Eric Lambert > > > > > > > -- "Be excellent to each other"