Skip to main content

Cache ZCatalog results with memcached - experimental

Project description

Introduction
============
collective.catalogcache uses memcached to cache ZCatalog search results.

Caching is transparent. Invalidation code is called at appropriate
places to ensure that the state of the cached results remains consistent.

The use of memcached enables the safe use of caching in a distributed
environment.

*** WARNING ***
collective.catalogcache is a big plaster to put over your site while you
determine why things are slow. Use in production is recommended for the brave /
foolhardy.

Requirements
============
Zope 2.9.6 - Zope 2.10.6. Other versions are possibly supported but not
tested.
memcached. Any recent version should work. Download from
http://www.danga.com/memcached.
python-memcached. Download from
http://pypi.python.org/pypi/python-memcached.

If memcached or python-memcached is not available the catalog will
function as usual.

Installation
============
A buildout is provided at
http://dev.plone.org/collective/browser/collective.catalogcache/trunk/buildout.cfg.
The buildout is for Plone 3, but the product can be used with plain Zope.

To enable collective.catalogcache for an existing installation ensure
that the following is present in your buildout.cfg

In the eggs section collective.catalogcache

In the zcml section collective.catalogcache

You must edit your zope.conf to declare eg.
<environment>
MEMCACHE_SERVERS 127.0.0.1:11211,127.0.0.1:11212
</environment>

You *must* ensure that different logical Zope instances do not use the
same memcache servers. Naturally Zeo clients *must* use the same set of servers.

Run ./bin/buildout -Nv and restart your instance.

Notes on memcached
==================
memcached is designed to run in a distributed environment, hence it is a
good idea to run at least two instances on a single machine. More is possibly
better depending on your hardware.

To start up two memcached instances for use with the example
MEMCACHE_SERVERS declaration do

memcached -u root -d -m 256 -l 0.0.0.0 -p 11211
memcached -u root -d -m 256 -l 0.0.0.0 -p 11212

Changelog
=========

0.2
---

* Better documentation

* Handle infrequent KeyErrors gracefully

0.1
---

* Initial release

Project details


Download files

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

Source Distribution

collective.catalogcache-0.2.tar.gz (11.8 kB view hashes)

Uploaded Source

Built Distribution

collective.catalogcache-0.2-py2.4.egg (21.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page