← 질문 목록
#31깊이 0
분산 시스템에서 CAP 중 무엇을 포기하게 되는가?
답변 연습
내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요
노드 사이 메시지가 전달되지 않는 동안에는 선형 일관성과 가용성을 동시에 보장할 수 없다. 네트워크 분단이 생겼을 때 어느 요청을 계속 처리하고 어느 요청을 멈출지 정하는 문제다.
| 속성 | 이 질문에서의 뜻 |
|---|---|
| 일관성 (C) | 읽기가 가장 최근에 완료된 쓰기 결과를 보는 하나의 원자적 값처럼 동작 |
| 가용성 (A) | 장애가 나지 않은 노드가 받은 모든 요청에 유한한 시간 안에 응답 |
| 분단 내성 (P) | 노드 집단 사이 메시지가 유실돼도 정한 동작을 계속 지킴 |
분리된 양쪽이 모두 쓰기를 받으면 서로의 최신 값을 알 수 없다. 양쪽 요청을 계속 처리하면 선형 일관성을 보장할 수 없다. 한쪽을 멈추고 권한이 있는 쪽만 처리하면 일관성은 지킬 수 있지만 멈춘 쪽의 가용성을 잃는다.
선택은 데이터베이스 제품 전체보다 연산과 업무 규칙에 가깝다. 상품 설명 조회는 분단 중에도 각 지역의 값을 돌려주고 나중에 맞출 수 있다. 남은 좌석을 확정하는 연산은 중복 예약을 막기 위해 일부 요청을 거절하거나 기다리게 할 수 있다.
셋 중 둘을 평상시에도 항상 고른다는 뜻은 아니다. CAP의 충돌은 분단이 이어지는 구간에 나타난다. 분단이 없을 때의 지연 시간과 일관성 절충은 PACELC 같은 별도 관점으로 살핀다.
추천 꼬리질문
관련 질문
- 캐시를 지우는 일이 어려운 이유는?아키텍처 · 분산시스템캐시 무효화(Cache Invalidation)의 어려움은 분산 시스템의 일관성(Consistency) 문제와 직결된다.
- 노드를 늘릴 때 일관된 해싱이 필요한 이유는?아키텍처 · 분산시스템일관된 해싱은 분산 시스템에서 데이터 분배와 가용성, 일관성을 조절하는 CAP 정리의 구현 전략 중 하나이다.
- 읽기와 쓰기 모델을 나누면 무엇을 얻고 잃는가?아키텍처 · 분산시스템읽기/쓰기 모델 분리(CQRS)는 CAP 정리에서 일관성(Consistency)과 가용성(Availability) 사이의 트레이드오프를 선택하는 구체적인 전략 중 하나이다.
- Raft는 왜 과반수를 요구하는가?아키텍처 · 분산시스템과반수 요구는 분할에서 일관성을 지키는 선택이다 — CAP의 갈림을 합의 알고리즘이 몸으로 보여준다.
- 분산 트랜잭션에서 Saga 패턴이 필요한 이유는?아키텍처 · 분산시스템Saga 패턴은 강한 일관성 대신 결과적 일관성을 선택하여 CAP 이론의 가용성과 분할 내성을 우선시하는 전략이다.