Yoshinori Matsunobu sparked some interest recently when he posted about his MySQL MHA HA solution, and there has been some discussion of it internally at Yahoo compared with the standard we currently have.
Full disclosure: I haven’t read every bit of the documentation or tried it out yet, so I apologize in advance to Yoshinori if I mistakenly represent his hard work.
I see a lot of great ideas in Yoshinori’s release, it seems to focus on two main problems:
- A process to monitor an active master and perform a failover when it fails
- The bit that finds the most “caught-up” slave and distributes relay log contents from that slave to all the other slaves in the cluster
There tend to be many more pieces to performing a failover, but I’d agree that getting the slaves consistent and as up to date as possible is a great problem to solve. I really think this is a big hole in what our current internal standard lacks, and I want to look into using Yoshinori’s code, or at least checking out his algorithms.
However, for our use there are some extra features that are crucial:
- Multi-tiered/colo architectures, specifically dual-masters
- Full HA on any HA solution. This gets kind of meta, but the management server Yoshinori suggests needs to have redundancy. The doc mentions running two management servers, but doesn’t elaborate on how that would actually work. For example, do the management servers communicate? What happens if they fall out of communication with each other? That leads me to:
- Being immune to split brain issues. The doc mentions the idea of scripting a remote power off of a potentially network-isolated master, which is certainly one solution. I don’t disagree with that, but I’m not necessarily convinced the overall solution could handle odd network situations in general. Add multi-colo into that mix, and it gets even more complicated to think about.
My take (so far) is, like many other open sourced “HA” solutions, it tends to focus on local availability and overlooks geographical redundancy (BCP, as we call it).
By no means am I trying to be critical about MySQL MHA, and I’m looking forward to see where MHA goes from here.
PlanetMySQL Voting: Vote UP / Vote DOWN