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

Reply via email to