On Thu, Apr 30, 2009 at 5:13 PM, Mark Matthews <[email protected]> wrote: > > Mark, > > Connector/J for MySQL can do this today (in a rudimentary way). If the Java > program calls Connection.setReadOnly(true), and more than one mysqld host > has been specified in the URL connection string, the driver will send the > queries in a random load balance scheme to any hosts listed after the first > one. > > This could be pretty easily extended to use the response time, and > health-check aware variants of the load balancer built into Connector/J (it > just isn't today), to have something a bit fancier, and achieve the "less > moving parts" you seek. > > I realize this doesn't solve the problem for folks *not* using JDBC, but it > also shows that replication-aware connections can be built with what exists > out there today. I am pretty interested in the eventually consistent model > Adi proposes though, seems like a neat "lift" from the non-relational > scale-out folks.
Mark, The majority of our workload is from the (excellent) MySQL JDBC driver. But we have strict requirements for some of the load. The connection must use a server that has any transactions committed by the 'client'. If we tracked the binlog offset on the master when commits were done and only used replicas with a slave SQL thread offset >= that value, and did all of this transparent to the application programmer then you would make many people very happy and read scaleout would be much easier to achieve. Once that is working, adding additional constraints based on QoS and server health should be easy. > > > > > -- Mark Callaghan [email protected] _______________________________________________ Mailing list: https://launchpad.net/~drizzle-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~drizzle-discuss More help : https://help.launchpad.net/ListHelp

