Open O0oO0Oo opened 2 months ago
전통적인 트랜잭션과 다르게 사가 패턴의 경우 ACID 에서 isolation 을 완전히 보장하지 못해 anomalies 가 발생할 수 있다. 하지만 Semantic lock, Commutative updates 와 같이 이를 해결하기 위한 방법들이 있다.
발생 가능성, mysql 은 기본적으로 repeatable read 수준
Orchestration-based saga 에서 현재 생각으론 각 서비스에서 이벤트를 소비할때 싱글 스레드라면 발생하지 않을것으로 예상하지만, 성능 향상을 위해 멀티 스레드로 소비하게 된다면 lost update 가 발생한다.
격리 수준이 낮고 락이 적을 수록 동시처리 성능은 올라간다. 격리 수준은 유지하고, 락은 사용하지 않고 데이터 일관성을 해결해보자.
이슈 개요
전통적인 트랜잭션과 다르게 사가 패턴의 경우 ACID 에서 isolation 을 완전히 보장하지 못해 anomalies 가 발생할 수 있다. 하지만 Semantic lock, Commutative updates 와 같이 이를 해결하기 위한 방법들이 있다.
발생 가능성, mysql 은 기본적으로 repeatable read 수준
Orchestration-based saga 에서 현재 생각으론 각 서비스에서 이벤트를 소비할때 싱글 스레드라면 발생하지 않을것으로 예상하지만, 성능 향상을 위해 멀티 스레드로 소비하게 된다면 lost update 가 발생한다.
격리 수준이 낮고 락이 적을 수록 동시처리 성능은 올라간다. 격리 수준은 유지하고, 락은 사용하지 않고 데이터 일관성을 해결해보자.
재현 단계
예상 동작
실제 동작
추가 정보