52
MySQL Cluster: HA als StorageEngine Erkan Yanar linsenraum.de 25. April 2012 Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 1 / 34

MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

  • Upload
    letruc

  • View
    228

  • Download
    5

Embed Size (px)

Citation preview

Page 1: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster: HA als StorageEngine

Erkan Yanar

linsenraum.de

25. April 2012

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 1 / 34

Page 2: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

What About

Hochverfugbarkeit mit MySQL

Topic

Wir wollen Hochverfugbarkeit

Daten

Service

Und wie erreichen?

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 2 / 34

Page 3: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit Replication

Losungsmoglichkeiten:

HA auf Basis von Replikation

Replikation

Datenredundanz

Slave read only(Scaleout)

HA

Daten redundant?

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 3 / 34

Page 4: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit Replication

Losungsmoglichkeiten:

HA auf Basis von Replikation

Replikation

Datenredundanz

Slave read only(Scaleout)

HA

Daten redundant?

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 3 / 34

Page 5: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit Replication

Losungsmoglichkeiten:

HA auf Basis von Replikation

Replikation

Datenredundanz

Slave read only(Scaleout)

HA

Daten redundant?

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 3 / 34

Page 6: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit Replication

Losungsmoglichkeiten:

HA auf Basis von Replikation

Replikation

Datenredundanz

Slave read only(Scaleout)

HA

Daten redundant?

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 3 / 34

Page 7: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit Replication

Sicherheit semisync vs. Performance async

Failover

Daten

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 4 / 34

Page 8: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit Blocklevel

Blocklevel

2 Nodes Limit

Nur ein Rechner

Failover

Daten

Recoverydowntime

Keine Skalierung

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 5 / 34

Page 9: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit Blocklevel

Blocklevel

2 Nodes Limit

Nur ein Rechner

Failover

Daten

Recoverydowntime

Keine Skalierung

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 5 / 34

Page 10: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit StorageEngines

Modulares MySQL

Storage Engine

Authentication

INFORMATION SCHEMA

General

Replication

Audit

. . .

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 6 / 34

Page 11: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit StorageEngines

Modulares MySQL

Storage Engine

Authentication

INFORMATION SCHEMA

General

Replication

Audit

. . .

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 6 / 34

Page 12: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit StorageEngines

Local Storage Engine

CREATE TABLE tablename (...) ENGINE=...

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 7 / 34

Page 13: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit StorageEngines

Storage Engines

CREATE TABLE tablename (...) ENGINE=...

Local Storage

INNODB/XtraDB

MYISAM

Aria

PBXT

OQGraph

. . .

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 8 / 34

Page 14: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit StorageEngines

Weite Welt

CREATE TABLE tablename (...) ENGINE=...

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 9 / 34

Page 15: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit StorageEngines

Network Storage

FedratedX

SpiderSE

NDB (Network Database)

CREATE TABLE tbl a(col a int,col b int,PRIMARY KEY(col a))ENGINE = FEDERATEDCONNECTION’mysql://ich:[email protected]/db/tbl a’;

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 10 / 34

Page 16: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit StorageEngines

Network Storage

FedratedX

SpiderSE

NDB (Network Database)

CREATE TABLE tbl a( col a int, col b int, PRIMARY KEY(col a))ENGINE = SPIDERCONNECTION ’ table tbl a, user ich, password auch ’PARTITION BY RANGE( col a ) (PARTITION p1 VALUES LESS THAN (1000) COMMENT ’host 192.168.178.25’,PARTITION p2 VALUES LESS THAN (2000) COMMENT ’host 192.168.178.26’,PARTITION p3 VALUES LESS THAN (MAXVALUE) COMMENT ’host 192.168.178.27’ );

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 10 / 34

Page 17: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Datenredundanz/Verfugbarkeit StorageEngines

Network Storage

FedratedX

SpiderSE

NDB (Network Database)

CREATE TABLE imha ( . . . ) ENGINE=NDB;

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 10 / 34

