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 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 groups (called high-availability groups) for managing different shards or simply for providing high availability. 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.