← 질문 목록
#52깊이 0
분산 시스템에서 CAP 중 무엇을 포기하게 되는가?
가용성이나 일관성 중 하나다. 네트워크가 끊기는 일은 고를 수 있는 것이 아니라 일어나는 것이라, 분단 내성은 사실상 전제다.
| 속성 | 분단 시 의미 |
|---|---|
| 분단 내성 (P) | 네트워크는 끊긴다. 고르는 것이 아니다 |
| 일관성 (C) | 끊긴 동안 응답을 막는다 |
| 가용성 (A) | 끊긴 동안 옛 값이라도 답한다 |
그래서 실제 선택은 CP냐 AP냐다. 결제 잔액은 틀린 값을 주느니 막는 편이 낫고, 상품 조회수는 조금 틀려도 답하는 편이 낫다.
오해가 잦은 지점이 있다. 셋 중 둘을 항상 고른다는 뜻이 아니다. 분단이 없는 평상시에는 일관성과 가용성을 함께 지킬 수 있다.
PACELC는 분단이 없을 때의 지연과 일관성까지 다룬다. 분단이 없을 때도 지연과 일관성 사이에서 골라야 한다는 확장이다.
추천 꼬리질문
관련 질문
- 캐시를 지우는 일이 어려운 이유는?아키텍처 · 분산시스템캐시 무효화(Cache Invalidation)의 어려움은 분산 시스템의 일관성(Consistency) 문제와 직결된다.
- 노드를 늘릴 때 일관된 해싱이 필요한 이유는?아키텍처 · 분산시스템일관된 해싱은 분산 시스템에서 데이터 분배와 가용성, 일관성을 조절하는 CAP 정리의 구현 전략 중 하나이다.
- 읽기와 쓰기 모델을 나누면 무엇을 얻고 잃는가?아키텍처 · 분산시스템읽기/쓰기 모델 분리(CQRS)는 CAP 정리에서 일관성(Consistency)과 가용성(Availability) 사이의 트레이드오프를 선택하는 구체적인 전략 중 하나이다.
- Raft는 왜 과반수를 요구하는가?아키텍처 · 분산시스템과반수 요구는 분할에서 일관성을 지키는 선택이다 — CAP의 갈림을 합의 알고리즘이 몸으로 보여준다.
- 분산 트랜잭션에서 Saga 패턴이 필요한 이유는?아키텍처 · 분산시스템Saga 패턴은 강한 일관성 대신 결과적 일관성을 선택하여 CAP 이론의 가용성과 분할 내성을 우선시하는 전략이다.