Page 18: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 11 / 34

Page 19: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster

Network Storage

Speicher Engine

Shared Nothing

HA: 99,999%

ACID

READ COMMITTED

Row Locking

Two Phase Commit

Keine FK

Key/Value Applikation!

ALTER TABLE . . . ENGINE=NDB

Hash-Partitionierung/Sharding

Durchsatz, Parallelitat

Scaleout

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 12 / 34

Page 20: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster Komponenten

Komponenten

ndb(mt)d

mgmd

MySQL/API

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 13 / 34

Page 21: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster Komponenten

Komponenten

ndb(mt)d

mgmd

MySQL/API

Datenknoten

Partitionierung/Redundanz

2-Phase-Commit

Failover

max. 48 Nodes

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 13 / 34

Page 22: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster Komponenten

Komponenten

ndb(mt)d

mgmd

MySQL/API

Managementdeamon/knoten:

Konfiguration

Logging

Arbitrator

Managementinterface

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 13 / 34

Page 23: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster Komponenten

Komponenten

ndb(mt)d

mgmd

MySQL/API

API

Kommunikation via ndb-api

ENGINE=NDB

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 13 / 34

Page 24: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster NoOfReplicas

Implementing HA

ndb(mt)d

NoOfReplicas

Primary lead

Failover

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 14 / 34

Page 25: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster 2PC

Impelenting HA: 2PC

Datenkonsitenz a la 2PC

TransactionCoordinator

Prepare

Commit

Latenz

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 15 / 34

Page 26: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster 2PC

Impelenting HA: 2PC

100.000 Inserts:

InnoDB 0m7.911s

NDB 1m47.806s

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 15 / 34

Page 27: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster Changing Data

INSERT/UPDATE

Changing Data

Parallel Inserts

Parallel Updates

Multi Data-Nodes

Multi Api-Nodes!

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 16 / 34

Page 28: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster SELECTs

SELECT

NDB SELECTs

Key Lookups

Nested Loop Join

Push-Down-Join (SPJ)

Parallel Scans

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 17 / 34

Page 29: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster SELECTs

a SELECT id2 FROM a WHERE id=@a; 100.000 x uniform

b SELECT COUNT(*) FROM a JOIN b using (id);

c SELECT COUNT(*) FROM a JOIN b using (id) where a.id=100; 100.000x

d SELECT COUNT(id2) FROM a JOIN b using (id2) where a.id=1000;

Query InnoDB 5.5.20 ndb 7.1.0 ndb 7.2.5

a 8.526s 29.290s 29.290s

b 0.130s 16.290s 0.750sc 8.131s 40.285s 44.043sd 34.844s 560.717s 559.317s

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 18 / 34

Page 30: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster SELECTs

a SELECT id2 FROM a WHERE id=@a; 100.000 x uniform

b SELECT COUNT(*) FROM a JOIN b using (id);

c SELECT COUNT(*) FROM a JOIN b using (id) where a.id=100; 100.000x

d SELECT COUNT(id2) FROM a JOIN b using (id2) where a.id=1000;

Query InnoDB 5.5.20 ndb 7.1.0 ndb 7.2.5

a 8.526s 29.290s 29.290sb 0.130s 16.290s SPJ 0.750s

c 8.131s 40.285s 44.043sd 34.844s 560.717s 559.317s

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 18 / 34

Page 31: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster SELECTs

a SELECT id2 FROM a WHERE id=@a; 100.000 x uniform

b SELECT COUNT(*) FROM a JOIN b using (id);

c SELECT COUNT(*) FROM a JOIN b using (id) where a.id=100; 100.000x

d SELECT COUNT(id2) FROM a JOIN b using (id2) where a.id=1000;

Query InnoDB 5.5.20 ndb 7.1.0 ndb 7.2.5

