분산 일관성 모델 (distributed consistency model)

컴퓨터과학·AI
한 줄 정의: 여러 노드에 복제된 데이터에 대해 읽기와 쓰기 연산이 각 노드에서 어떤 순서와 시점으로 관찰될 수 있는지를 규정하는, 분산 시스템이 제공하는 데이터 일관성의 정도와 규칙.

쉽게 풀면

분산 일관성 모델은 데이터를 여러 서버에 복제해 둔 시스템에서, '한 서버에 쓴 값을 다른 서버에서 언제, 어떤 순서로 볼 수 있는가'에 대한 약속이다. 가장 엄격한 강한 일관성 모델은 마치 서버가 하나뿐인 것처럼 항상 최신 값을 즉시 보장하지만 그만큼 지연이나 가용성 저하를 감수해야 한다. 반대로 느슨한 최종적 일관성 모델은 잠시 오래된 값을 보여줄 수 있지만 그 대가로 더 빠르고 가용성 높은 시스템을 만들 수 있다. 시스템 설계자는 애플리케이션의 요구사항에 따라 이 스펙트럼 위의 적절한 지점을 선택한다.

왜 중요한가

일관성 모델은 분산 데이터베이스, 캐시 시스템, 클라우드 스토리지가 성능과 정확성 사이에서 어떤 선택을 했는지를 명시적으로 규정하는 개념이기 때문에 시스템 설계 논문에서 반드시 다루어집니다. CAP 정리가 보여주듯 분산 환경에서는 일관성, 가용성, 네트워크 분할 내성을 모두 완벽히 만족시킬 수 없으므로, 어떤 일관성 모델을 채택했는지가 시스템의 성능·신뢰성 특성을 결정합니다. 대규모 서비스가 전 세계에 걸쳐 데이터를 복제하는 것이 일반화되면서, 상황에 맞는 일관성 수준을 선택하고 검증하는 연구가 계속 이어지고 있습니다.

논문에서는 이렇게 쓰입니다

"본 분산 캐시 시스템은 성능을 위해 강한 일관성 대신 최종적 일관성 모델을 채택하였으며, 이로 인해 짧은 시간 동안 오래된 값이 읽힐 수 있음을 명시하였다."

분산 시스템이 제공하는 데이터 정합성 보장의 수준과 그로 인한 트레이드오프를 명시할 때 사용된다.

"제안 시스템은 인과적 일관성(causal consistency) 모델을 지원하여, 원인이 되는 쓰기 연산과 그 결과가 서로 다른 노드에서도 항상 순서대로 관찰되도록 보장하였다."

강한 일관성과 최종적 일관성 사이의 중간 지점으로, 인과관계가 있는 연산들만이라도 순서를 보장하려는 절충안을 설명하는 예문입니다.

"분산 협업 편집 도구는 세션 일관성(session consistency)을 제공하여, 한 사용자가 자신이 작성한 내용을 항상 최신 상태로 볼 수 있도록 설계되었다."

협업 툴이나 사용자별 세션 단위에서 자주 요구되는 일관성 수준을 보여주는 예로, 전체 시스템의 강한 일관성 없이도 사용자 경험을 보장할 수 있음을 나타냅니다.

조금 더 깊게 보면

일관성 모델은 흔히 선형화 가능성(linearizability), 순차적 일관성(sequential consistency), 인과적 일관성, 최종적 일관성 등 여러 단계로 나뉘며, 아래로 갈수록 보장하는 순서 규칙이 느슨해지는 대신 지연시간과 가용성이 향상됩니다. 실제 시스템 검증에서는 벡터 클럭(vector clock)이나 논리적 타임스탬프를 이용해 연산 간 순서 관계를 추적하고, 이를 바탕으로 시스템이 명시한 일관성 모델을 실제로 만족하는지 테스트하는 경우가 많습니다. 어떤 모델을 선택하느냐는 애플리케이션이 오래된 데이터를 얼마나 허용할 수 있는지에 따라 달라집니다.

주의할 점

일관성 모델은 하나의 이분법이 아니라 강한 일관성부터 최종적 일관성까지 다양한 단계가 존재하므로, 시스템이 어떤 구체적인 모델을 제공하는지 명확히 정의하고 문서화해야 한다.

관련 용어