이번에는 원장을 일 단위로 갱신해보기로 합니다. 이 새로운 시스템은 영업이 종료된 야간에 점포에 있는 책을 모두 세고, 원하는 책이 예상대로 서가에 있는지 검증하는 방식으로 재고를 갱신합니다. 이렇게 밤마다 점포의 서가를 확인하고 나면 집에 가서 쉴 수 있습니다.
이 두 번째 유형의 재고 관리 시스템에서는 모든 트랜잭션이 최종 일관성eventual consistency을 갖도록 계획합니다. 점포 재고에 대한 각각의 접근은 병렬적으로 처리되어 책 재고 관리 시스템을 갱신합니다. 최종적으로 특정한 책에 접근하면 항상 가장 최근에 갱신된 값을 받게 됩니다.
그렇다면 고객이 서가에 없는 책을 찾으러 갈 때는 어떤 일이 생길까요? 그건 그때 처리하면 됩니다.
일관성이 깨진 상황을 발견했을 때 처리하는 것은 분산 시스템의 읽기 복구read repair와 비슷합니다. 불일치가 발견됐을 경우에만 원장 전체의 상태를 고쳐 쓰는 부담스러운 작업을 시작합니다. 이 프로세스가 진행되는 동안 판매 기록을 점검해서 기록이 최신인지 확인할 수 있습니다. 따라서 상태 점검을 여러 번 해서 기록이 최신이고 일관적인지 확인합니다.
이런 프로세스로 충분할까요? 대용량 처리 능력을 상태 일관성과 맞바꿔야 하는 시스템에서는 충분합니다.