MySQL Cluster

MySQL Cluster is a storage engine of the free database system MySQL in the currently available version 7.2. It allows to install the database on a computer cluster that is constructed in a shared-nothing architecture. This means that each processing node has its own hard drives and memory. If the individual computer nodes are equipped with a sufficiently large memory, all data can be stored in main memory (up to version 5.0 that was mandatory, as of version 5.1, there are also plate -resident tables).

According to information from the cluster technology MySQL provides an availability of 99.999 %. This means an annual downtime of less than six minutes.

The NDB ( Network Database ) storage engine is an independent component that provides persistent storage of data and is responsible for the coordination of all accesses to data nodes in a MySQL Cluster. Applications can directly access to the NDB storage engine about various NoSQL interfaces or via a MySQL nodes via SQL.

NDB Cluster was taken over in 2003 by MySQL AB with the acquisition of the company Alzato ( an Ericsson offshoot ). 2008 MySQL AB was acquired by Sun Microsystems. 2010 was again Sun was acquired by Oracle.

Areas of application

MySQL Cluster is often used as the DBMS in the Web environment, where it is important that many read accesses are performed quickly and that a high level of reliability is ensured. For such requirements MySQL Cluster already has better access times proven in tests as Oracle, DB2, and MS SQL.

Architecture

In MySQL Cluster three types of nodes are distinguished:

  • Data storage: Up to version 5, all data were kept in the main memory and periodically written to disk. Roughly speaking, this meant that the data node had to have a total of as much memory as the size of the database was; the supplied script " ndb_size.pl " made ​​it possible to estimate the expected memory requirements for an existing database. As of version 6, there is a table type "storage disk", are stored in the index fields in the main memory and the remaining fields on the disk.
  • Roles: Exactly one Ndb - node in the cluster is the master. This role is assigned by the arbitrator at the start. The master is the primary information on the state of the cluster. Without a master, the cluster is unable to work. In case of failure can take on this role another node - but only with the consent of the arbitrator or a majority of the Ndb node. If parts of the cluster lose their connection, but are still able to work ( split brain scenario ), the arbitrator will decide ( referee ), who should be the master. By default, the Manager of the arbitrator; but it is possible to configure a hierarchy; In this case, one should choose an odd number, in order to remain ' a majority '. As an arbitrator can serve management or SQL nodes.

The MySQL database system allows the use of database management systems with different concepts: with and without execution of transactions with and without persistent storage, with and without the use of stored procedures, using synchronous or asynchronous replication, etc.

The coarse end of a user's request is as follows:

On each of the nodes of the MySQL cluster, at least one process is started. For SQL nodes responsible process is called mysqld, ndbd in data node and management node ndb - MGMD. On compute nodes with multiple processors, multiple MySQL Cluster processes can run simultaneously. For example, in a data node with two CPUs, two ndbd processes are executed in parallel. It is also possible to use MySQL Cluster processes of different types of nodes on a computer nodes with multiple CPUs. For example, may be started on one host, a process the SQL node ( mysqld ) and process the data node ( ndbd ).

Ports ( default settings ):

Security: The data traffic within the cluster is not protected cryptographically. It is user's responsibility to shield the cluster, eg by firewall rules or a private network tunnel.

Platforms

MySQL supports Windows, Unix / Linux. A Mac version is available for development.

589557
de