R&D/NoSQL

mysql cluster

sunshout 2016. 9. 1. 11:00

MySQL cluster 는 분산 DB로 크게 3개의 구성요소를 가지고 있다.

- Shared nothing in-memory database


Component 

 기능

 기타

 SQL Nodes

 쿼리를 수행하는 노드

일반적인 mysqld 는 아님

 Data Nodes

 실제 데이터를 저장하는 노드

 기본적으로는 in-memory db임

 . disk에 저장하는 옵션도 있음

 Storage Engine

NDB로 구성

대몬:

ndbd

ndbmtd: ndbd(multi-threaded)

 Management Server

 관리 서버

- providing configuration data

- start/stop nodes

 다른 노드를 시작하기 전에 가장 먼저 동작해야 함

대몬: ndb_mgmd



NDBAPI를 이용해서 SQL Nodes를 건너뛰고 direct 로 Data Nodes에 접근 가능

C++ API 를 제공


Checkpoint

MySQL Cluster는 기본적으로 In-memory DB지만 Checkpoint 에 의해서 Consistency를 보장한다. Checkpoint의 타입은 Local Checkpoint(LCP)와 Glocal Checkpoint(GCP)로 나뉜다.

Local Checkpoint는 수분마다 발생하며, single node의 데이터를 disk에 저장한다.

Global Checkpoint는 수초마다 발생하며, 모든 노드의 transaction이 synchronized되며, redo-log가 disk로 flushing된다.


Partition

Cluster에 저장된 데이터의 일부

각 노드는 자신에게 할당된 Partitions와 Replica 를 가짐


용어

NDB: Network Database


참조

http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-overview.html