a 8.526s 29.290s 29.290sb 0.130s 16.290s 0.750sc 8.131s 40.285s 44.043s

d 34.844s 560.717s 559.317s

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 18 / 34

Page 32: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster SELECTs

a SELECT id2 FROM a WHERE id=@a; 100.000 x uniform

b SELECT COUNT(*) FROM a JOIN b using (id);

c SELECT COUNT(*) FROM a JOIN b using (id) where a.id=100; 100.000x

d SELECT COUNT(id2) FROM a JOIN b using (id2) where a.id=1000;

Query InnoDB 5.5.20 ndb 7.1.0 ndb 7.2.5

a 8.526s 29.290s 29.290sb 0.130s 16.290s 0.750sc 8.131s 40.285s 44.043sd 34.844s 560.717s 559.317s

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 18 / 34

Page 33: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster SELECTs

a SELECT id2 FROM a WHERE id=@a; 100.000 x uniform

b SELECT COUNT(*) FROM a JOIN b using (id);

c SELECT COUNT(*) FROM a JOIN b using (id) where a.id=100; 100.000x

d SELECT COUNT(id2) FROM a JOIN b using (id2) where a.id=1000;

Query InnoDB 5.5.20 ndb 7.1.0 ndb 7.2.5

a 8.526s 29.290s 29.290sb 0.130s 16.290s 0.750sc 8.131s 40.285s 44.043sd 34.844s 560.717s 559.317s

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 18 / 34

Page 34: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

MySQL Cluster Making the whole Cluster HA

Begrenztes HA

HA der MySQLd?

Loadbalancer

Connectoren

Pacemaker

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 19 / 34

Page 35: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

NDB best used for:

UseCases

Viele kleine Trans.

Key/Value Lookups

HA

Hoher Durchsatz

Telco

Gaming

. . .

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 20 / 34

Page 36: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Memory

Memory Only NDB

Speicheraufteilung

IndexMemory

DataMemory

Hard Limit

UNIQUE/PK Indices

Indices und Data

Pages stick to table

Kein Auslagern

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 21 / 34

Page 37: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Memory

Memory Only NDB

Speicheraufteilung

IndexMemory

DataMemory

Hard Limit

UNIQUE/PK Indices

Indices und Data

Pages stick to table

Kein Auslagern

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 21 / 34

Page 38: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Memory

Memory Only NDB

Speicheraufteilung

IndexMemory

DataMemory

Hard Limit

UNIQUE/PK Indices

Indices und Data

Pages stick to table

Kein Auslagern

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 21 / 34

Page 39: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Memory Fixed Arrays

Frohliches Konfigurieren

IndexMemory PK, UNIQUE

DataMemory Data, (Ordered) Indices,

StringMemory Out of string memory, ...Permanent error: Schema error

MaxNoOfOrderedIndexes Maximale Zahl der Ordered Indices

MaxNoOfAttributes Max. Tabellen, Indices, Columns etc.

MaxNoOfUniqueHashIndexes Max. Unique Indices die nicht PK sind.

MaxNoOfConcurrentOperations Operation Records in TC1KB

ndb config -f: -q Id,MaxNoOfConcurrentOperations

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 22 / 34

Page 40: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Memory Memory hitting Disk

Und was ist mit Disk?

Disk IO!

MySQL Cluster schreibt inDiskCheckpointSpeed DataMemory (alsLCP) mit TimeBetweenLocalCheckpointsAbstand auf die Disk.

Das Redo Log (NoOfFragmentLoges *

FragmentLogFileSize) muss groß genug

sein, um die Anderungen wahrend 2x LCP

zu speichern.

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 23 / 34

Page 41: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Konfiguration

MySQL Cluster: Konfiguration

config.ini

Verwaltet vom mgmd

Definiert Mitglieder

Konfiguriert Teilnehmer

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 24 / 34

Page 42: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Konfiguration

StartUp

host1# ndb_mgmd [--initial] --config-file=/tmp/config.ini

