내 잡다한 노트
Eventual Consistency 본문
최종적 일관성. 분산 시스템, 특히 DB에서 자주 언급되는 개념.
1. 기본 개념
- 정의:
Eventual consistency는 시스템 내의 모든 노드가 일정 시간이 지나면 동일한 데이터 상태(일관성 있는 상태)에 도달한다는 것을 의미합니다. 즉, 업데이트 후 즉시 모든 노드가 동일한 데이터를 보유하지 않을 수 있지만, 최종적으로 일관성이 보장된다는 것입니다. - 즉각적 일관성(Strong Consistency)와의 차이:
- 즉각적 일관성(Strong Consistency): 데이터가 업데이트되면, 모든 사용자가 즉시 최신 데이터를 볼 수 있도록 보장하는 모델입니다.
- 최종적 일관성(Eventual Consistency): 데이터가 업데이트된 후 즉각적으로 일관성이 보장되지 않지만, 시간이 지나면 모든 노드가 동일한 상태로 동기화된다는 보장이 있습니다.
2. 사용 배경 및 이유
- 분산 시스템 환경:
분산 데이터베이스나 클라우드 환경에서는 여러 복제본(replicas) 사이의 데이터 동기화가 필요합니다. 네트워크 지연이나 장애로 인해 모든 노드에 동시에 업데이트를 반영하기 어렵기 때문에 eventual consistency 모델이 적용됩니다. - CAP 정리와의 관계:
CAP 정리에서는 일관성(Consistency), 가용성(Availability), 분할 내성(Partition tolerance) 중 두 가지를 보장할 수 있다고 설명합니다.- Eventual consistency는 높은 가용성과 분할 내성을 우선시하는 시스템에서 흔히 선택되는 모델입니다.
- 즉, 일부 순간에는 데이터 불일치가 있을 수 있지만, 전체 시스템의 가용성을 유지할 수 있습니다.
- 성능 향상:
즉각적 일관성을 유지하려면 모든 업데이트를 모든 노드에 동시에 전파해야 하므로 응답 시간이 길어질 수 있습니다. eventual consistency 모델은 일부 지연을 감수하면서도 시스템의 성능과 확장성을 높입니다.
3. 동작 원리
- 업데이트 과정:
- 클라이언트가 데이터를 업데이트합니다.
- 해당 변경 사항은 우선 한 노드(혹은 일부 노드)에 반영됩니다.
- 이후, background 프로세스나 비동기 복제 메커니즘을 통해 다른 노드들에 점진적으로 전파됩니다.
- 일관성 획득:
일정 시간 후, 모든 노드는 동일한 업데이트를 반영하게 되며, 이 시점에서 시스템은 일관된 상태가 됩니다.
4. 장점과 단점
- 장점:
- 높은 가용성: 네트워크 장애나 일시적인 노드 장애 시에도 시스템 전체는 계속해서 동작할 수 있습니다.
- 확장성: 대규모 분산 시스템에서도 성능 저하 없이 데이터를 처리할 수 있습니다.
- 단점:
- 일관성 지연: 업데이트 후 즉시 최신 데이터를 보장하지 않으므로, 특정 시점에서는 사용자가 오래된 데이터를 조회할 가능성이 있습니다.
- 개발 복잡성: 개발자는 데이터가 최종적으로 일관되기 전까지 발생할 수 있는 불일치 문제를 고려해야 합니다.
'분산시스템' 카테고리의 다른 글
Service Registry (0) | 2025.01.16 |
---|---|
Service Discovery란? (1) | 2025.01.16 |
application advertising (0) | 2025.01.15 |
Split Brain이란? (0) | 2025.01.09 |
분산 코디네이터 (1) | 2024.12.14 |