궁극적 일관성

1 개요[ | ]

eventual consistency
궁극적 일관성, 최종 일관성
  • 분산 시스템에서 데이터의 일관성을 유지하기 위한 일관성 모델

  • 이는 특히 데이터베이스 시스템과 네트워크 공유 저장소와 같은 비동기 시스템에서 중요하게 다루어진다.
  • 궁극적 일관성 모델에서는 모든 노드가 최신 데이터를 볼 수 있는 즉각적이고 강력한 보장을 제공하지는 않지만, 일정 시간이 지나면 결국 모든 노드가 동일한 최종 데이터 상태에 이를 것임을 보장한다.
  • 궁극적 일관성은 기반이 되는 네트워크의 지연, 시스템 장애 및 기타 일시적인 오류에 관계없이 시스템이 시간이 지나면서 자체적으로 일관성을 복구할 수 있음을 전제로 한다. 이는 읽기-쓰기 분리가 있는 경우가 많으며, 일관성 지연이 발생할 수 있는 환경에서 효과적이다.

2 특성[ | ]

  • 싱크없는 세부정보 동기화: 각 노드는 독립적으로 업데이트를 저장하고, 시간 경과에 따라 다른 노드와 정보를 동기화한다.
  • 최종 일관성 달성: 갱신이 없는 한 시스템은 최종적으로 모든 노드에 일관된 데이터를 전달한다.
  • 가용성 우위: 강한 일관성을 요구하는 시스템에 비해 궁극적 일관성 모델은 더 나은 가용성을 제공하려 한다.

3 장점 및 단점[ | ]

3.1 장점[ | ]

  • 확장성: 많은 수의 노드를 가진 대규모 시스템에서도 효과적이다.
  • 고가용성: 노드 장애나 네트워크 분할 시에도 시스템 이용이 가능하다.

3.2 단점[ | ]

  • 읽기 비일관성: 시스템의 현재 상태를 즉시 알 수 없을 수 있다.
  • 복잡성 증가: 데이터 최종 일관성을 보장하기 위한 추가적인 로직이 필요할 수 있다.

4 사용 사례[ | ]

궁극적 일관성은 클라우드 기반 저장소, 소셜 네트워크, 이메일 시스템과 같은 다양한 분야에서 사용된다. 이러한 시스템에서는 일시적인 데이터 비일관성이 사용자 경험에 큰 영향을 미치지 않기 때문에, 높은 가용성과 응답성을 유지할 수 있도록 하는 것이 더 중요할 수 있다.

4.1 실제 예[ | ]

  • 아마존의 다이나모 DB
  • 카우치베이스
  • 리액트

5 다른 일관성 모델과의 비교[ | ]

궁극적 일관성은 단순히 시스템이 최종적으로 일관성이 있는 상태에 도달하기만을 보장한다는 점에서 상용 애플리케이션에서 자주 사용되는 강력한 일관성과 차이가 있다. 강력한 일관성 모델에서는 모든 사용자가 최신 데이터를 즉시 보장받을 수 있으나, 그로 인해 가용성과 확장성에 대한 요구사항이 더 엄격해질 수 있다.

6 같이 보기[ | ]

7 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}