Install
Works with Drupal: 7.xUsing Composer to manage Drupal site dependencies
Downloads
Release notes
The DrupalCon Austin Release
Memcache 7.x-1.1 has been over two years in the making. There’s been a huge number of bug fixes and improvements made in that time (scroll down for the full list). If you’re relying on Memcache in production, this is an important upgrade. As with all production upgrades, however; please, test carefully first!
We have done comprehensive load testing to ensure there have been no performance regressions. In fact, our tests show a 1-5% performance improvement when upgrading from 7.x-1.0 to 7.x-1.1. This improvement is mainly due to up to a 10% reduction in the amount of data transferred from memcache when loading a standard Drupal webpage.
The loadtests we used to generate the above numbers are now freely available at https://github.com/tag1consulting/drupal-loadtest. They assist in pre-populating a site with data, and then 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.
What’s changed since 7.x-1.0
Overview
Bugs affecting performance and the flushing of caches have been fixed. Better insight into memcache performance is offered through the much improved memcache_admin module. The steps for installation and configuration are far better documented in the heavily rewritten README.txt file. Common mistakes will trigger helpful errors and warnings to further assist with installation and configuration. And much more!
Breakdown
- Properly flush cache when page_cache_without_database is enabled.
#1469362: Page cache never expires if page_cache_without_database is enabled - Only collect statistics when show_memcache_statistics is enabled.
#1733674: Memcache unconditionally collects statistics data for usage by the memcache_admin module - Remove headers parameter not used in drupal 7.x.
#1427256: memcache "set" function declaration differs from the abstract "set" function declaration - Hash long keys; defaults to using sha1, configurable with memcache_key_hash_algorithm.
#1613622: Memcache not using urlencode on $prefix or $bin in dmemcache_key() when strlen($full_key) > 250 - Add configuration link on admin module page.
#1633948: Provide a link to the settings page in .info file - Fix statistics for default cluster.
#1150042: The default statistics report won't work with multiple bins set to the default cluster - Log connection errors in watchdog.
#1830496: Better logging and handling of connect errors - Fix undefined index notices on admin pages.
#1331018: Undefined index notices on memcache stats page when using PECL memcached - Fix typo and PHP notices.
#1750476: PHP Notices and probably more - Support sockets with PECL memcached extension.
#1690130: Memcache fails to connect when using Unix sockets and PECL Memcached - Cleanup expires handling.
#1150072: Review expires handling - Fixed ->data does not get unserialized.
#1362316: $user->data does not get unserialized - add default value for lock_id in memcache-lock-code.inc to match core lock.inc
#1958556: Missing default value for argument - Update user access in memcache-session.inc.
#1908348: Session backend fails to update user access time - Initialize user timezone in memcache-session.inc.
#1785744: Memcache Session Handler does not initialize user timezone - fix PHP notice in memcache-session.inc.
[#282446] - Properly unserialize user data in memcache-session.inc.
#1362316: $user->data does not get unserialized - Fix session handling for anonymous users and drupal_set_message().
#656838: [META] Port sessions to D7 - Completely remove outdated INSTALLATION.txt.
#1452966: INSTALLATION.txt outdated and redundant - Major installation and other documentation cleanup in README.txt, including:
#1597788: No way to clear cache in Memcache Admin
#1974088: Add documentation for memcache-lock.inc
#1472332: Implications of enabling compression
#1536222: Update README.txt for Drupal 7, remove INSTALLATION.txt - properly flush temporary items.
#1634506: Allow expired items to make use of stampede protection; ensure that memcache optionally behaves like DB cache - be sure locking system is available before using.
#2099893: Race condition in locking framework - format evictions on admin stats page.
#2045353: Small formatting issue - manually release stampede protection lock when done.
#1303384: Memcache cache gets dropped silently and lock_wait issues - Fix rendering of admin stats page.
#2112139: Fix rendering of stats table - Fix typo in lockInit call.
#2099893: Race condition in locking framework - Remove accidental commit of .orig file.
#2045353: Small formatting issue - Improve error reporting when there are installation problems.
#1172754: Add a warning on module_enable() if the module - properly display stats when using unix sockets
#1547390: Unix sockets confuse the stats page - fix paths to memcache-session.inc
#1908358: Incorrect require_once path in memcache-session.inc - be sure memcache backend is used during tests
#1995556: Tests do not check if memcache backends are being used - standardize/improve statistics collection and display
#2204075: Improve statistics collection - use hook_user_update instead of hook_user
#1984226: Session handler uses D6 hook_user() instead of D7 hook_user_update() - Simplify requirements test of memcache configuration.
#2202975: Error on status page: "Failed to store and retreive data with memcache." - Coding style cleanup.
#1974812: Code style improvements - Fixed memcache statistics tests.
#1863996: Fix all tests - Properly use Drupal timers.
#2210127: Undefined index: dmemcache in timer_read() - Remove old reference to dmemcache_collect_stats().
#1733674: Memcache unconditionally collects statistics data for usage by the memcache_admin module - Remove unused $success variable.
#2209395: Unused variable in dmemcache_get() - Warn if an unsupported PECL version is being used.
#1806120: Wildcard flushes do nothing - Check PECL version on install.
#1806120: Wildcard flushes do nothing - Fix exception in memcache-session.inc.
#1863996: Fix all tests - Lighten memcache version warning.
#2278021: Lighten The Memcache Version Warning - Set cache->created with microtime(), not time().
#2259103: set cache->created with microtime(), not time() - Cleanup admin stats overview page.
#1547390: Unix sockets confuse the stats page