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