가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 정리 6장 키-값 저장소 설계
요약
가상 면접 사례로 배우는 대규모 시스템 설계 기초 리뷰
아키텍처 개념을 실제 설계 판단에 연결하기 위한 참고 노트입니다.
핵심 포인트
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초 리뷰
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- 6장 키-값 저장소 설계
- 단일 vs 분산 키-값 저장소
- 결론
지식 그래프
정리 내용
가상 면접 사례로 배우는 대규모 시스템 설계 기초
학습 목적으로 정리한 내용으로 문제가 있다면 내리겠습니다.
(이 책은 한국어판 저작권은 에이전시 원을 통해 저작권자와의 독점 계약으로 인사이트에 있습니다. 저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 무단 복제를 금합니다.)
6장 키-값 저장소 설계
키-값 데이터베이스라고 불리는 비-관계형 데이터베이스 이다. 이 저장소에 저장되는 값은 고유 식별자인 키를 가져야 한다.
단일 vs 분산 키-값 저장소
- 한 대 서버만 사용하는 단일 키-값 저장소를 설계하는 것은 쉽다. 키값을 모두 메모리에 넣어두고 접근하는 방법이다.
- 이 방법은 메모리의 용량과 부하 문제로 소규모 프로젝트에 어울린다.
- 분산 키-값 저장소의 경우 분산 해시 테이블로 불리며 여러 서버에 분산 저장하는 구조이다. 분산 시스템을 설계할 땐 CAP정리를 이해하고 있어야한다.
CAP정리
CAP는 데이터의 일관성, 가용성, 파티션 감내 이 세가지 요구사항을 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다는 정리이다.
- 일관성 - 분산 시스템에 접속하는 모든 클라이언트는 어떤 노드에 접속했는냐 상관없이 언제나 같은 데이터를 보게 되어야한다.
- 가용성 - 분산 시스템에 접속하는 클라이언트는 일부 노드에 장애가 발생하더라도 항상 응답을 받을 수 있어야한다.
- 파티션 감내- 파티션은 두 노드 사이에 통신 장애가 발생하였음을 의미한다. 파티션 감내는 네트워크에 파티션이 생기더라도 시스템은 계속 동작해야한다를 의미한다. CAP정리에 따르면 어느 두 가지 사항을 만족하느냐에 따라 다음과 같이 분류된다. CP, AP, CA
- CP 시스템 : 일관성과 파티션 감내를 지원하는 저장소, 가용성을 희생
- AP 시스템 : 가용성과 파티션 감내를 지원하는 저장소, 일관성을 희생
- CA 시스템 : 일관성과 가용성을 지원하는 저장소, 파티션 감내는 지원하지 않는다 → 하지만 네트워크 장애는 피할 수 없는 일으므로 실세계에서는 존재하지 않는다.
결론
- 대규모 데이터 저장 → 안정 해시를 사용하는 서버 부하 분산 구조
- 읽기 연산에 대한 높은 가용성 보장 → 데이터를 여러 데이터 센터에 다중화
- 쓰기 연산에 대한 높은 가용성 보장 → 버저닝 및 백처 시계를 사용한 충돌 해소
- 데이터 파티션 → 안정 해시
- 점직적 규모 확장성 → 안정 해시
- 다양성 → 안정 해시
- 조정 가능한 데이터의 일관성 → 정족수 합의
- 일시적 장애 처리 → 느슨한 정족수 프로토콜과 단서 후 임시 위탁
- 영구적 장애 처리 → 머클 트리
- 데이터 센터 장애 대응 → 여러 데이터 센터에 걸친 다중화
학습 목적으로 정리한 내용으로 문제가 있다면 내리겠습니다.
(이 책은 한국어판 저작권은 에이전시 원을 통해 저작권자와의 독점 계약으로 인사이트에 있습니다. 저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 무단 복제를 금합니다.)
출처
- 원문: https://www.notion.so/6-245172a556d680a28e4be9cec6838138
- Vault path: wiki/notes/system-design/가상-면접-사례로-배우는-대규모-시스템-설계-기초---정리-6장-키-값-저장소-설계.md