키-값 저장소 설계
키-값 저장소 설계
- 비 관계형 데이터베이스
- 고유식별자(key)를 키로 가짐
- 키와 값 사이의 연결 관계를 “키-값” 쌍(pair)라고 표현
분산 키-값 저장소의 CAP 정리
데이터 일관성(Consistency), 가용성(Availability), 파티션 감내성(Partition Tolerance)라 표현하며, 동시에 3가지 요구사항을 만족하는 것은 불가능하다는 정리
용어 정리
데이터 일관성(Consistency)
- 분산 시스템에 접속하는 모든 클라이언트는 어떤 노드에 접속했느냐에 관계 없이 언제나 같은 데이터를 보게 되어야 한다.
가용성(Availability)
- 분산 시스템에 접속하는 클라이언트는 일부 노드에 장애가 발생하더라도 항상 응답을 받을 수 있어야 한다.
파티션 감내성(Partition Tolerance)
- 파티션은 두 노드 사이에 통신 장애가 발생하였음을 의미한다. 파티션 감내는 네트워크에 파티션이 생기더라도 시스템은 계속 동작하여야 한다는 것을 뜻한다.
분산 키-값 저장소가 가져야하는 기능
목표/문제 | 기술 |
---|---|
대규모 데이터 저장 | 안정 해시를 사용해 서버들에 부하 분산 |
읽기 연산에 대한 높은 가용성 보장 | 여러 데이터센터에 다중화 |
쓰기 연산에 대한 높은 가용성 보장 | 버저닝 및 벡터 시계를 사용한 충돌 해소 |
데이터 파티션 | 안정 해시 |
점진적 규모 확장성 | 안정 해시 |
다양성(heterogeneity) | 안정 해시 |
조절 가능한 데이터 일관성 | 정족수 합의 |
일시적 장애 처리 | 느슨한 정족수 프로토콜과 단서 후 임시 위탁 |
영구적 장애 처리 | 머클 트리 |
데이터 센터 장애 대응 | 여러 데이터 센터에 걸친 데이터 다중화 |
This post is licensed under CC BY 4.0 by the author.