나는 Lambda Architecture로 CAP 정리를 깨는 방법에 대해 Nathan Marz의 article을 읽었으며 불변의 데이터가 최종 일관성을 덜 복잡하게 만들 것임을 이해하지 못했습니다.불변의 데이터로 인해 결과 일관성이 어떻게 유지됩니까?
다음 내용은 기사에서 가져온 것입니다 :
의 핵심은 데이터가 불변이다. 변경할 수없는 데이터 란 업데이트와 같은 것이 없으므로 데이터의 다른 복제본이 일관성을 잃지는 못합니다. 즉, 분기 값, 벡터 시계 또는 읽기 - 복구가 없음을 의미합니다. 쿼리의 관점에서 데이터 조각이 존재하거나 존재하지 않습니다. 해당 데이터에는 단지 데이터와 기능 만 있습니다. 궁극적으로 일관성을 유지하기 위해해야 할 일은 없으며 궁극적으로 일관성이 시스템에 대한 추론의 방식으로 사용되지 않습니다.
다음 예를 상상해보십시오. 두 개의 노드 A와 B가있는 분산 된 삽입 전용 데이터베이스가 있고 둘 다 레코드 [timestamp=1; id=1; value=10]
을 보유하고 있습니다. 그런 다음 동시에 노드 A에 대한 삽입이 발생하여 [timestamp=2; id=1; value=20]
이되고 노드 B에 대해 판독을 위해 id=1
이 기록됩니다.
업데이트 가능성이있는 데이터베이스보다 최종 일관성 문제가 어떻게 해결 되는가?