TL; DR 기능을 원합니다 : "Y는 Y가 10 인 경우에만 업데이트"그렇지 않으면 실패합니다.Datomic 데이터베이스를 사용하여 원자 적 조작을 수행하려면 어떻게해야합니까?
예 : T1, T2 및 T3 인 타임 라인을 상상해보십시오. 시간 T1에서, 엔티티 X는 속성 Y = 10을 포함하고, 시간 T2에서 속성은 Y = 14이다. 내 목표는 Y에서 복잡한 연산을 적용하는 것입니다 (이 연산은 1의 합계라고 가정). T1에서 Y의 값을 읽습니다.이 값은 10이며이 값을 처리 할 대기열에 저장합니다. T3에서 복잡한 연산이 완료되고 결과가 11 일 때 Y 속성을 업데이트합니다. 단순히 속성을 업데이트하면 T2에 있던 값 Y = 14가 실수로 삭제됩니다. 그러나 T3에서 업데이트시 최종 값이 Y = 10인지 확인하고 그렇지 않으면 재 처리를 위해 T2에서 Y = 14를 읽어야합니다.
원자 읽기 - 수정 - 업데이트 프로세싱을 수행하는 방법은 대략 Database Functions으로 알고 있지만 작업이 복잡하고 분산 된 (큐에 넣은 후) 수행해야하는 경우에는이 방법이 좋지 않습니다.
내가 원하는 것은 DynamoDB에서 Conditional Writes에 해당하는 것입니다.
@RodyD, 완벽, 정확하게. –