https://s3.amazonaws.com/media.sundog-soft.com/SystemDesign/SystemDesign.pdf
Scalability
- Single point of Failure - 금지
- vertical scaling - 스펙만 늘림. 한계가 분명 존재.
- horizontal scaling - no downtime.
- 서버는 stateless 해야 한다.
Failover stratgies
DB horizontal scaling
- Cold standby (제일 비용이 적게든다)
- 주기적인 백업을 평소에 해둠
- 재해 → 백업 복구 → 신규 서버로 교체 ( downtime )
- Warm standby (better way)
- replication을 지속적으로 한다. always warm
- 서버 다운되면 살아있는 그 stanby 서버로 교체
- Hot standby (best)
- 실시간 복제 (no delay)
- DB down —→ standby에다가 바로 RW 시킨다.
- Multi primary (찐 horzontal)
- 즉시 바로 여러 곳의 DB에 Write한다. (hot, warm은 복제방식)
sharding == DB horizontal scaling
샤드는 DB의 horizontal partition이다.
각자 샤드별로 복구 전략도 있다.
mongo : 노드 안에 적어도 3개의 인스턴스 배치해서 재해에 대비할 수 있음.
cassandra : node 중 아무나가 priamray node가 될수있다.