MySQL Fabric is a framework to help you manage farms of MySQL Servers and help make these servers highly available and scalable.
These features may be used together or on their own, and are carried out in two separate layers.
The first is using the mysqlfabric method that deals with any management request. When used with the high availability feature, the mysqlfabric method will also be accountable for tracking the master server so that in the event that the master slave fails, a slave server can be immediately promoted as a master.
Then MySQL has a series of connectors that are MySQL Fabric aware. These connectors keep a cache of routing data, which it gets from MySQL Fabric. It then utilizes the cached information to send queries or transactions to the right MySQL Server.
Sharding and scaling out
If your server is close to write performance limit or capacity, MySQL Fabric may be used to scale your database servers. MySQL Fabric partitions the data across various MySQL Server groups. These groups may contain a high availability group or one MySQL Server. You will need to define how these data is partitioned between several servers, such as determining what table columns are going to be utilized as shard keys and whether to use RANGE or HASH to help match the correct shard to the specified keys.
MySQL Fabric can also split existing shards if you need more shards or if you want to relocate these shards.
High availability groups arise when you have at least two MySQL Servers pooled together. You can designate one of these servers as the primary or the MySQL Replication master, while the other servers are designated as secondaries. Access to data that are stored in the high availability group should always be available and accessible.
MySQL fabrics allows you to have the two components that are necessary for a reliable high availability solution and these are:
- Database requests routing: MySQL Fabric provides you transparency with routing of the writes to your Primary server. These processes are transparent to applications even while the topology alters in a failover.
- Failure detection: MySQL Fabric detects your primary server and promotes a secondary server when it fails.
MySQL Fabric aware connectors
There are several of these connectors that are available for use with PHP, Python and Java. The connectors are used to automatically get routing data from MySQL Fabric. That information is then cached, enabling the right routing of transactions and queries to the right MySQL Server. An application using these connectors would give it the sharding key without having to know the state of the servers or the server farm topology.
This happens without the need for proxy functions. Because the operation is proxy-free, you will not have problems with complexity and latency.
Want more information about MySQL Fabric? Contact us through our contact form and get advice. Consult with a team of MySQL and Oracle-certified experts today!
Do you want to know more about MySQL Fabric’s two most important features? You can read our source here.
Photo courtesy of MySQL.