좋아요 기능으로 알아보는 비관적 락
좋아요를 저장할 때의 동시성 문제를 비관적 락으로 푸는 과정이다. 락의 동작과, 없는 행 때문에 넥스트 키 락이 성능을 떨어뜨리는 지점까지 살펴본다.
글 3편

좋아요를 저장할 때의 동시성 문제를 비관적 락으로 푸는 과정이다. 락의 동작과, 없는 행 때문에 넥스트 키 락이 성능을 떨어뜨리는 지점까지 살펴본다.

선착순 이벤트 시스템을 설계한다고 가정해보자. 요구사항은 아래와 같다. 100개의 재고가 있을 때 동시에 1,000명이 요청하면 어떻게 정확히 100명에게만 제공할 수 있을까? 이때 일반적으로 제시되는 해결책들은 아래와 같다.

Spring의 @Transactional(readOnly = true)는 dirty checking을 Manual로 바꿔 빨라진다고 알려져 있다. Elastic APM의 호출 로그에서는 불필요한 JDBC 호출 때문에 오히려 느려졌다.