You are not logged in Log in Join
You are here: Home » Members » Toby Dickenson » cache

Log in
Name

Password

 

ZODB Cache Reimplementation

Why?

The original ZODB object cache performs poorly under memory pressure, using much processor time and allowing memory usage to grow out of control. This project is a reimplementation to avoid these problems. It may also deliver small performance improvements even if memory pressure is low.

For further information see the FAQ, or some implementation notes, or API changes.

This work was sponsored by my employer, Gemini Data Loggers.

Current Version

The most up to date version of this code is in Zope CVS. The first release to include these changes is 2.6 alpha 1.

Version 4; 2002-02-01

A implementation which uses strong references for recently used active (non-ghost) objects. If not accessed for a while they are deactivated (ghostified) and the cache's reference turned into a weak reference, to move the ghost out of memory as soon as possible. This version also supports ZClases.

The only difference between this and version 3 is a fix in cPickleCache.c for compiling with Microsoft Visual C, contributed by Lawrence Hudson.

This version (and all previous versions below) is based on Zope 2.4.1. It is distributed as three source files, plus one file of small diffs to other Zope sources.

  1. cPickleCache.c
  2. cPersistence.c (same as in version 3)
  3. cPersistence.h (same as in version 3)
  4. cache.diff (same as in version 3)

Version 3; 2002-01-28

This was the first stable version of the final algorithm.

  1. cPickleCache.c
  2. cPersistence.c
  3. cPersistence.h
  4. cache.diff

Version 2; 2002-01-25

A implementation of Variant A, which uses weak references..

  1. cPickleCache.c
  2. cPersistence.c
  3. cPersistence.h
  4. cache.diff

Version 1; 2002-01-25

A implementation of Variant B (the variant that does not need weak references, as discussed in the zodb-dev list).

  1. cPickleCache.c
  2. cPersistence.c
  3. cPersistence.h
  4. cache.diff