개요

Eventual Consistency란, 데이터베이스에 새로운 업데이트가 없으면 분산된 데이터 베이스 환경에서 결국 최적적으로 마지막 업데이트된 쿼리가 나오는 것을 보장하는 것을 말한다. 즉 데이터 베이스의 노드들이 서로 동기화 하여 결국에는 모두 동기화가 완료되기 때문에 요청에 대한 답이 수렴하게 설계하는 방법론을 말한다. 즉 어떠한 시점에서 하나의 쿼리에 대한 리턴은 처음에는 서로 각기 다른 답을 낼 수 있지만 결국에는 수렴하여 같은 답을 내게 됨을 말한다.

ACID모델과 비교하여, Eventual Consistency는 write-write conflicts (commite되지 않은 데이터가 덮여 써지는 오류)가 존재하지 않는 환경, 그리고 업데이트가 적고 많은 reader가 있는 환경에서 유리하다. 예를 들어 DNS와 같은 경우에는 Authority들만이 Update를 할 수 있으며, 또한 update가 적지만 Query는 그에 비해서 매우 많기 때문에 Eventual Consistency를 적용하기 좋은 환경이라고 할 수 있다.

Eventual Consistency는 BASE시멘틱을 제공한다고 볼 수 있다. 또한 Eventual Consistency는 많은 변종을 가지고 있다. 예를 들어서 Monotonic read consistency, monotonic write consistency, read-your-writes consistency, session consistency와 같은 것들이 있다.