Introducing the new MySQL InnoDB Cluster Feature
MySQL has had good support for replication for a long time. After all, it is one of the key features that have enabled companies like Facebook, Booking, Twitter and so many others to grow and scale to such extreme scale with MySQL as their primary database engine.
However, there is room for improvement – most notably, making MySQL HA easier to setup and manage. In order to fully or efficiently leverage this powerful feature most have to mix and match (or develop) various scripts, tools and other components to enable its usage – so they can simplify, automate, integrate across an environment. More often than not repeatedly writing the same code, scripts, and tools over and over.
For example, for high availability, the task of failover must be properly handled. If the master dies, one of the replicas must take over its place and become the new master. To minimize downtime, that this process of HA must be automated combining monitoring the master and having scripts to reconfigure the replication topology if that master fails. In addition to that, applications that need to connect to the master, must be able to always connect to it, preferably without changes to their code.
There are certainly various different ways to solve each of these problems. This flexibility has no doubt been a very good thing and we are not doing anything to reduce our flexibility. However for the majority of users of MySQL the needs and patterns are the same or very close. So DBAs and developers end up re-implementing the same things over and over. And these tasks are non trivial. The majority MySQL users just need something that works for the most common HA use cases.
As of today, this has changed.
Today we are introducing a new MySQL feature we are calling InnoDB Cluster. MySQL InnoDB Cluster tightly integrates across MySQL server, new Group Replication plugin and MySQL Router providing a complete and easy-to-use solution for High Availability based on the proven and mature InnoDB transactional storage engine, all managed through a scriptable API in the MySQL Shell.
By leveraging the new Group Replication plugin, InnoDB Cluster provides synchronous replication, transactional safety and built-in automatic failover. Automatic configuration and bootstrapping was added to the MySQL Router, so that it can be setup for routing sessions to an InnoDB Cluster in a single step with no manual configuration.
To see it in action we’ve got a short 5 minute demo, showing how easily and quickly you can put a 3 server HA group together. Next you can even give it a try – a preview release of MySQL InnoDB Cluster is now available for download and you can read a tutorial in this blog for creating a playground cluster in just a matter of minutes or the documentation in the MySQL manual.