Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A Zope2 product which provides facilities for storing sessions in memcached.

Project Description

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

Changes

0.2b3 (2011-11-21)

  • Extend MANIFEST.in to include other missing files (.gif, .pt, .txt)

0.2b2 (2011-11-21)

  • Fix source distribution by including README.txt and CHANGES.txt via manifest.
  • Include test runner in buildout and fix broken tests.

0.2b1 (2011-11-19)

  • Turn product into an egg and release on PyPI.
  • Implement a forced refresh of the in-process cache of memcache data at the end of transactions to avoid stale data.
  • mapping.py: Added ‘getContainerKey’ method to ‘MemCacheMapping’ in order to make it compatible with the API of the TemporaryFolder version (allows the session testing rig code can generate error messages).
  • Added (preliminary) RAMCacheManager replacement.
  • Removed proxy’s ‘create’ method, to allow other multiple of data to be stored. The session data container now handles instantiating the mapping.
  • Fixed the pickling of mappings correctly, instead of requiring that the proxy pick out the ‘data’ member.
  • Expanded API for IProxy to expose more of the memcached client API.

0.1 (2006-05-31)

  • CVS tag, ‘mcdutils-0_1’
  • Initial public release.
Release History

Release History

This version
History Node

0.2b3

History Node

0.2b2

History Node

0.2b1

History Node

0.2dev

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
Products.mcdutils-0.2b3.tar.gz (18.3 kB) Copy SHA256 Checksum SHA256 Source Nov 21, 2011

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting