DATABASE
샤드란?
Rainbound-IT
2021. 8. 6. 13:58
반응형
샤드란
샤드(shard)란 샤딩을 통해 나누어진 블록들의 구간(혹은 Epoch)을 말한다. 샤드는 지분증명과 관련이 있는 것이 아니라 확장성 개선과 관련된 개념이다. 샤딩(sharding)의 아이디어는 가능한 계정(계약도 계정)의 공간을 숫자 주소의 첫 번째 숫자를 기준으로 하위 공간으로 분할하는 것이다. 샤드에 포함된 정보는 여전히 다른 노드와 공유할 수 있으며, 모든 사람이 여전히 모든 원장 항목을 볼 수 있기 때문에 원장을 분산하고 안전하게 유지할 수 있다. 그들은 단지 모든 정보를 처리하고 저장하지 않는다.
DB 서버 부하 분산, 샤드의 개념
- 부하 분산을 위해 Application/DB Level에서 다수의 데이터베이스에 데이터를 분산 저장하는 기법
- 데이터베이스 분야에서 성능, 확장성 및 I/O 대역폭을 개선하는데 사용하는 분산처리 기법
샤드 혹은 샤딩기법은 데이터를 분리하기 용이한 기준을 잡고 데이터를 분산저장하거나 Row의 행수 등을 기준으로 분산저장을 한다. 최근 데이터의 폭발적인 증가는 빅데이터(Bigdata)라는 신조어를 만들게 되었고, 수많은 빅데이터를 처리하기 위해서는 데이터를 모두 동일하게 복제하는 방식이 아닌 수평적인 서버들에 분산 저장하여 처리를 하는 방식으로 가게 되었다. 물론 샤드의 문제를 방지하기 위해서 리플리카(replica)의 방식을 섞어서 실제로는 둘 중 하나의 방식이 아닌 여러대의 노드에 혼합하여 처리한다.
나. 샤드의 구성요소
구분 | 구성 요소 | 설명 |
주요 기법 | vertical partitioning | 테이블 별로 서버를 분할하는 방식 |
Range Based Partitioning | 하나의 테이블이 거대해질 경우 서버를 분리하는 방식 | |
Key or Hash Based Partitioning | 키와 같은 값을 해쉬함수(Hash)에 넣어 나오는 값으로 서버를 지정하는 방식 | |
Directory Based Partitioning | 파티셔닝 매커니즘을 제공하는 추상화된 서비스 생성 |
파티셔닝과 샤딩의 차이
- 파티셔닝: 하나의 데이터베이스 인스턴스에서 데이터(테이블)를 분할
- 샤딩: 데이터를 여러 데이터베이스 인스턴스로 분할
반응형