2-3. Goldilocks Cluster 주요 기능
        1) replica
        2) shard
        3) failover
        4) online scale out
        5) (etc) global index, sequence



2) Shard

Member가 같은 Group 내 데이터를 복제한다면, 서로 다른 Cluster Group은 데이터를 분산 저장할 수 있다. (복제도 가능하다.)
이에대한 설명을 위해 먼저 Cluster Table 종류와 Shard에 대한 설명을 선행한다. Cluster System의 Table object는 크게 Cloned Table과 Sharded Table로 구분되며, Sharded Table은 샤딩 방식에 따라 Hash, Lange, List Sharded Table로 구분할 수 있다.

- Cloned Table

테이블의 모든 데이터를 복제하여 배치한다. Cloned Table는, 서로 다른 Group이더라도 동일한 데이터를 갖는 테이블이다.
3by2(3개의 group과 각 2개의 member)로 구성 된 클러스터 시스템에 Cloned Table을 생성할 경우, 총 6개의 노드가 해당 테이블에 대해 동일한 데이터를 갖는다. Cloned Table 생성 시 Cluster system 내 모든 Group에 복제되도록 하거나(cluster-wide), 특정 Group에만 데이터를 배치(group specific) 할 수 있다.
 
[ Cluster 3by2 System에 Cluster-Wide Cloned table 생성 시 ]
cloned at cluster wide로 테이블을 생성 할 경우, 이후 cluster group이 추가(scale out)되더라도 추가된 신규 그룹에도 자동으로 데이터가 복제된다.
/* DML이 빈번하게 이루어지는 Table을 Cloned Table로 생성할 경우 성능저하가 발생할 수 있으므로, 
2개 이상의 Group이 존재하는 Cluster system에서는 업무 내용을 정확히 파악하여 Cloned Table을 배치해야 한다. */
/* 모든 Group에서 Select만 빈번하게 일어나는 테이블이라면 Cloned로 생성하는 것이 성능에 좋을 수 있다 */ 


[ Cluster 3by2 System에 Group-Specific Clone table 생성 시 ]
혼동하지 말아야 할 것은, 그룹 G1/G2에만 데이터가 존재한다고 해도 G3에서 데이터 조회가 가능하다. 
Goldilocks Cluster System은 여러개의 노드를 하나의 인스턴스로 묶어주는 개념이기에, 데이터를 물리적으로 저장하지 않고있는 G3에서 데이터를 조회한다고 해도 Global하게 데이터를 읽어들인다. 



- Sharded Table

테이블의 데이터를, 사용자가 수립한 정책에 따라 그룹 별 분산 배치한다. Shared Table의 경우, 서로 다른 Group은 서로 다른 Data를 갖는다.
사용자가 선택할 수 있는 Sharding 방식은 세가지로, Hash Sharding/Lange Sharding/List Sharding 이다.

[ Cluster 3by2 System에 Range Shared table 생성 시 ]
잠깐 언급했 듯 그룹 G3에 80이하의 데이터가 존재하지 않는다고 해도, 테이블 Select 시 모든 group의 데이터를 global하게 조회한다.
마찬가지로 다른 Group에 있는 데이터에 대한 DML이 가능하다.

 

  • Hash sharded table : 테이블의 data 를 sharding key 의 해쉬(hash)값을 기준으로 여러개의 shard 로 분할하여 cluster system 에 배치
  • Range sharded table : 테이블의 data 를 sharding key 의 범위(range)값을 기준으로 여러개의 shard 로 분할하여 cluster system 에 배치
  • List sharded table : 테이블의 data 를 sharding key 의 나열(list)값을 기준으로 여러개의 shard 로 분할하여 cluster system 에 배치


'IT Engineer > Database' 카테고리의 다른 글

goldilocks cluster network location  (0) 2019.02.13
cluster replica  (0) 2019.02.13
cluster failover  (0) 2019.02.13
Global secondary index  (0) 2019.02.13
global sequence  (0) 2019.02.13

+ Recent posts