올리브영, 주문 시스템 Dead Lock 탈출!
by DD
3년 전
조회수 2
동시 주문 처리 시 DB Lock으로 인한 Dead Lock 발생
개별 트랜잭션 분리를 통해 Dead Lock 문제 해결
Jmeter를 활용한 성능 테스트 결과, 주문 처리 속도 향상 및 에러 감소 확인
Dead Lock 발생 원인 분석
구체적으로 동시성 제어를 위해 트랜잭션을 직렬 처리하면서 DB Lock이 발생했다. 따라서 높은 트래픽 환경에서 Dead Lock이 빈번하게 발생하여 시스템 성능 저하를 야기했다. 반면, 다양한 상품 속성과 롤백 고려로 인해 트랜잭션 분리가 쉽지 않았다.
트랜잭션 분리를 통한 문제 해결
결과적으로 개별 트랜잭션으로 분리하여 Dead Lock 문제를 해결했다. Emma와 Olivia가 상품을 동시 주문 시, 각 상품별로 즉시 Commit 되도록 변경했다. 따라서 DB Lock 대기 시간 감소 및 전반적인 시스템 성능 향상을 달성했다.
Jmeter를 활용한 성능 검증
Jmeter를 사용하여 Dead Lock 발생 여부 및 주문 처리 속도를 검증했다. 기존 시스템은 Dead Lock으로 인해 성능 저하가 발생했지만, 개선된 시스템은 안정적인 처리 속도를 유지했다. 따라서 높은 트래픽 환경에서도 주문 처리 안정성을 확보했다.
댓글 0
첫 번째 댓글을 남겨보세요!