데드락을 해결하려다, 락을 줄이게 된 이야기
·2026.08.20 17:57
핵심 내용
Kafka 이벤트 처리 시 데드락을 방지하기 위해 비관적 락 전략을 재설계한 과정을 정리했다.
자세히 보기
신규 유저 리워드 이벤트 시스템에서 Kafka의 At-Least-Once 특성 및 토픽 분리 문제로 인한 동시성 문제를 해결하기 위해 락 전략을 조정했다.
초기에는 유저 단위의 **비관적 락(Pessimistic Lock)**을 적용했으나, INSERT ... ON DUPLICATE KEY UPDATE 방식은 불필요한 쓰기 비용과 Hot Row 문제를 유발했다.
이를 개선하기 위해 INSERT IGNORE로 변경했으나, 예상치 못한 데드락이 발생했다. 데드락 로그 분석을 통해 락 획득 순서와 트랜잭션 구조를 재검토하여 문제를 해결했다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.