본문 바로가기
IT기술노트/데이터베이스

데이터베이스 샤드(Database Shard)

by 비트코기 2021. 3. 7.

I. 대용량 데이터베이스 처리를 위한 파티셔닝 단위, 데이터베이스 샤드의 개요

가. 데이터베이스 샤드(Database Shard)의 정의

   - 대용량 데이터베이스의 가용성, 확장성, 성능향상 처리를 위해 데이터베이스를 분할하는(파티셔닝) 분할 단위 또는 개개의 파티션

나. 데이터베이스 샤드의 특징

Replication

- 클러스터 내의 노드 복제 통한 높은 가용성과 안정성 제공

Scale-Out

- 스케일 업 한계 해결, 노드 중심 확장, 확장의 유연성, 수평 확장

Efficiency

- 효율적 자원 활용 및 샤드 구조 독립적 단위 APP 운영


II. 데이터베이스 샤드의 개념도 및 샤드 유형

가. 데이터베이스 샤드의 개념도

- 샤드 키를 어떻게 정의하느냐에 따라 데이터 분산 결정, 샤드(파티션) 결정

나. 데이터베이스 샤드의 유형

유형

개념도

주요특징

Hash

Sharding

- 가장 간단한 로직
- 키-값 형태
- Hash function  필요
- Cluster내 노드 추가시 Re-Sharding 필요
- 효율저 공간 활용 다소 부족

예) Memcached

Dynamic Sharding

- 확장성 유연(Scale-Out)
- 키-값 형태
- Locator Service 및 추가 참조 자원 필요
- Range, List 등으로 범위 분할 (기간, 지역)

예) HDFS, MongoDB

Entity Group

- Non 키-값 형태
- Single 물리적 샤드 쿼리 효율적 수행
- 단일 샤드내에서 강한 응집도 구조
- 사용자별 분할저장
- 확장성 유연(Scale-out)

예) Google Megastore

Hierarchical Keys & Column-Oriented Database

- 컬럼기반 데이터베이스 적용
- 계층적 기본(행키, 열키) 쌍으로 존재
- 독립적 샤딩 매커니즘 효율적인 스토리지 엔진

예) Big Table, Cassandra

반응형

댓글