[Catalyst] Cache::FastMmap and Catalyst::Plugin::Cache::Store::FastMmap

Bill Moseley moseley at hank.org
Tue Oct 16 18:44:29 GMT 2007


Should Catalyst::Plugin::Cache::Store::FastMmap be un-deprecated?

http://search.cpan.org/~nuffin/Catalyst-Plugin-Cache-Store-FastMmap-0.02/lib/Catalyst/Plugin/Cache/Store/FastMmap.pm

    This plugin is deprecated because Cache::FastMmap no longer needs
    to be wrapped to store plain values. It is still available on the
    CPAN for backwards compatibility and will still work with newer
    versions of Cache::FastMmap with a slight performance degredation.

I'm not exactly sure what the issue was, but I was not able to use
Cache::FastMmap as a "class" backend.

I believe one issue had to do with storing scalars.  That was fixed in
Cache::FastMmap Oct 2006 in version 1.13.

A still-existing problem was that Catalyst passes a hash reference of
options to the cache's new() method.  Cache::FastMmap only accepted a
list of arguments so that would generate:

    Reference found where even-sized list expected at
    /usr/local/lib/perl/5.8.8/Cache/FastMmap.pm

Rob fixed that in Cache::FastMmap yesterday in version 1.21.

Now, there still seems to be a remaining issue that the Cache plugin
passes a third argument (expires value) to the cache's set() method.  But,
Cache::FastMmap expects a hash (list) of arguments

    =item I<set($Key, $Value, [ \%Options ])>

    Store specified key/value pair into cache

    I<%Options> is optional, and is used by get_and_set() to control
    the locking behaviour. For now, you should probably ignore it
    unless you read the code to understand how it works


I'm not clear on the goals, but seems either FastMmap needs to be
updated again (which doesn't seem possible) or
Catalyst::Plugin::Cache::Store::FastMmap needs to remove the
DEPRECATED statement since it seems required to work with
Cache::FastMmap.



-- 
Bill Moseley
moseley at hank.org




More information about the Catalyst mailing list