(mysql.info) mysql-cluster-basics
Info Catalog
(mysql.info) mysql-cluster-overview
(mysql.info) ndbcluster
(mysql.info) multi-computer
15.2 Basic MySQL Cluster Concepts
=================================
Menu
* mysql-cluster-nodes-groups MySQL Cluster Nodes, Node Groups, Replicas, and Partitions
*NDB* is an in-memory storage engine offering high-availability and
data-persistence features.
The NDB storage engine can be configured with a range of failover and
load-balancing options, but it is easiest to start with the storage
engine at the cluster level. MySQL Cluster's NDB storage engine
contains a complete set of data, dependent only on other data within
the cluster itself.
We will now describe how to set up a MySQL Cluster consisting of an NDB
storage engine and some MySQL servers.
The cluster portion of MySQL Cluster is currently configured
independently of the MySQL servers. In a MySQL Cluster, each part of
the cluster is considered to be a *node*.
* In many contexts, the term `node' is used to indicate a
computer, but when discussing MySQL Cluster it means a _process_.
There can be any number of nodes on a single computer, for which we use
the term *cluster host*.
There are three types of cluster nodes, and in a minimal MySQL Cluster
configuration, there will be at least three nodes, one of each of these
types:
* The *management node* (MGM node): The role of this type of node is
to manage the other nodes within the MySQL Cluster, such as
providing configuration data, starting and stopping nodes, running
backup, and so forth. Because this node type manages the
configuration of the other nodes, a node of this type should be
started first, before any other node. An MGM node is started with
the command `ndb_mgmd'.
* The *data node*: This is the type of node that stores the
cluster's data. There are as many data nodes as there are
replicas, times the number of fragments. For example, with two
replicas, each having two fragments, you will need four data
nodes. It is not necessary to have more than one replica. A data
node is started with the command `ndbd'.
* The *SQL node*: This is the node that accesses the cluster data.
In the case of MySQL Cluster, a client node is a traditional MySQL
server that uses the `NDB Cluster' storage engine. An SQL node is
typically started with the command `mysqld --ndbcluster' or by
using `mysqld' with the `ndbcluster' option added to `my.cnf'.
For a brief introduction to the relationships between nodes, node
groups, replicas, and partitions in MySQL Cluster, see
mysql-cluster-nodes-groups.
Configuration of a cluster involves configuring each individual node in
the cluster and setting up individual communication links between
nodes. MySQL Cluster is currently designed with the intention that
storage nodes are homogeneous in terms of processor power, memory
space, and bandwidth. In addition, to provide a single point of
configuration, all configuration data for the cluster as a whole is
located in one configuration file.
The management server (MGM node) manages the cluster configuration file
and the cluster log. Each node in the cluster retrieves the
configuration data from the management server, and so requires a way to
determine where the management server resides. When interesting events
occur in the data nodes, the nodes transfer information about these
events to the management server, which then writes the information to
the cluster log.
In addition, there can be any number of cluster client processes or
applications. These are of two types:
* *Standard MySQL clients*: These are no different for MySQL Cluster
than they are for standard (non-Cluster) MySQL. In other words,
MySQL Cluster can be accessed from existing MySQL applications
written in PHP, Perl, C, C++, Java, Python, Ruby, and so on.
* *Management clients*: These clients connect to the management
server and provide commands for starting and stopping nodes
gracefully, starting and stopping message tracing (debug versions
only), showing node versions and status, starting and stopping
backups, and so on.
Info Catalog
(mysql.info) mysql-cluster-overview
(mysql.info) ndbcluster
(mysql.info) multi-computer
automatically generated byinfo2html