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 |
'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 |