We’ve been receiving requests recently from MySQL users wanting to understand how InnoDB Cluster compares to Tungsten Clustering, our MySQL HA, disaster recovery, and geo-clustering solution. In response we have come up with this comparative outline, looking at some of the key features of each.
InnoDB Cluster by Oracle available is still a relatively new high availability solution for MySQL. It uses MySQL’s group replication to handle the replication throughout the cluster. We have tested it in house, and while the early versions were extremely difficult to deploy, later versions offer a much more streamlined deployment. It performs failover, and replication is semi-sync. There’s a bit of a learning curve when using MySQL Shell if you’ve never seen it before.
Tungsten Clustering solution by Continuent, however, has been offering high availability for MySQL for over 10 years. Thus, it is a mature product and has numerous reasons that make it an excellent choice for MySQL clustering and high availability:
- Tungsten Clustering is a complete, integrated solution. Tungsten Clustering includes three fully tested and field-proven components: Tungsten Connector (aka Tungsten Proxy), Tungsten Manager, and Tungsten Replicator. InnoDB Cluster does provide replication and failover, but it does not provide a proxy. Oracle recommends using their proxy (MySQL Router). For the purposes of this discussion, we’ll assume using MySQL Router with InnoDB Cluster. But this requires configuring InnoDB Cluster and then configuring MySQL proxy separately. There’s no integrated management and no single deployment method to deploy these components.
- MySQL Router is a basic proxy. It supports basic failover and port-based routing, but not other routing methods. Tungsten Proxy has extensive load-balancing algorithms, including a “direct’ method to route a specific user to a slave, and plus has several algorithms when doing read/write splitting. Documentation for MySQL Router is extremely sparse. It would actually be logical to use ProxySQL instead of MySQL Router since ProxySQL has more features, but then see the point above — it’s yet another product/DIY component to have to configure and maintain.
- InnoDB Cluster has No Native Support for WAN based topologies. InnoDB Cluster must be deployed on a LAN with good network performance and low latency. This is due to using semi-synchronous replication (and certification for clusters with multiple primaries). This means you cannot deploy: multi-site clusters, hybrid cloud clusters, Active/Passive clusters, Active/Active clusters, or any geo-distributed clusters.
- InnoDB Cluster uses semi-synchronous replication, which could affect application performance. Application servers will not only have to wait for data to be written to the database but must also wait until at least one downstream database server has received the transaction. This could severely affect the performance of write-heavy workloads.
- InnoDB Cluster is either free with no support, or very expensive with support. Tungsten Clustering always comes with 24x7 support, with access to senior-level admins and engineers, and fast response (in minutes!) to urgent cases. Using InnoDB Cluster community gives no support, except for docs and community forums. To pay for support for a 3 node InnoDB cluster with 5+ sockets will cost $28,500. With 1-4 sockets, this price is still $15,000 per year.
- Tungsten Clustering is “loosely coupled” to MySQL. This is what allows Tungsten Clustering to work with any backend MySQL database, including MariaDB, Percona Server, and various versions of all of them. You use the MySQL version that you have always loved.
- Tungsten Clustering has fewer hard requirements. InnoDB cluster only supports the InnoDB storage engine, requires row-based replication, and requires a primary key or unique key on each table. Tungsten Clustering does not have these requirements. You do not need to reengineer your database nor applications.
- Tungsten Clustering has a Management Dashboard available. The Dashboard is naturally free and it is hosted locally in the customer’s data center or cloud. Quickly get a global view of all of your clusters and perform maintenance with the convenience of a web browser.
InnoDB Cluster has made a lot of progress, especially with MySQL 8.0, but when comparing the functionality, flexible topologies, and the best support in the business, it is compelling to look at Tungsten Clustering for your business-critical MySQL implementation, especially for high-volume, geo-distributed applications.