MSA 프로젝트로 '대규모 트래픽 문제를 해결하는 호텔 예약 서비스'를 개발 중, 예약 요청이 100% 성공해 빈자리가 없어야하지만, 데이터베이스에서 만실이 되지 않는 이슈가 발생했다.
<aside> <img src="/icons/thought-alert_yellow.svg" alt="/icons/thought-alert_yellow.svg" width="40px" />
테스트 내용
300개의 객실이 예약 가능할때, 300명이 동시에 동일한 날짜와 객실을 예약하려한다.
예상 결과
문제발생
</aside>문제의 데이터
TOTAL_INVENTORY
: 해당 객실의 총 객실 수TOTAL_RESERVED
: 해당 객실의 해당 날짜에 예약된 객실 수300명이 풀예약했지만 아직 객실이 266개가 예약 가능하다.
Lock 에서 발생한 문제라고 생각했지만 결과적으로,
원인은 더티체킹으로 업데이트를 처리하였기 때문에 발생했다.
왜 더티체킹 하셨나요?
“편해서 사용했어요..😢”