241015 내일배움캠프 백엔드 Java 6기 TIL : Lock

박대현·2024년 10월 15일
0

동시성 제어 기법. 한 트랜잭션이 특정 작업을 수행하는 동안 다른 트랜잭션의 접근으로부터 보호하는 방법.
데이터의 일관성을 보장하고, 동시에 수행되는 여러 트랜잭션간의 충돌을 방지

비관적 락 : 충돌이 자주 일어날 것이라 판단. 테이블이나 로우에 @Lock
장점 : 낮은 충돌비용(충돌발생시 추가적인 재시도 로직이 필요없음), 데이터안정성
단점 : 성능저하(다수 트랜잭션이 대기상태)
-> 동시성 문제가 자주 발생하는 곳, 데이터의 일관성 중요도가 큰 곳

낙관적 락 : 충돌이 발생하지 않을거라는 판단 하에. @Version이 달린 column사용
장점 : 성능이 상대적으로 좋다(실제로 락을 잡진 않으므로)
단점 : 충돌이 많이 일어나면, 복구작업이 많아진다. 데이터 안정성이 떨어진다
-> 동시성 발생 문제가 드문 곳, 간단한 작업인 경우

0개의 댓글