Kevin Burton <[EMAIL PROTECTED]> wrote on 06/01/2005 02:31:54 PM: > I'd love to get some feedback here: > > > MySQL currently falls down by not providing a solution to transparent > > MySQL load > > balancing. There are some hardware solutions but these are expensive and > > difficult to configure. Also none of them provide any information > > about the > > current state of your MySQL configuration. For example they can't handle > > transparent query failover if a MySQL box fails. They also can't > > disconnect and > > reconnect to another host if the load grows too high. > > > > To that end I think it makes a lot of sense to have a MySQL > > client-side load > > balancer. > > > > This area is difficult to implement. There are a log of design issues.
> > Also the > > issues WRT distributed connection management start to make the problem > > difficult. > > > > The other day I had a bit of an epiphany on this topic. > > > .... > > http://peerfear.typepad.com/blog/2005/06/design_of_a_cli.html > > -- > > > Use Rojo (RSS/Atom aggregator)! - visit http://rojo.com. > See irc.freenode.net #rojo if you want to chat. > > Rojo is Hiring! - http://www.rojonetworks.com/JobsAtRojo.html > > Kevin A. Burton, Location - San Francisco, CA > AIM/YIM - sfburtonator, Web - http://peerfear.org/ > GPG fingerprint: 5FB2 F3E2 760E 70A8 6174 D393 E84D 8D04 99F1 4412 > > Wouldn't it make better sense to build on the NDB protocol and keep the native messaging infrastructure than it would be to build a similar wrapper from scratch? I mean to use the NDB communications on top of regular MySQL servers to provide for failover, hotswaps, and client registration. Haven't they already solved some or most of your client registration and reconnection issues during the development of that tool? There is also the "Federated" database engine that allows for queries to be run across more than one server at a time (not only can a query include a table from another database on the same server but also from a table in a database hosted on a different server). I think that between the two of those projects you have 80-90% of the wrapper you will need to run a MySQL cluster in a HA environment. The biggest problem I see is to prevent data collisions between servers (users connected to different servers trying to update the same record at the same time on different servers). Part of the NDB code has to contain the necessary cross-server locking messaging. And Federated servers will also do the same (at least to some degree). If you can get a JDBC version working, that would be great but I think the best dev path would be to re-use what is already there as much as possible. I am not discouraging the effort as much as I am suggesting another body of work to consider (or incorporate) in your design. Shawn Green Database Administrator Unimin Corporation - Spruce Pine