Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close

The 'mcdutils' product supplies a replacement for the ZODB-based session data container supplied by the 'Transience' product, shipped with the Zope core. Rather than using a ZODB storage as the backing store for session data, as 'Transience' does, 'mcdutils' stores session data in a cluster of one or more 'memcached' servers.

This approach is a bit of a cheat, as it uses the daemons as primary stores, rather than as caches for results of an expensive query. Nevertheless, the semantics are not a bad match for typical session usage.

Installation

Ensure that the 'Products.mcdutils' egg is available on your Python path, e.g. by running 'easy_install Products.mcdutils' or including it in your buildout configuration.

Configuration

  1. After installation, add an instance of the 'MemCache Proxy' type from the ZMI add list, typically in the root of your ZODB, and give it a memorable name, e.g., 'mcproxy'.
  2. Configure the proxy using its "Properties" tab. Set the 'servers' property to a list of servers, one per line, where each line is in the format, '<host>:<port'. For instance, to use the 'memcached' running on the default port on your local machine, the value would be 'localhost:11211'.
  3. Add an instance of the 'MemCache Session Data Container' type, e.g. 'mcsdc' in the root.
  4. Configure that instance on its "Properties" tab to use the proxy you created above (e.g., '/mcproxy').
  5. Finally, on the main tab of your 'session_data_manager' instance (typically also in the root), change the 'Transient Object Container Path' value to match the location of your new proxy, e.g. '/mcsdc'.

You can test the memcached configuration on its "Test" tab. Enter one or more lines describing key-value pairs, where the "key" for your session is separated from the value by the first space character. Note that the session values are displayed below the form.

Attribution

Thanks go to Tres Seaver for implementing this product back in 2006.

Resources

Recent activity

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.