Ensure a Smooth Migration with Clustrix's MySQL Replacement
An Easy Drop-in MySQL Replacement When Your Application Outgrows MySQL
ClustrixDB is designed to be a MySQL replacement, making it a better alternative to moving to non-relational distributed data stores or replicating/sharding MySQL. This process is not only simpler up front for the data itself, but ClustrixDB is MySQL compatible, so code changes required are minimal and data management will always be transparent, so no changes will ever be required as your data grows. Of course, it is also built for automatic fault tolerance and load balancing, so the overhead of administering a growing database is eliminated, making ClustrixDB ideal for DevOps shops.
ClustrixDB is built from scratch to afford users a MySQL-like experience in a distributed computing architecture. Since MySQL was not built for cloud scale, ClustrixDB does not include any MySQL code. However, ClustrixDB has a personality module that allows it to speak MySQL protocol with a few differences, mostly in corner cases as a result of its distributed nature. The list of differences is well documented and most customers are able to migrate with few or no code changes. Additionally, to ease transition, Clustrix can be set up as a slave to MySQL and promoted to master, while your database and application are running.
Why ClustrixDB is a MySQL Replacement
Clustrix was founded because we loved MySQL, but hated that it has capacity limits. We are not alone. The whole industry loves MySQL. It is the most-used RDBMS for internet applications for start ups and enterprises alike. It’s earned its own letter as as part of the default “LAMP Stack.” With its ANSI SQL compliance, referential integrity, ACID compliant transactions, and overall usability, it is a great tool, but it was built for a monolith architecture with a single database. Any effort to scale past that is nothing short of heroic, with sharding being the most grueling.
When we set out to build ClustrixDB, we set out to take the parts we loved about MySQL, and build it anew for a smarter, more scalable architecture that would meet the needs of the internet. We built it to be the MySQL replacement that cloud natives would love.
Migrate MySQL to ClustrixDB in Hours
Customers typically migrate their databases from MySQL to ClustrixDB in a matter of hours. Once migrated, customers usually see multiples of performance improvements instantly, for both write and read queries.
In addition, high-availability is achieved natively across the cluster without requiring duplicate hardware, or depending on read slaves. This additional level of resiliency is baked into ClustrixDB, and requires no additional setup aside from configuring the acceptable number of nodes that could fail at any time. This patented technology is dramatically simpler to administer and removes lag times that occur when promoting disaster recovery (DR) instances, or when the MySQL master disappears and a slave or ‘Read Replica’ (RDS MySQL or Amazon Aurora) needs to be promoted.
Applications that use a MySQL client or JDBC/ODBC drivers, like Ruby on Rails or Hibernate, typically migrate nearly instantaneously to ClustrixDB, although we always recommend testing all queries before rolling ClustrixDB into production. ClustrixDB speaks MySQL syntax so standard MySQL constructs should work with ClustrixDB. However, ClustrixDB was built from the ground up to be a distributed, shared-nothing database and in some instances there may be more appropriate alternatives to your existing queries and, in some cases, limitations. For a complete list, see our MySQL compatibility docs.
How Easy is it to Migrate to ClustrixDB?
ClustrixDB is a drop-in MySQL replacement. Compatible with the MySQL protocol, applications typically need to make very few changes when migrating to ClustrixDB. And migrating to ClustrixDB is as easy as:
- Dump the MySQL database with mysqldump and import into ClustrixDB with clustrix_import
- Use MySQL replication to sync ClustrixDB with the production MySQL database
- Cut over application servers to ClustrixDB via a load-balancer
Your underlying application does not need to know that instead of a single MySQL server, you now have multiple ClustrixDB servers handling requests. ClustrixDB presents itself as "MySQL" to your application, i.e., a single logical RDBMS, and automatically takes care of:
- Data distribution across all the nodes in the cluster
- Primary and secondary index distribution across the cluster
- Query fan-out across the nodes, to maximize parallelism
- On-going data rebalancing to handle workload growth and avoid storage hotspots
- Adding or removing database server nodes with a few clicks
- Creating and maintaining data replicas to provide high-availability in case one or more instances goes down