Enomalism Mysql Cluster Auto-deployer
MySQL Cluster is a technology which provides shared-nothing clustering capabilities for the MySQL database management system. It is designed to provide high availability and high performance, while allowing for nearly linear scalability. MySQL Cluster is implemented through an additional storage engine available within MySQL called NDB or NDBCLUSTER ("NDB" stands for Network Database).
http://en.wikipedia.org/wiki/MySQL_Cluster
Replication
MySQL Cluster uses synchronous replication through a two-phase commit mechanism in order to guarantee that data is written to multiple nodes upon committing the data. (This is in contrast to what is usually referred to as "MySQL Replication", which is asynchronous.) Two copies (known as replicas) of the data are required to guarantee availability; however, the cluster can be configured to store one to four copies at any single time.
Horizontal Data Partitioning
Data within NDB tables is automatically partitioned across all of the data nodes in the system. This is done based on a hashing algorithm based on the PRIMARY KEY on the table, and is transparent to the end application.
In the 5.1 release, users can define their own partitioning schemes.
Hybrid Storage
MySQL Cluster can store data either in memory or on disk. All data and indexes can be stored in memory, writing the data to disk asynchronously. The reason it can do this safely is due to the first point above, replication.
Shared Nothing
MySQL Cluster is designed to have no single point of failure. Provided that the cluster is set up correctly, any single node, system, or piece of hardware can fail without the entire cluster failing. Shared disk (SAN) is not required. The interconnects between nodes can be standard Ethernet. Gigabit Ethernet and SCI interconnects are also supported.
Enomalism Implementation
MySQL Cluster uses four different types of nodes:
- Data node (ndbd process): These nodes store the data.
- Management node (ndb_mgmd process): Used for configuration and monitoring of the cluster. They are required only during node startup.
- SQL node (mysqld process): A MySQL server (mysqld) that connects to all of the data nodes in order to perform data storage and retrieval.
- PHPmyAdmin Node
- Generally, it is expected that each node will run on a separate host computer.
Download from SVN repo
