16.1. MySQL Cluster Overview
MySQL Cluster is a technology that enables
clustering of in-memory databases in a share-nothing system. The
share-nothing architecture allows the system to work with very
inexpensive hardware, and without any specific requirements on
hardware or software. It also does not have any single point of
failure because each component has its own memory and disk.
MySQL Cluster integrates the standard MySQL server with an
in-memory clustered storage engine called NDB
.
In our documentation, the term NDB
refers to
the part of the setup that is specific to the storage engine,
whereas “MySQL Cluster” refers to the combination of
MySQL and the NDB
storage engine.
A MySQL Cluster consists of a set of computers, each running a
number of processes including MySQL servers, data nodes for NDB
Cluster, management servers, and (possibly) specialized data
access programs. The relationship of these components in a cluster
is shown here:
All these programs work together to form a MySQL Cluster. When
data is stored in the NDB Cluster
storage
engine, the tables are stored in the data nodes. Such tables are
directly accessible from all other MySQL servers in the cluster.
Thus, in a payroll application storing data in a cluster, if one
application updates the salary of an employee, all other MySQL
servers that query this data can see this change immediately.
The data stored in the data nodes for MySQL Cluster can be
mirrored; the cluster can handle failures of individual data nodes
with no other impact than that a small number of transactions are
aborted due to losing the transaction state. Because transactional
applications are expected to handle transaction failure, this
should not be a source of problems.
By bringing MySQL Cluster to the Open Source world, MySQL AB makes
clustered data management with high availability, high
performance, and scalability available to all who need it.