I've just finished setting up my first MySQL Cluster, and have been
impressed at how easy it was to do so.
I have a question about how arbitration works, in particular external
arbitration. Reading through the documentation at
and various posts on the web, I understand it to be a mechanism where none
of the MySQL nodes will act as the arbitrator in the event of a
"split-brain" scenario, and will wait for some kind of external application
to act as arbitrator.
I my understanding correct?
If it is, how do these external applications interact with the cluster?
Does it simply run some commands to tell those nodes it chooses to shut
down, and other commands to tell the other nodes to stay up? What are some
examples of these "external applications"? What are the commands that you
need to run to tell the cluster to shut down, but more importantly what are
the commands issued to tell the nodes the external arbitrator has decided
to keep those alive.
The reason I ask is that I plan to have a multi-site MySQL Cluster where I
can write an application of my own that will determine which set of nodes
to keep alive and which to turn off in the event that my links will go
down. In my tests, I have created one management node and one data/API node
at each site. Whilst the links I have between my sites are quite stable,
there is still a possibility that it could go down, and I would like to
know how I can determine which nodes to keep alive instead of letting MySQL
Is anyone able to shed any light on this or point me to some documentation
on how these external applications can act as a MySQL Cluster arbitrator.