[Dbix-class] memcached

Tim Bunce Tim.Bunce at pobox.com
Thu Jan 25 11:54:55 GMT 2007


Just as a general FYI, look out for the new DBD::Forward 'stateless proxy'
driver in the next version of the DBI.

Adding a transport layer for it that also checks memcached should be simple.

Then use of memcached would be transparent.

Tim.

On Wed, Jan 24, 2007 at 09:57:09PM +0000, Ash Berlin wrote:
> Jim Spath wrote:
> >I was wondering if anyone had any suggestions for how to properly use 
> >memcached (http://www.danga.com/memcached/) with DBIx::Class.
> >
> >When one tries to store a resultset in memcached, you get the error 
> >"Can't store CODE items", which makes sense.
> >
> >It seems like I really only have one choice, which is to create a 
> >string/arrayref/hashref of the data returned from the resultset before 
> >storing it in memcached and using it in my code.  But that feels a 
> >little ugly to me.
> >
> >Any ideas?
> >
> >- Jim
> >
> >PS - I'm running running both DBIx::Class and Cache::Memcached under 
> >Catalyst, if it matters.
> 
> IIRC the CODE segment it is refereeing to is in fact the dbh deep down 
> in storage.
> 
> In the -current branch (which is due for release soon) we completely 
> refactored how objects and result sets keep hold of their 
> ResultSource's. Instead of storing a direct reference to a ResultSource, 
> they now store a tuple of (source_name,schema)
> 
> This has the added benefit that you can store only the source_name when 
> you put an RS into memcached, and re-attach it to the schema when you 
> read it out.
> 
> <http://dev.catalyst.perl.org/trac/bast/browser/branches/DBIx-Class-current/lib/DBIx/Class/ResultSourceHandle.pm>
> 
> The above file has freeze and thaw hooks for Storable, but bear in mind 
> that the schema is not automatically reattached (couldn't work out a 
> good way of doing it) so you'd have to come up with a way of expressing 
> it or just do something hacky like:
> 
> $newly_thawed_obj->_source_handle->schema($schema);
> 
> But please don't do that, cos it will break horribly in all kinds of cases.
> 
> </incoherent ramblings>
> 
> Ash
> 
> _______________________________________________
> List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
> Wiki: http://dbix-class.shadowcatsystems.co.uk/
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
> Searchable Archive: 
> http://www.mail-archive.com/dbix-class@lists.rawmode.org/



More information about the Dbix-class mailing list