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.
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]/
