교착 상태
[#7] DeadLock 발생 해결하기
[#7] DeadLock 발생 해결하기
2022.10.04개요 Scale-Out을 위한 사전 작업을 진행하기 전에 구매 API를 정상화할 필요성이 있었습니다. 이전 #1[구매주문] 에서 다뤘듯이 같은 품목 옵션을 많은 사람들이 동시에 구매하는 경우 DeadLock이 발생하며 CannotAquireLockException이 발생했습니다. 그리고 쿼리 최적화에서 인덱스가 영향을 줄 수 있을지 몰랐다는 부분과 연관됩니다. 정확히는 제약 조건이 어떤 영향을 줄지 몰랐다는 점입니다. 그럼 어떻게 DeadLock의 원인과 해결했는지에 대한 설명을 진행해보겠습니다. 어디서 DeadLock이 발생할까? Pinpoint를 사용하여 StackTrace를 볼 수 있어 문제의 실마리는 쉽게 찾을 수 있었습니다. MySQL에서 DeadLock이 발견되어 Exception이 발생하게 ..