Phase 2레슨 9

Replication

Primary/Replica, Read Replica, Replication Lag, Failover, Sharding

💡ELI5·

Replication을 사본에 비유하면

          Primary (쓰기)
         /            Replica1   Replica2 (읽기)
💡 비유Replication = 중요 문서의 사본을 여러 군데 보관. 원본(Primary)에 내용을 추가하면 사본(Replica)에도 복사된다. 사본이 여러 개면 여러 사람이 동시에 읽을 수 있다(읽기 확장). 원본이 불타도 사본이 있으니 복구 가능(가용성).
🔬Deep Dive·

Primary-Replica 복제 방식

방식동작일관성성능
SynchronousPrimary가 Replica 확인 후 커밋높음 (데이터 유실 없음)낮음 (Replica 대기)
AsynchronousPrimary가 즉시 커밋, Replica는 나중에 반영낮음 (Lag로 유실 가능)높음
Semi-Synchronous최소 1개 Replica 확인 후 커밋중간중간
🔬Deep Dive·

Sharding / Partitioning

Users → Shard Key → ┌─ DB1 (A-G)
                      ├─ DB2 (H-N)
                      └─ DB3 (O-Z)
방식분산 기준문제점
Range-based값의 범위 (A-G, H-N...)Hot Partition 발생 가능
Hash-basedShard Key 해시 → Partition범위 조회 어려움
Consistent Hashing해시 링 위에 배치Shard 추가/제거 시 재배치 최소화
⚖️Trade-off·

Replication vs Sharding

구분ReplicationSharding
목적읽기 확장, 가용성쓰기 확장, 용량 확장
데이터전체 복사분할 저장
복잡성낮음높음 (분산 쿼리, 조인)
장애 영향Replica 손실 = 읽기 용량 감소Shard 손실 = 데이터 유실

❓ 체크포인트 질문

  1. 1.Primary-Replica 구조에서 Read Replica의 목적은?
  2. 2.Replication Lag이 애플리케이션에 미치는 영향은?
  3. 3.Failover 과정에서 발생할 수 있는 문제는?
  4. 4.Sharding과 Replication의 차이는?
  5. 5.Consistent Hashing이 Sharding에서 해결하는 문제는?