Be-Developer

[대규모 시스템 설계 기초] 06 키-값 저장소 설계

06 키-값 저장소 설계

  • 키/값 저장소
    • dynamo
    • memcached
    • redis

      단일서버

  • 해시테이블로 메모리에 저장, 메모리를 많이 먹을 수 있다.
  • 데이터 압축 / 자주쓰는것만 메모리에 이외에는 디스크에 저장하여 개선

    분산 저장소

    CAP 정리

    : 데이터 일관성 consistency, 가용성 availability, 파티션 감내 partition tolerance 를 모두 만족할수는 없다.

  • C 일관성 : 어떤 노드에 접속했느냐에 관계없이 같은 데이터를 봐야한다.
  • A 가용성 : 일부 노드 장애가 발생하더라도 항상 응답을 받을 수 있어야 한다.
  • P 파티션 감내 : 네트워크에 파티션이 생기더라도 시스템은 계속 동작해야한다. (?)
  • CP / AP/ CA 시스템으로 분리.
  • CA : 네트워크장애는 피할 수 없는 일으로 여겨지므로, 실제로 존재하지 않는 시스템.
  • CP : 가용성포기, 한대의 서버 오류시 데이터 불일치 문제를 피하기 위해 일관성을 보장하기위해 장애복구시까지 오류를 반환.
  • AP : 데이터 불일치를 감안하고, 가용성을 보장하기위해 계속 동작.read/write
  • 요구사항에 맞도록 면접관과 상의하고 CAP정리를 적용하자.