yoshinorim / mha4mysql-manager

Development tree of Master High Availability Manager and tools for MySQL (MHA), Manager part
http://code.google.com/p/mysql-master-ha/
GNU General Public License v2.0
1.47k stars 500 forks source link

Appended a command for mha4mysql-manager: masterha_paxos_lock #45

Open huxingyi opened 10 years ago

huxingyi commented 10 years ago

I appended a command for mha4mysql-manager: masterha_paxos_lock Using this command to lock/unlock the majority of all nodes, can ensure that only one manager is running.

Usage:

Lock the majority of all nodes: masterha_paxos_lock --conf=/etc/app1.cnf --holder=host1 --lock

Unlock the majority of all nodes: masterha_paxos_lock --conf=/etc/app1.cnf --holder=host1 --unlock

I make it because I need run masterha_master_switch on all nodes. On each node, there is a mha4mysql-manager. I name it as masterha_paxoslock,because I use the majority(> 1/2) to confirm the result. It's similar to http://en.wikipedia.org/wiki/Paxos(computer_science)

This update composed of the following file appends: mha4mysql-manager/bin/masterha_paxos_lock
mha4mysql-manager/lib/PaxosLock.pm
mha4mysql-node/bin/try_paxos_lock(in repository mha4mysql-node)