redis atomic1 [#9] 같은 주문에 2명의 라이더가 동시에 배달하는 문제 해결 - Redis Transaction을 이용하여 데이터 atomic 보장 제가 진행하는 make-delivery 배달 앱 서버 프로젝트는 라이더들이 배차가 되지 않은 주문 목록 중에서 배차 요청을 하여 배달할 주문을 선택하는 로직이 있습니다. 하지만 만약 동시에 라이더들이 같은 주문에 배차 요청을 한다면 동시에 두 라이더가 배달을 하게 되는 것으로 나오며 주문 테이블에 라이더 정보는 더 늦게 배차 요청을 한 라이더가 입력되는 문제가 발생할 것이라 판단했습니다. 이는 데이터의 atomic이 보장되지 않는 문제이며 Race Condition과 비슷한 문제라고 판단했습니다. 기본적으로 이 문제가 발생한 원인을 설명하기 위해 간단한 예제를 설명하겠습니다. public int getNext() { return value++; } 얼핏 보기에 value++; 의 연산은 단 한번으로 이루.. 2020. 12. 27. 이전 1 다음