Install
Works with Drupal: 7.xUsing Composer to manage Drupal site dependencies
Downloads
Release notes
Happy New Year Release
It's 2015, when did you last update the Drupal memcache module? Now's a good time to update your site to the latest and greatest release: 7.x-1.4. This release is recommended for everyone using the Drupal memcache module as it includes many significant bug fixes and enhancements.
Always carefully test the update process and new release first in a development and/or staging environment before updating your production environment!
Highlights
- By default the memcached server only stores objects up to 1MiB in size. Prior to 7.x-1.4, attempts to store larger objects failed silently. With this release, the Drupal memcache module intelligently splits over-sized objects into smaller pieces which can be stored by and retrieved from the memcached server.
- A number of important bug fixes to the memcache lock.inc implementation ensure that only the thread owning a lock can renew or release it.
- Lock stampede protection has been enhanced to support fine-grained control of which locks are affected. By default, stampede protection is now disabled on incompatible locks.
- When a key length is greater than the maximum allowed, preserve as much of the original key name as possible when shrinking the key to aid in debugging.
- It's now possible to configure Memcached SASL as described more fully in the README.
7.x-1.4-rc/beta release history
- 7.x-1.4-rc1 (December 29th, 2014)
- 7.x-1.4-beta1 ( December 20th, 2014)
What's changed since 7.x-1.4-rc1
- #2329437: Is README step 6 only for Advanced Configuration?
Improve installation documentation, explaining that configuration of servers and bins is optional (for smaller, single-server websites)
What’s changed since 7.x-1.3
Overview
The biggest new feature in this release is support for caching objects >1 MiB in size. However, there are many other important fixes and improvements listed below. If you're using the Drupal memcache module, you should update.
Details
- #435694: >1M data writes incompatible with memcached (memcached -I 32M -m32)
Allow caching of data larger than 1MiB by splitting large items into pieces. - #1613622: Memcache not using urlencode on $prefix or $bin in dmemcache_key() when strlen($full_key) > 250
Preserve as much of long key names as possible to aid in debugging. - #2329437: Is README step 6 only for Advanced Configuration?
Improve installation documentation, explaining that configuration of servers and bins is optional (for smaller, single-server websites) - #2335727: Setting $cache->created with msec precision borks page caching.
Move microtime timestamp into $cache->create_microtime. - #2361001: Page cache never expires if authcache_builtin_cache_without_database is enabled
Make authcache-compatible check for bootstrap level when testing of variables are loaded. - #2367609: Locking framework fails silently for locks with names longer than 250 characters
Warn if stampede protection is enabled with core database locking. - #2376391: Call to undefined function lock_acquire()
Be sure lock_acquire() is available after attempted bootstrap. - #2377587: Allow to disable memcache stampede protection for specific cache bins and CIDs
Stampede protection can be disabled on a per-bin basis. Disable some by default. - #2379883: lock_acquire might be checking the wrong thing when extending a lock lease
fix broken logic and order of precedence error in lock_acquire so lock renewal works correctly - #2379897: lock_release does not check for lock_id : it's actually a forced lock break
confirm lock_id before releasing lock - #2381829: Ignore stampede protection ignoring for the theme registry and schema as well as rules.
Disable stampede protection for other incompatible tables/cids. - #2382225: How to use Memcached SASL?
Support Memcached SASL - #2387793: Notice in install profile
Fix a notice triggered when installing memcache from an install profile.
Testing
The memcache module is a critical component of even the largest Drupal websites, so we take testing seriously. We have done comprehensive load testing of this release to ensure that there have been no performance regressions. Our load tests are freely available at https://github.com/tag1consulting/drupal-loadtest. There you will find scripts that assist in pre-populating a site with data and running a jMeter loadtest suite against the test website. While the tests aren’t comprehensive and only focus on common core functionality, they provide fantastic insight and detail into the performance differences between releases. (For example, the load tests caught a number of issues and greatly improved the final patch committed for #435694: >1M data writes incompatible with memcached (memcached -I 32M -m32), ensuring that this new functionality doesn't cause a performance penalty for websites that don't have over-sized cache items.)