Imagine for a moment, if you will, making your MySQL queries via a REST API. Weird, huh? I’ll admit its a crazy idea, but then a lot of my ideas are crazy. Still. Work with me here.
Query –> || REST API ||
- The query is a select
- Rest API synchronously determines both which servers are up and which is the fastest to respond.
- The API connects to the server with your user name and password (specified in the request header)
- The query is run on that server, and the response is passed back through to you.
- Connection closed
- Rest API synchronously determines both which servers are up and which is the fastest to respond.
- The API verifies your credentials against that server, and gives you a Query ID
- You can then re-query the API with the Query ID to determine if the query has been fully replicated.
Plenty of details to iron out here, but it’s certainly feasible… And definitely interesting…
See LBPool?
yes, very cool. I recall running into that a while back (back when it didn't matter much to me) I think that looks like a great tool, and *exactly* my thoughts on the front end (well minus the REST thing, but thats ok!)
What I'm going for above is also a less centralized replication approach, though. Something you could set in a cloud and let the servers all arrange themselves in a distributed fashion…
Hmm… something like lbpool and the black hole storage engine… Gosh… The only real thing left to do would be a distributed master…
Have to think on that…
Maybe using DNS names for the masters along with the blackhole engine… ooo… hmm…
Amazon might be planning to do something like that. Just check this thread from an amazon engineer in the EC2 forums.