High availability/scalability

MySQL has a feature called partitioning, where data of a table is transparently split across multiple physical databases, called partitions/fragments. By default, the table's Primary Key MD5 hash is used for partitioning amount the fragments. If a transaction or query needs to access data from multiple fragments, then one of the nodes takes on the role of the transaction coordinator and coordinates work on the other nodes. This coordinator also combines results before forwarding to the application.

A typical high-availability configuration includes a master database that handles data write operations and is replicated to multiple slaves that handle all read operations. The master server continually pushes binlog events (which describe the changes) to connected slaves. In the event of master failure, a slave can be promoted to become the new master. The replication here is asynchronous.

MySQL Cluster is another alternative to the master-slave architecture and allows a set of nodes to serve both reads and writes. MySQL Cluster is implemented through the NDB or NDBCLUSTER storage engine (NDB stands for Network Database). There are some known limitations, described here: https://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-limitations.html.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset