내 잡다한 노트

Eventual Consistency 본문

분산시스템

Eventual Consistency

peanutwalnut 2025. 2. 19. 22:53

최종적 일관성. 분산 시스템, 특히 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. 동작 원리

  • 업데이트 과정:
    1. 클라이언트가 데이터를 업데이트합니다.
    2. 해당 변경 사항은 우선 한 노드(혹은 일부 노드)에 반영됩니다.
    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