To take advantage of Fabric, an application requires an augmented version of a MySQL connector which accesses Fabric using the XML-RPC protocol. Currently, Connector/Python and Connector/J are Fabric-aware.
Fabric manages sets of MySQL servers that have Global Transaction Identifiers (GTIDs) enabled to check and maintain consistency among servers. Sets of servers are called high-availability groups. Information about all of the servers and groups is managed by a separate MySQL instance, which cannot be a member of the Fabric high-availability groups. This server instance is called the backing store.
Fabric organizes servers in high-availability groups for managing different shards. For example, if standard asynchronous replication is in use, Fabric may be configured to automatically monitor the status of servers in a group. If the current master in a group fails, it elects a new one if a server in the group can become a master.
Besides the high-availability operations such as failover and switchover, Fabric also permits shard operations such as shard creation and removal.
Fabric is written in Python and includes a special library that
implements all of the functionality provided. To interact with
Fabric, a special utility named
provides a set of commands you can use to create and manage groups,
define and manipulate sharding, and much more.