About MySQL Cluster, is it possible to set it up on only two machines? Is it advisable?
We currently have MySQL replication setup on our two databases, and we would like to implement R/W splitting between them. So you know how non-trivial it is to setup such scheme (from what I've been reading, I hope I'm wrong) on asynchronous replication-driven setup. So my thinking is, apply MySQL Cluster, so load balancing would become easier.
What are your thoughts about this?
Thank you very much!
MySQL Cluster is a separate product in its own right from regular MySQL with replication, so you'd need to migrate your existing tables to MySQL Cluster to take advantage of it (though note that as a distributed database, there is a high likelihood your queries and schema will require optimisation to get full performance benefits)
MySQL Cluster is implemented as a storage engine, accessed via the MySQL Server or a series of NoSQL interfaces. Your tables are automatically distributed (sharded) across multiple redundant noes, allowing HA, and each node is master, allowing scaling of write as well as read operations without application-level sharding.
You can learn more about MySQL Cluster here: http://mysql.com/products/cluster/
Yes, it is fine to run MySQL Cluster on two machines.
You may need additional machine to put management process as an arbitrator - for details see https://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-ndbd-definition.html#ndbparam-ndbd-arbitration. But it isn't critical, depends on what overall system reliability you would like to achieve.