TONIGHT Solomon Chang proudly presents: MySQL Clustering
Download
Report
Transcript TONIGHT Solomon Chang proudly presents: MySQL Clustering
Welcome to the UUASC
LA Chapter
TONIGHT
Solomon Chang
proudly presents:
MySQL Clustering
NDB Cluster
High Availability*
Shared-Nothing Architecture
Redundancy
Server Requirements
Any machine that can run MySQL
Server Requirements
Any machine that can run MySQL
Non-Microsoft Operating System
Server Requirements
Any machine that can run MySQL
Non-Microsoft Operating System
A buttload of RAM
Types of Nodes
Data Nodes
Management Nodes
ndbd
ndb_mgmd
API Nodes
mysqld
ndb_mgm
Bits and Pieces
Partition (AKA Fragment)
Replica
A portion of a table
A copy of a Partition
Node Group
A collection of individual data nodes
Security of Nodes
Security of Nodes
Authentication: None
Security of Nodes
Authentication: None
Encryption: None
Security of Nodes
Authentication: None
Encryption: None
Management and Data Nodes are
very trusting as to who or what
connects to them
Transports
Gigabit Ethernet
SCI
Bare recommended minimum
Scalable Coherent Interconnect
Infiniband
Performance
Primary Key are hashes
Performance
Primary Key are hashes
Hashed values determine which rows are
distributed to which data nodes
Performance
Primary Key are hashes
Hashed values determine which rows are
distributed to which data nodes
Pushdown
Performance
Primary Key are hashes
Hashed values determine which rows are
distributed to which data nodes
Pushdown
Spreading query work across multiple data
nodes
set engine_condition_pushdown = 1
Data Node Setup
In /etc/my.cnf:
[MYSQLD]
ndbcluster
ndb-connectstring=10.0.0.152
[MYSQL_CLUSTER]
ndb-connectstring=10.0.0.152
Management Node Setup
config.ini sections
[ndbd]
[ndb_mgmd]
[mysqld]
Management Node Setup
config.ini sections
[ndbd]
[ndb_mgmd]
[mysqld]
Sections can be blank
Management Node Setup
config.ini sections
[ndbd]
[ndb_mgmd]
[mysqld]
Sections can be blank
There can be multiple instances of a
section
SQL Node Setup
Just like the Data Node Setup
In /etc/my.cnf:
[MYSQLD]
ndbcluster
ndb-connectstring=10.0.0.152
[MYSQL_CLUSTER]
ndb-connectstring=10.0.0.152
SQL Node Setup
The Management Node already
knows this is a SQL node from its
config.ini file
Enough Talking
It's showtime
Cluster Replication
Cluster replication is exactly the same
as regular MySQL replication, with
the exception of the Binary Log
Injection Thread.
Backup and Restoration
Why would a fault-tolerant,
completely redundant system would
ever need to have a backup for
restoring data?
Disk-Based NDB Cluster
HA Caveat
SQL Nodes