[Catalyst] DBIC v Cache: What are catalyst best practices for caching DBIC results (with relationships included)

Matt S Trout dbix-class at trout.me.uk
Thu Nov 22 18:29:46 GMT 2007


On Wed, Nov 21, 2007 at 02:42:11PM +0300, Oleg Pronin wrote:
> Unfortunately, it's too slow for production use.

The production users beg to differ.

DBIx::Class::Cursor::Cached is designed specifically to cache data in order
to deal with a situation where your primary constraint is the time the
query takes on the database.

If object construction overhead is also a problem, then obviously you need
a different approach - at that stage I'd look at keeping the objects
themselves around in memory since if construction is an important overhead,
revivication of the object graph from a cache is often pretty suboptimal
as well.

Caching is just another form of performance optimisation - you use it to
deal with bottlenecks. If a particular stage isn't a bottleneck, it's
irrelevant whether the cache bypasses that stage or not :)

-- 
      Matt S Trout       Catalyst and DBIx::Class consulting and support -
   Technical Director      http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Christmas fun in collectable card game form -
                           http://www.shadowcat.co.uk/resources/2007_trading/



More information about the Catalyst mailing list