key-value store) 설계| 목표/문제 | 기술 |
|---|---|
| 대규모 데이터 저장 | 안정 해시를 사용해 서버들에 부하 분산 |
| 읽기 연산에 대한 높은 가용성 보장 | 데이터를 여러 데이터 센터에 다중화 |
| 쓰기 연산에 대한 높은 가용성 보장 | 버저닝 및 벡터 시계를 사용한 충돌 해소 |
| 데이터 파티션 | 안정 해시 |
| 점진적 규모 확장성 | 안정 해시 |
다양성(heterogeneity) | 안정 해시 |
| 조절 가능한 데이터 일관성 | 정족수 합의(quorum consensus) |
| 일시적 장애 처리 | 느슨한 정족수 프로토콜(sloppy quorum)과단서 후 임시 위탁( hinted handoff) |
| 영구적 장애 처리 | 머클 트리(Merkle tree) |
| 데이터 센터 장애 대응 | 여러 데이터 센터에 걸친 데이터 다중화 |
PUT(key, value), GET(key), DELETE(key) 등 최소한의 조작 인터페이스데이터 모델
Key → Value 매핑저장 구조
만료/퇴출 정책
동시성/원자성
단일 서버에서는 빠른 접근(O(1))·TTL/eviction·내구성 옵션까지 갖추면 실무적으로 충분
| 요구사항 | 의미 |
|---|---|
| Consistency (일관성) | 모든 노드가 같은 시점에 동일한 데이터를 보여준다 |
| Availability (가용성) | 모든 요청에 대해 항상 응답을 돌려줄 수 있다 (성공/실패 여부 무관) |
| Partition Tolerance (분할 내성) | 네트워크에 파티션이 생기더라도 시스템은 계속 동작하여야 한다는 뜻 |
| 구분 | AP 시스템 | CP 시스템 |
|---|---|---|
| 보장 | 가용성 + 분할 내성 | 일관성 + 분할 내성 |
| 희생 | 강한 일관성 | 가용성 |
| 허용 일관성 수준 | 최종 일관성(Eventual Consistency) | 강한 일관성(Strong Consistency) |
| 장점 | 고가용성, 글로벌 서비스에 유리 | 데이터 무결성 보장, 트랜잭션 안전 |
| 단점 | 일시적 불일치 허용 | 서비스 중단 가능 |
| 대표 사례 | 글로벌 소셜 네트워크, 메시징 서비스, 검색, 로그 수집 | 금융 거래, 주문/결제, 분산 락/메타데이터, 인증 |
| 대표 시스템 | DynamoDB, Cassandra, Riak | ZooKeeper, HBase, Etcd |
automatic scaling)heterogeneity): 각 서버의 용량에 맞게 가상노드 수 조정 가능| 프로토콜 | 개념 설명 | 대표 사례 |
|---|---|---|
| 2PC (Two-Phase Commit) | Coordinator가 모든 참여 노드에 Commit 가능 여부를 묻고, 모두 동의하면 Commit, 아니면 Abort | 전통적 RDB, 금융/ERP 시스템 |
| Paxos | Proposer-Acceptor 구조에서 다수 노드가 단일 값에 합의하도록 보장 합의 알고리즘의 고전적 표준 | Google Chubby, Megastore |
| Quorum-based | 읽기/쓰기 요청에서 다수파 응답을 요구하여 일관성 확보R+W > N 규칙으로 CAP 트레이드오프 조정 가능 | Cassandra, DynamoDB |
| Raft | Paxos를 단순화한 합의 알고리즘 Leader 기반 로그 복제를 통해 분산 노드 간 일관성 유지. | etcd, Consul, CockroachDB, Kubernetes |
| CRDT (Conflict-free Replicated Data Types) | 수학적 성질을 가진 데이터 구조로 병합 시 항상 동일 결과 네트워크 분할이나 동시성 환경에서도 충돌 없는 최종 일관성 제공 | Redis CRDT, Riak, Google Docs |
참고: Tunable Consistency란?
정의: 분산 데이터베이스에서 읽기(Read)와 쓰기(Write) 연산 시 필요한 복제본(Replica)의 수를 조정하여, 일관성과 가용성 사이의 균형을 사용자가 선택할 수 있는 모델
핵심 공식:
R + W > N
N: 전체 복제본 수R: 읽기에 필요한 복제본 수W: 쓰기에 필요한 복제본 수특징:
Consistency Level을 지정 가능 (ONE, QUORUM, ALL 등).| 모델 | 설명 |
|---|---|
강한 일관성(strong consistency) | 모든 읽기 연산은 가장 최근에 갱신된 결과를 반환 |
약한 일관성(weak consistency) | |
최종 일관성(eventual consistency) | 약한 일관성의 한 형태 갱신 결과가 결국에는 모든 사본에 반영(동기화)되는 모델 |
개념
동작 방식
충돌 판정
단점
failure detection) 기법heartbeat counter) 쌍)offline) 로 판정failure resolution)hinted handoff)anti-entropy) 프로토콜