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