06 키-값 저장소 설계
- 키/값 저장소
- dynamo
- memcached
- redis
단일서버
- 해시테이블로 메모리에 저장, 메모리를 많이 먹을 수 있다.
- 데이터 압축 / 자주쓰는것만 메모리에 이외에는 디스크에 저장하여 개선
분산 저장소
CAP 정리
: 데이터 일관성 consistency, 가용성 availability, 파티션 감내 partition tolerance 를 모두 만족할수는 없다.
- C 일관성 : 어떤 노드에 접속했느냐에 관계없이 같은 데이터를 봐야한다.
- A 가용성 : 일부 노드 장애가 발생하더라도 항상 응답을 받을 수 있어야 한다.
- P 파티션 감내 : 네트워크에 파티션이 생기더라도 시스템은 계속 동작해야한다. (?)
- CP / AP/ CA 시스템으로 분리.
- CA : 네트워크장애는 피할 수 없는 일으로 여겨지므로, 실제로 존재하지 않는 시스템.
- CP : 가용성포기, 한대의 서버 오류시 데이터 불일치 문제를 피하기 위해 일관성을 보장하기위해 장애복구시까지 오류를 반환.
- AP : 데이터 불일치를 감안하고, 가용성을 보장하기위해 계속 동작.read/write
- 요구사항에 맞도록 면접관과 상의하고 CAP정리를 적용하자.