Bookmark and Share
MySQL cluster summary
(Publish Date: 2009-9-17 10:57pm, Total Visits: 1814, Today: 1, This Week: 3, This Month: 10)
MySQL Cluster features Overview:

• MySQL Cluster is a technology that enables clustering of in-memory
databases in a shared-nothing system.
• MySQL Cluster is designed not to have any single point of failure.
• MySQL Cluster can be used for load balancing as well as for high
availability (can achieve 99.999 availability ).
• to the outside world, the cluster appears to be a single system
• data can only be partitioned by the primary key automatically

Mysql cluster 7.0 new features:

• MySQL Cluster's real-time design delivers predictable, millisecond
response times with the ability to service tens of thousands of
transactions per second.
• Support for in-memory and disk based data
• automatic data partitioning with load balancing
• the ability to add nodes to a running cluster with zero downtime
allows linear database scalability to handle the most unpredictable

Hardware requirement:

• Standard 100 Mbps or 1 gigabit Ethernet cards

Some MySQL cluster limitations we may concern:

• Foreign key constraints. The foreign key construct is ignored, just as
it is in MyISAM tables.
• Index prefixes. Prefixes on indexes are not supported for NDBCLUSTER
tables. If a prefix is used as part of an index specification in a
statement such as CREATE TABLE, ALTER TABLE, or CREATE INDEX, the prefix
is ignored.
• OPTIMIZE operations. OPTIMIZE operations are not supported.
• Savepoints and rollbacks. Savepoints and rollbacks to savepoints are
ignored as in MyISAM.
• Replication. Statement-based replication is not supported. Use
--binlog-format=ROW (or --binlog-format=MIXED) when setting up cluster
• Range scans. There are query performance issues due to sequential
access to the NDB storage engine; it is also relatively more expensive
to do many range scans than it is with either MyISAM or InnoDB.
• No distributed table locks. A LOCK TABLES works only for the SQL node
on which the lock is issued; no other SQL node in the cluster “sees”
this lock. This is also true for a lock issued by any statement that
locks tables as part of its operations. (See next item for an example.)
• ALTER TABLE operations. ALTER TABLE is not fully locking when running
multiple MySQL servers (SQL nodes). (As discussed in the previous item,
MySQL Cluster does not support distributed table locks.)


NDB Cluster is good for applications that have relatively little data
and execute simple queries. Good uses for it include storing web site
sessions, file-storage metadata, and so forth. It performs very poorly
for complex queries, including joins.
Essentially, any query that’s not a single-table indexed lookup requires
inter-node communication and therefore is slow.
NDB Cluster is a transactional system, but it does not have MVCC
support, and reads are locking. It also does not do any deadlock
detection. If there’s a deadlock, NDB resolves it with a timeout. The
combination of locking reads and timeout-based deadlock resolution means
it may not be a good solution for interactive multiuser applications or
web applications.

Cluster structure overview

Node structure