Table of Contents
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 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.