MySQL Cluster Evaluation Guide
Getting the most out of your MySQL Cluster Evaluation
The purpose of this guide is to enable you to efficiently evaluate the MySQL Cluster database and determine if it is the right choice for your application, whether as part of a new project or an upgrade to an existing service.
This guide presents a brief overview of the MySQL Cluster database before then discussing:
- Considerations before initiating an evaluation
- Evaluation best practices
- Configuration options and sanity checking
By following the recommendations in this Guide, you will be able to quickly and effectively evaluate MySQL Cluster and ultimately accelerate the time to market of your new service.
What is MySQL Cluster?
MySQL Cluster is a write-scalable, real-time in-memory, ACID-compliant transactional database, combining 99.999% availability with the low TCO of open source. Designed around a distributed, multi-master architecture with no single point of failure, MySQL Cluster scales horizontally on commodity hardware with auto-sharding to serve read and write intensive workloads, accessed via SQL and NoSQL interfaces.
MySQL Cluster's real-time design delivers predictable, millisecond response times with the ability to service millions of operations per second. Support for in-memory and disk-based data, automatic data partitioning (sharding) with load balancing and the ability to add nodes to a running cluster with zero downtime allows linear database scalability to handle the most unpredictable workloads. MySQL Cluster integrates the standard MySQL server with a clustered storage engine called NDB. The data within a MySQL Cluster can therefore be accessed via various MySQL connectors like PHP, Java or .NET as well as standard SQL. Data can also be accessed and manipulated directly using MySQL Cluster’s native NoSQL NDB API. This C++ interface provides fast, low-level connectivity to data stored in a MySQL Cluster.
Guide to Scaling Web Databases with MySQL Cluster
Accelerating Innovation on the Web and in the Cloud
MySQL Cluster Architecture
The realities of today’s successful web and mobile services means developers and architects need to consider multiple dimensions to scalability:
- The need to automatically scale writes, as well as reads, both within and across geographically dispersed data centers
- The need to scale operational agility to keep pace with demand. This means being able to add and remove capacity and performance to the database, and to evolve the schema – all without downtime
- The need to scale queries by having flexibility in the APIs used to access the database – including SQL and NoSQL interfaces
The architecture of MySQL Cluster is designed to accommodate these requirements with the following capabilities – all of which are discussed in more detail during the Guide:
- Auto-sharding for write-scalability
- In-memory, real-time responsiveness
- Active/Active geographic replication
- Online scaling and schema upgrades
- SQL and NoSQL interfaces
- 99.999% availability
- GUI-based configuration and provisioning for DevOps ease-of-use.
MySQL Cluster is a highly scalable, real-time, ACID-compliant transactional database, combining 99.999% availability with the low TCO of open source. Designed around a distributed architecture with no single point of failure, MySQL Cluster scales horizontally on commodity hardware with auto-sharding to serve read and write intensive workloads, accessed via SQL and NoSQL interfaces.
MySQL Cluster's multi-master real-time design delivers predictable, millisecond response times with the ability to service millions of operations per second. Support for in-memory and disk-based data, automatic data partitioning (sharding) with load balancing and the ability to add nodes to a running cluster with zero downtime allows linear database scalability to handle the most unpredictable web-based workloads.
Alcatel-Lucent, Big Fish, PayPal, Shopatron, Telenor, Zillow and many more deploy MySQL Cluster in highly demanding web, mobile and cloud applications for the types of high-scale, mission-critical services discussed in the Introduction section.1
MySQL Cluster is also a key component of the MySQL Web Reference Architectures – a collection of repeatable best practices for building highly scalable and available web services, developed with the world’s leading web properties. The Web Reference Architectures are discussed in more detail later in this Guide. From an architectural perspective, MySQL Cluster comprises three types of node which collectively provide service to the application:
- Data nodes manage the storage and access to data. Tables are automatically sharded across the data nodes which also transparently handle load balancing, replication, failover and self-healing.
- Management nodes are used to configure the cluster and provide arbitration in the event of a network partition.
The roles played by each of these nodes in scaling web and cloud databases are discussed in the following sections of this Guide.