GOLDILOCKS 는 테이블 정책으로 4가지 Sharding 정책 중 하나를 옵션으로 선택할 수 있도록 제공합니다.
Sharding 정책이란, 테이블의 데이터를 특정 클러스터 그룹으로 분배하여 저장하는 방식을 의미합니다.
4가지 Sharding 정책은 다음과 같습니다.
- Cloned Strategy
- Hash Sharding Strategy
- Range Sharding Strategy
- List Sharding Strategy
정책 |
설명 |
Cloned |
테이블의 모든 데이터를 동일하게 복제 |
Hash Sharding |
Sharding Key 의 Hash 값을 기준으로 테이블의 데이터를 분배 |
Range Sharding |
Sharding Key 의 범위값을 기준으로 테이블의 데이터를 분배 |
List Sharding |
Sharding Key 의 나열값을 기준으로 테이블의 데이터를 분배 |
Cloned Strategy
Cloned Table 에는 다음과 같은 추가옵션을 부여할 수 있습니다.
- AT CLUSTER WIDE
- AT CLUSTER GROUP [group_list]
옵션 |
설명 |
AT CLUSTER WIDE |
CLUSTER 의 모든 노드, 멤버에 데이터를 복제 |
AT CLUSTER GROUP [group_list] [,group_list] |
지정한 CLUSTER 의 노드, 멤버에 데이터를 복제 |
gSQL> CREATE TABLE MOZI ( ID INTEGER, NAME VARCHAR(128) ) 2 CLONED 3 AT CLUSTER WIDE; Table created.
gSQL> CREATE TABLE MOZI ( ID INTEGER, NAME VARCHAR(128) ) 2 CLONED 3 AT CLUSTER GROUP G1, G2;
Table created.
Hash Sharding Strategy
gSQL> CREATE TABLE MOZI ( ID INTEGER, NAME VARCHAR(128) ) 2 SHARDING BY HASH ( ID ); Table created.
Range Sharding Strategy
Range Table 에는 다음과 같은 추가옵션을 부여할 수 있습니다.
- AT CLUSTER WIDE
- AT CLUSTER GROUP [group_list]
옵션 |
설명 |
AT CLUSTER WIDE |
노드가 추가된 경우, REBALANCE 를 통해 추가된 노드에 재배치 |
AT CLUSTER GROUP [group_list] |
지정한 CLUSTER 의 노드, 멤버에 데이터를 복재 |
gSQL> CREATE TABLE MOZI ( ID INTEGER, NAME VARCHAR(128) ) 2 SHARDING BY RANGE ( ID ) 3 AT CLUSTER WIDE 4 SHARD S1 VALUES LESS THAN ( 100 ), 5 SHARD S2 VALUES LESS THAN ( 200 ), 6 SHARD S3 VALUES LESS THAN ( MAXVALUE ); Table created. gSQL> CREATE TABLE MOZI ( ID INTEGER, NAME VARCHAR(128) ) 2 SHARDING BY RANGE ( ID ) 3 SHARD S1 VALUES LESS THAN ( 100 ) AT CLUSTER GROUP G1, 4 SHARD S2 VALUES LESS THAN ( 200 ) AT CLUSTER GROUP G2, 5 SHARD S3 VALUES LESS THAN ( MAXVALUE ) AT CLUSTER GROUP G3; Table created.
List Sharding Strategy
List Table 에는 다음과 같은 추가옵션을 부여할 수 있습니다.
- AT CLUSTER WIDE
- AT CLUSTER GROUP [group_list]
옵션 |
설명 |
AT CLUSTER WIDE |
노드가 추가된 경우, REBALANCE 를 통해 추가된 노드에 재배치 |
AT CLUSTER GROUP [group_list] |
지정한 CLUSTER 의 노드 |
gSQL> CREATE TABLE MOZI ( ID INTEGER, NAME VARCHAR(128) ) 2 SHARDING BY LIST ( ID ) 3 AT CLUSTER WIDE 4 SHARD S1 VALUES IN ( 1 ), 5 SHARD S2 VALUES IN ( 2, 3 ), 6 SHARD S3 VALUES IN ( DEFAULT ); Table created. gSQL> CREATE TABLE MOZI ( ID INTEGER, NAME VARCHAR(128) ) 2 SHARDING BY LIST ( ID ) 3 SHARD S1 VALUES IN ( 1 ) AT CLUSTER GROUP G1, 4 SHARD S2 VALUES IN ( 2, 3 ) AT CLUSTER GROUP G2, 5 SHARD S3 VALUES IN ( DEFAULT ) AT CLUSTER GROUP G3; Table created.
Oracle 의 파티션 테이블과 역할면에서 비슷하다고 볼 수 있습니다.
'Database > Goldilocks' 카테고리의 다른 글
[GOLDILOCKS] 데이터베이스 구동 단계별 설명 및 방법 알아보기 (0) | 2018.05.31 |
---|---|
[GOLDILOCKS] 이중화를 위한 cyclone 의 CDC 방식 알아보기 (0) | 2018.05.27 |
[GOLDILOCKS] INSTANCE 메모리 구조 알아보기 (0) | 2018.05.26 |
[GOLDILOCKS] Scale-Out 이 가능한 클러스터 데이터베이스 골디락스 (0) | 2018.05.25 |
[GOLDILOCKS] 클라이언트 접속 방식 DA / CS / Dedicated / Shared 알아보기 (0) | 2018.05.24 |