MDL-37145 caching: noted recommendation for dedicated memcache servers
authorSam Hemelryk <sam@moodle.com>
Sun, 22 Jun 2014 22:57:12 +0000 (10:57 +1200)
committerSam Hemelryk <sam@moodle.com>
Sun, 22 Jun 2014 22:57:15 +0000 (10:57 +1200)
Several reports have been made about the unexpected purging of entire
memcached servers when MUC is configured to use Memcache and caches
get purged.
This is expected and occurs because the memcache extenions don't
provide isolated containers. Moodle data is stored along side any other
data in the cache and when caches get purged all data gets removed
whether it belongs to Moodle or not.

The docs cover this point and here I've added notes about this to both
config-dist.php and cache/README.md

cache/README.md
config-dist.php

index 7745f0e..083f4e6 100644 (file)
@@ -266,3 +266,7 @@ There are a couple of considerations to using this method:
 * If you have configured your cache before setting $CFG->altcacheconfigpath you will need to copy it from moodledata/muc/config.php to the destination you specified.
 * This allows you to share a cache config between sites.
 * It also allows you to use unit tests to test your sites cache config.
+
+Please be aware that if you are using Memcache or Memcached it is recommended to use dedicated Memcached servers.
+When caches get purged the memcached servers you have configured get purged, any data stored within them whether it belongs to Moodle or not will be removed.
+If you are using Memcached for sessions as well as caching/testing and caches get purged your sessions will be removed prematurely and users will be need to start again.
\ No newline at end of file
index 82b1295..ab30c75 100644 (file)
@@ -248,6 +248,11 @@ $CFG->admin = 'admin';
 //         less reliable. Use memcached where possible or if you encounter
 //         session problems. **
 //
+// Please be aware that when selecting either Memcached or Memcache for sessions that it is advised to use a dedicated
+// memcache server. The memcache and memcached extensions do not provide isolated environments for individual uses.
+// Using the same server for other purposes (MUC for example) can lead to sessions being prematurely removed should
+// the other uses of the server purge the cache.
+//
 // Following setting allows you to alter how frequently is timemodified updated in sessions table.
 //      $CFG->session_update_timemodified_frequency = 20; // In seconds.
 //