데이터베이스 락

트랜잭션의 순차적 진행을 보장할 수 있는 직렬화 장치 optimistic lock 낙관적인 : 충돌이 발생하지 않을 것이라고 낙관적으로 보는 것 버전값을 통해서 관리한다. 조회할때는 둘다 버전이 1 그래서 오더라인 추가후 커밋하면 버전값도 하나 올린다. 이때 버전값이 2가된다. B가 커밋하려고 했는데 가져올때 버전은 1이었는데 커밋하려니까 버전2가 되니까 optimistic lock exception을 발생시키는 것 jpa는 @Version만 달아주면 알아서 됨 pessimistic lock 비관적인 : 충돌이 발생할것으로 보고 잠궈놓는다. 한쪽이 끝나야 order를 가져올 수 있다. 가져올때 db에 락을 건다. db에 직접 락을 걸기 때문에 데드락 위험 shared lock 읽을 수는 잇는데 update, delete 방지 exclusive lock 읽기 수정 다 불가함 둘 중 어떤게 좋을까? 충돌이 자주

2021년 10월 25일
·
0개의 댓글
·