Light Blue Pointer
본문 바로가기
Developing/TIL(CS)

클러스터링과 샤딩의 차이점

by Greedy 2024. 5. 28.
  Clustering Sharding
목적
Purpose
고가용성(High Availability), 로드 밸런싱(Load Balancing) 확장성(Scalability), 성능 향상(performance improvement)
구조 여러 개의 데이터베이스 인스턴스(Node)가 하나의 클러스터를 구성
인스턴스는 서로 복제(replication)되어 동일한 데이터를 유지
여러 개의 독립된 데이터베이스 인스턴스(샤드)로 분할하여 저장하고, 샤드 키를 통해 데이터를 적절한 샤드에 분배
시스템의 확장성과 성능을 향상시킴
데이터 분포
Data Distribution
모든 노드가 동일한 데이터 저장
All nodes store the same data
각 샤드가 일부 데이터만 저장
Each shard stores only a subset of data
장애를 얼마나 잘 견디는지
Fault Tolerance
한 노드 장애 시 다른 노드가 대체 가능
Other nodes can replace a failed node
샤드 중 하나에 장애 발생 시 해당 데이터에 접근 불가
If one shard fails, data in that shard is inaccessible
데이터 일관성
Data Consistency
높은 일관성 유지
High consistency
일관성 유지가 어려울 수 있음
Maintaining consistency can be challenging
복잡성
Complexity
비교적 낮음
Relatively lower
비교적 높음
Relatively higher

 

 

'Developing > TIL(CS)' 카테고리의 다른 글

RDBMS의 ACID 트랜잭션과 NoSQL의 BASE 속성  (0) 2024.05.28
NoSQL의 CAP 이론(The CAP theorem)  (0) 2024.05.28
NoSQL과 RDBMS의 차이  (0) 2024.05.28
Creational patterns  (0) 2024.04.18
디자인 패턴  (0) 2024.04.17