MySQL Cluster

MySQL Cluster Overview

  • In-memory
    • Complemented with logging to disk
    • Shared nothing architecture
  • No single point of failure
  • Synchronous replication between nodes
  • Fail-over capability in case of node failure
  • Supports transactions
    • READ COMMITTED is the only supported isolation level
  • Row level locking (sure)
  • On-line software upgrade (one node at the time)
  • Shared storage engine for MySQL Server

Designed For Telecom

MySQL comes from a telecom environment and was originally developed by Ericsson. MySQL Cluster is nowadays part of the central storage for telecom, gaming and other industries.
  • Availability
    • 99,999% (≥ 5min downtime / year)
  • Performance
    • Response time usually between 5 - 10 ms
    • Throughput of 10000 transactions / sec
  • Scalability
    • Many concurrent applications
    • Effective load balancing

Cluster Advantages

The basic advantages with MySQL cluster are two-fold:
  • High availability
  • Having replicas ensures that the crash of a data node won't stop the system. The redundancy of the cluster architecture provides a system with no "single point of failure". Data is fragmented and distributed to the seperate cluster data nodes. Each of the fragments is synchronously replicated to a second node for data.
  • Scalability
  • By fragmenting tables to different computers more operations can be done in parallel. Load balancing between the data nodes is fully automatic. Multiple MySQL Servers will access the Cluster as a MySQL storage engine in parallel. Every single MySQL Server will thus allow a high throughput. Another MySQL Server can be even added to Cluster without any downtime.

Shared Nothing Architecture

Cluster is based on a shared nothing architecture in order to avoid single points of failure. Where as most database cluster technologies depend on a shared storage solution MySQL Cluster rather uses its own disks and uses redundant data storage in the main memory of multiple machines.

Usually two ore more MySQL Server access the MySQL Cluster data nodes in parallel and have access to the very same data. The data nodes are again redundant.