System Design에서의 Database Sharding
(dev.to)데이터베이스 샤딩은 단일 대규모 데이터베이스를 여러 개의 작은 독립적인 샤드로 분할하여 수평 확장을 가능하게 하는 핵심 시스템 설계 기법입니다. 이는 방대한 양의 데이터와 트래픽을 처리하며 단일 서버의 한계를 극복하고, 고가용성과 선형적 확장성을 제공합니다. 효과적인 샤드 키 설계와 범위 기반 또는 해시 기반과 같은 적절한 샤딩 전략 선택이 구현의 성공을 좌우합니다.
- 1데이터베이스 샤딩은 대규모 데이터를 여러 작은 샤드에 분산 저장하여 수평 확장을 가능하게 하는 시스템 설계 기법이다.
- 2이는 단일 데이터베이스 서버의 CPU, 메모리, 디스크 I/O, 네트워크 대역폭 한계를 극복하고 선형적 확장성, 고가용성, 결함 격리를 제공한다.
- 3샤드 키(Shard Key)의 선택은 샤딩 성공에 결정적이며, 높은 카디널리티, 균등 분포, 주요 쿼리 패턴과의 정렬이 필수적이다.
- 4주요 샤딩 전략에는 특정 범위의 키를 할당하는 '범위 기반 샤딩'과 해시 함수를 이용하는 '해시 기반 샤딩'이 있다.
- 5잘못된 샤드 키 설계(예: 자동 증가 정수나 타임스탬프)는 핫스팟과 비효율적인 크로스-샤드 연산을 유발하여 성능 저하의 원인이 될 수 있다.
왜 중요한가
배경과 맥락
업계 영향
한국 시장 시사점
댓글
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.