host2# ndbd [--initial] --ndb-connectstring=host1

host3# ndbd [--initial] --ndb-connectstring=host1

host4# mysqld --ndb-connectstring=host1

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 25 / 34

Page 43: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Konfiguration

config.ini

[NDB_MGMD]

HostName = 10.10.10.23

NodeID = 1

[NDBD DEFAULT]

NoOfReplicas = 2

DataDir = /data/cluster

IndexMemory = 20M

DataMemory = 100M

[NDBD]

NodeID = 21

HostName = 10.10.10.21

[NDBD]

NodeID = 22

HostName = 10.10.10.22

[mysqld]

NodeID = 60

HostName = 10.10.10.20

[mysqld]

NodeID = 61

HostName = 10.10.10.24

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 26 / 34

Page 44: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Konfiguration

config.ini

[NDB_MGMD]

HostName = 10.10.10.23

NodeID = 1

[NDBD DEFAULT]

NoOfReplicas = 2

DataDir = /data/cluster

IndexMemory = 20M

DataMemory = 100M

NoOfFragmentLogFiles = 32 # 32 * (16M*4)

TimeBetweenLocalCheckpoints = 20 # 20=4MB,21=8MB,22=16MB

TimeBetweenGlobalCheckpoints = 2000

#ndbmtd: MaxNoOfExecutionThreads

# cores value

# 2 2 -> 1LQH

# 4 4 -> 2LQH

# 8 8 -> 4LQH

# Partitionen= 8*LQH

# Partition = 46.137.488 Rows

[NDBD]

NodeID = 21

HostName = 10.10.10.21

[NDBD]

NodeID = 22

HostName = 10.10.10.22

[mysqld]

NodeID = 60

HostName = 10.10.10.20

[mysqld]

NodeID = 61

HostName = 10.10.10.24

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 27 / 34

Page 45: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Konfiguration

Prozesskonfig in my.cnf

[mysqld]

ndbcluster

ndb-cluster-connection-pool = 1

[mysql_cluster]

ndb-connectstring = 10.10.10.23

[ndb_mgmd]

configdir = /data/cluster

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 28 / 34

Page 46: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Maintenance Rolling Restart

Rolling Restarts/Upgrades

Cluster muss oft restartet werden :(

Service soll HA sein.

auch bei Upgrades!

Solution: Rolling Rolling Rolling . . .

Rolling Restart halt die Datennodes hochverfugbar.

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 29 / 34

Page 47: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Maintenance Rolling Restart

Rolling Restarts/Upgrades

Cluster muss oft restartet werden :(

Service soll HA sein.

auch bei Upgrades!

Solution: Rolling Rolling Rolling . . .

Rolling Restart halt die Datennodes hochverfugbar.

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 29 / 34

Page 48: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Maintenance Rolling Restart

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 30 / 34

Page 49: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Maintenance Rolling Restart

Online Operations

ROLLING RESTART

ADD INDEX

DROP INDEX

ADD COLUMN

BACKUP

ADD/CREATENODEGROUP

REORGANIZEPARTITION

SW-UPGRADE

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 31 / 34

Page 50: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Ignored

Lost

TableSpace

(WAN) Replication

memcached-api

mod ndb

. . .

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 32 / 34

Page 51: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Maintenance

Wofur kann man die Losung gut gebrauchen?

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 33 / 34

Page 52: MySQL Cluster: HA als StorageEngine - · PDF fileWhat About Hochverfugbarkeit mit MySQL Topic Wir wollen Hochverf ugbarkeit Daten Service Und wie erreichen? Erkan Yanar (linsenraum.de)

Maintenance

Ende Gelande

Morgen Galera Cluster: (fast) alles besser!

Erkan [email protected]. . .linsenraum.de/erkuleswww.xing.com/profile/Erkan Yanar

Erkan Yanar (linsenraum.de) MySQL Cluster: HA als StorageEngine 25. April 2012 34 / 34