FileCacheManager 1.0 released
FileCacheManager, created by Chris McDonough, Jens Vagelpohl and Paul Winkler, is a Zope Cache Manager compatible with the ZCacheable API as implemented by the other cache managers delivered with Zope (RAM Cache Manager, Accelerated HTTP Cache Manager). Items associated with a File Cache Manager are stored on the file system in a hierarchy of directories similar to other dedicated caching products such as Squid.
Features
- Uses the
filestream_iterator
to serve content faster
Apart from the ability to cache items on the file system the FCM has another advantage over other Zope products that store content on disk, it is using the new ZPublisher file iterator for serving the file system content. The file iterator serves content in a memory-conserving way and it does not hold on to a ZODB database connection while streaming the data, thus freeing it earlier and allowing more concurrent access to Zope. Serving speed is also improved vastly over serving the data directly from the ZODB.
- Transaction awareness
Transaction-awareness is built into the filesystem-related operations. That means a file is only written out to the file system if the transaction that wants to write it commits in full. Conversely, a file that is supposed to be deleted as part of an invalidation operation will only be deleted if the invalidation transaction commits cleanly.
- Highly configurable
All filesystem-related options can be configured using knobs in the ZMI interface, so there is full control over where the cache files are written. It is also possible to directly influence the way the cache files are named using a TAL expression. By default cache files are named using a md5 hash of the object's path in the ZODB.
Where to get it
- CVS at cvs.zope.org/Products/FileCacheManager
- Tarballs at www.dataflake.org/software/filecachemanager
- Bug collector at www.dataflake.org/tracker