Blog

MySQL / MariaDB Clustering: Seamless Master Switch with Tungsten Clustering

One nice thing about Tungsten Clustering is that you need just a single command to move the master role to another host in your cluster. Using the cluster control tool (cctrl) via the command-line, you just need to type "switch" to get the (complex) job done!

[LOGICAL:EXPERT] /alpha > switch
SELECTED SLAVE: host2@alpha
PURGE REMAINING ACTIVE SESSIONS ON CURRENT MASTER 'host1@alpha'
PURGED A TOTAL OF 0 ACTIVE SESSIONS ON MASTER 'host1@alpha'
FLUSH TRANSACTIONS ON CURRENT MASTER 'host1@alpha'
PUT THE NEW MASTER 'host2@alpha' ONLINE
PUT THE PRIOR MASTER 'host1@alpha' ONLINE AS A SLAVE
RECONFIGURING SLAVE 'host3@alpha' TO POINT TO NEW MASTER 'host2@alpha'
SWITCH TO 'host2@alpha' WAS SUCCESSFUL

What's even nicer is that in most cases, your application won't even notice that a master switch occurred. All you will get is a little lag in connectivity, while the new host is being reconfigured.

The magic resides in the fact that the connector is able to "pause" new connections during the switch operation:

  • First, it will wait a configurable delay for ongoing connections to disconnect. After this delay, connections are forcibly closed (but they will generally try to reconnect by themselves)
  • Then, any new connection request will be paused until the new master is ready to accept traffic. Here comes the little lag in your application!
  • As soon as the new master is ready (usually within seconds), traffic continues, application's happy, so are your customers.

Of course, if your application was connected to a slave during the switch, the application will not even be affected by the switch!

About the Author

Gilles Rayrat
VP of Engineering

Gilles has over 20 years experience in software engineering. Previously holding positions at Orange and Xerox, he joined the Continuent adventure in 2005. As the connectivity expert at Continuent, he has worn many hats including software development, QA, support, project and operations management. Gilles has held most of the engineering positions that he now manages, giving him both deep and wide experience.

Add new comment