Chapter 17. MySQL Cluster

Table of Contents

17.1. MySQL Cluster Overview
17.2. Basic MySQL Cluster Concepts
17.3. MySQL Cluster Configuration
17.3.17.3.1. Building from Source Code
17.3.17.3.2. Installing the Software
17.3.17.3.3. Quick Test Setup of MySQL Cluster
17.3.17.3.4. Configuration File
17.4. Process Management in MySQL Cluster
17.4.17.4.1. MySQL Server Process Usage for MySQL Cluster
17.4.17.4.2. ndbd, the Storage Engine Node Process
17.4.17.4.3. ndb_mgmd, the Management Server Process
17.4.17.4.4. ndb_mgm, the Management Client Process
17.4.17.4.5. Command Options for MySQL Cluster Processes
17.5. Management of MySQL Cluster
17.5.17.5.1. Commands in the Management Client
17.5.17.5.2. Event Reports Generated in MySQL Cluster
17.5.17.5.3. Single User Mode
17.5.17.5.4. On-line Backup of MySQL Cluster
17.6. Using High-Speed Interconnects with MySQL Cluster
17.6.17.6.1. Configuring MySQL Cluster to use SCI Sockets
17.6.17.6.2. Low-level benchmarks to understand impact of cluster interconnects

MySQL Cluster uses the new NDB Cluster storage engine to enable running several MySQL servers in a cluster. The NDB Cluster storage engine is available in the BitKeeper from MySQL release 4.1.2, and in binary releases from MySQL-Max 4.1.3.

Currently, supported operating systems are Linux, Mac OS X, and Solaris. We are working to make NDB Cluster run on all of the operating systems that MySQL itself also runs on, including Windows.

This chapter represents work in progress. Other documents describing MySQL Cluster can be found at http://www.mysql.com/cluster/ and http://dev.mysql.com/doc/#cluster.

You may also wish to subscribe to the MySQL Cluster mailing list. See http://lists.mysql.com/.

MySQL Cluster Overview

MySQL Cluster is a new technology to enable clustering of in-memory databases in a shared-nothing system. The shared-nothing architecture allows the system to work with very inexpensive hardware, without any specific requirement 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 is an integration of the standard MySQL server with an in-memory clustered storage engine, called NDB. In our documentation, the term NDB refers to the storage engine specific part of the setup, whereas MySQL Cluster refers to the combination of MySQL and the new storage engine.

A MySQL Cluster consists of computers with a set of processes executing several MySQL servers, storage nodes for NDB Cluster, management servers and possibly also specialized data access programs. All these programs work together to form MySQL Cluster. When data is stored in the NDB Cluster storage engine, the tables are stored in the storage nodes for NDB Cluster. Those tables are directly accessible also from all other MySQL servers in the cluster. Thus, if one application updates the salary of an employee, all other MySQL servers that query this data can see it immediately.

The data stored in the storage nodes for MySQL Cluster can be mirrored and can handle failures of storage nodes with no impact other than that a number of transactions are aborted due to loosing the transaction state. This causes no problems since transactional applications should be written to handle transaction failure.

By bringing MySQL Cluster to the open source world, MySQL makes clustered data management with high availability, high performance, and scalability available to all who need it.