380 likes | 490 Views
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
E N D
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 • ndbd • Management Nodes • ndb_mgmd • API Nodes • mysqld • ndb_mgm
Bits and Pieces • Partition (AKA Fragment) • A portion of a table • Replica • A copy of a Partition • Node Group • A collection of individual data 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 • Bare recommended minimum • SCI • 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?
HA Caveat • SQL Nodes