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

Reply via email to