Good to see people looking into this... On 9/8/06, Rob Kinyon <[EMAIL PROTECTED]> wrote: > mst asked me to write up a justification as to why DBD::Multiplex > should be completely disregarded when developing the master/slave > round-robin code.
As one of people that saw Tim's talk at YAPC::Europe about this (and then mentioned it to mst, oops :-)) I am not surprised by your findings - the point of DBD::M is not really that useful for DBIC as it stands as its use case(s) is somewhat muddled and different to probably what most people would generally want from some kind of >1 $dbh setup. It seems to me it'd be much easier than having the DBD layer guess what's going on to put the selection of ro v rw handles into DBIC direct based on the richer semantics available in the ORM. Even something that wasn't attempting failover that had a single $dbh_rw handle and @dbh_ro that it randomly picked from would be great. If a transaction were on go via $dbh_rw. I for one could use this right now; are there any plans to implement something basic like this to begin with? I'd be happy to contribute with either code or cash sponsoring someone. P > I was asked to look at added transactional capabilities to > DBD::Multiplex when dealing with master-slave situations. When I dove > in, I found a complete mess. Basically, the structure is as follows: > > 1) You create a set of $dbh's and designate one as the master. > 2) It kinda does the right thing when dealing with prepare(). > 3) The multiplexing code is identical regardless of whether you're > multiplexing over a drh, dbh, or sth. > 4) There is no round-robining - it's just broadcast, broadcast to > masters, or broadcast to slaves. > 5) There are no tests. I started writing some tests and found bugs > everywhere I looked. > 6) There are no comments. > > #3 is the biggest issue - $dbh's and $sth's are treated identically > when they cannot be. > > Frankly, it would be faster to just create a new DBD::Multiplex from > scratch, taking lessons learned, than to attempt to clean up the > current DBD::Multiplex. > > Thanks, > Rob _______________________________________________ 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/[email protected]/
