lock

데이터베이스

동시성) 싱글벙글 게시글 좋아요 Lock을 이용하여 동시성 이슈, 데드락 해결하기

배경게시글 좋아요 로직에 문제가 발생했습니다. 텀을 두고 좋아요를 눌렀을 때 좋아요, 좋아요 취소에는 전혀 문제가 발생하지 않습니다. 동시에 많은 작업이 있을 때 동시성 문제가 발생합니다.좋아요 개수 문제, LikeEntity 중복값 저장 2가지 문제에 대해 다루겠습니다.제가 처음 작성한 로직은 게시글 좋아요 버튼을 누르면 Like Entity save 메서드가 실행이 되고, Like Entity에 값이 존재하면 delete가 되는 로직입니다. 원인 분석 먼저 하겠습니다.원인 분석MySQL 8.0 (innoDB)이며, 트랜잭션 격리 레벨은 디폴트값인 Repeatable Read입니다.게시글A를 찾는 SELECT 과정은 Lock을 얻는 과정이 발생하지 않기 때문에 두 트랜잭션 모두 같은 게시글A에 접근합니..

초보병일이
'lock' 태그의 글 목록