TIL

6장 키-값 저장소 설계

문제 이해 및 설계 범위 확정

단일 서버 키-값 저장소

분산 키-값 저장소

CAP 정리

CAP 정리의 구체적 사례

시스템 컴포넌트

분산 키-값 저장소 구현에 사용될 핵심 컴포넌트 및 기술들이며 널리 사용되는 키-값 저장소인 다이나모, 카산드라, 빅테이블 사례를 참고

데이터 파티션

데이터 다중화

데이터 일관성

장애 처리

시스템 아키텍처 다이어그램

쓰기 경로

카산드라(Cassandra)의 쓰기 경로를 참고

  1. 쓰기 요청이 커밋 로그 파일에 기록된다.
  2. 데이터가 메모리 캐시에 기록된다.
  3. 메모리 캐시가 가득 차거나 사전 정의된 임계치에 도달하면 데이터는 디스크의 SSTable에 기록된다.
  4. SSTable(Sorted-String Table로 <키, 값> 순서쌍을 정렬된 리스트 형태로 관리하는 테이블

읽기 경로

  1. 읽기 요청을 받은 노드는 데이터가 메모리 캐시에 있는지 먼저 살핀다.
  2. 데이터가 메모리에 없으면 디스크에서 가져오는데 블룸 필터(Bloom filter)가 흔히 사용된다.
  3. 블룸 필터를 통해 어떤 SSTable에 키가 보관되어 있는지 알아낸다.
  4. SSTable에서 데이터를 가져온다.
  5. 데이터를 클라이언트에게 반환한다.

요약