1

Recently I am looking for an application level Sharding solution for MySql, and come across Mysql Fabric, but after some investigation, I find it was already announced to be end of life. It seems Mysql Fabric is not suggested to use any more. If so, my questions are,

  1. Is Mysql Fabric ever a mature tool for production usage?
  2. Are there any successful examples of using Mysql Fabric for sharding?
  3. Is there any specific reason Mysql Fabric is no longer maintained since 2017?
  4. What could be alternatives?
2
  • You might want to take a look at Vitess - an impressive pedigree and user base and part of the CNCF.
    – Vérace
    Commented Apr 20, 2019 at 16:44
  • Thanks @Vérace! Seems promising and I will have a look.
    – Wayne Wang
    Commented Apr 21, 2019 at 14:49

1 Answer 1

1

In my opinion, Fabric was doomed because it had a single-point-of-failure, namely the 'fabric node'. Otherwise, it was probably considered mature.

The replacement: Group Replication (InnoDB Cluster). This has a robust design that seems to have no major holes. Galera Cluster (built into MariaDB and PXC, add-on for Oracle's MySQL) competes head-to-head with it and is more mature; there are advocates on both sides.

Group Replication (and Galera) have valid solutions for HA (High Availability) in that they use multiple servers and can recover from any single server failure. (This, of course, requires geographical disbursement of the servers.)

Group Replication is becoming mature and has only one flaw (arguably minor): It has no built-in way to handle the "critical read" problem. (This is where a user writes something to the database, but the subsequent SELECT does not see it because it is sent to a different server.)

I am not prepared to address "sharding" in GR. Clustrix is a 3rd party that claims to have a very good sharding solution. What do you expect from "application level Sharding"? And is Sharding, not HA, your main goal?

Perhaps you saw this? Mysql Group replication vs Mysql Cluster

5
  • Is there any way I can connect to a group (MySQL Group Replication) with Java Connector?
    – Aryaveer
    Commented Apr 20, 2022 at 16:49
  • @Aryaveer - Yes, but it is not a 'valid' question. Group Replication involves multiple servers, each with an instance of MySQL. Java can connect to any MySQL instance. Perhaps you are asking about a "proxy" to help 'route' queries to different servers?
    – Rick James
    Commented Apr 20, 2022 at 19:27
  • Let's say we have 3 MySQL servers in the group. 1 Master and 2 replicas. They are configured to use Group Replication. If master goes down the system will automatically promote 1 of the replicas to master. I know we can use MySQL-router or ProxySQL to connect to this group but that is additional hop and I'll have to take care of HA thus introducing a load balancer (that is just another hop). Question is can we use Java-MySQL connector to connect with this group? If a master goes down it should connect with newly elected master.
    – Aryaveer
    Commented Apr 20, 2022 at 22:14
  • @Aryaveer - Generally, an "extra hop" is not a big deal. And it is worth the complexity. As for router/proxy discussions, please start another Question to discuss it. (I don't know the details, but I feel sure that your app will be reasonably automatically reconnected to the "new" primary node.)
    – Rick James
    Commented Apr 20, 2022 at 22:45
  • This question is already asked on stackoverflow stackoverflow.com/questions/57065839
    – Aryaveer
    Commented Apr 21, 2022 at 6:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.