[Django] 동시성 고려하기(2) - optimistic lock 적용하기
·
Django,Python
optimistic lock이란?optimistic lock은 낙관적 락으로 실제로 DB에서 row에 lock을 거는것이 아닌, 어플리케이션 레벨에서 version 정보를 활용해서 수정 여부를 확인하는 방식이다.트랜잭션 대부분은 충돌이 발생하지 않을것이다라고 낙관적으로 가정해서 일단 수정하고 DB에 저장을 하려고 할때, 누가 이미 수정했는지 체크한다. 그래서 트랜잭션의 커밋이 끝나기 전에는 수정됐는지 확인할 수 없다.version이 뭐지?version은 이 row의 버전을 의미한다. version은 타임스탬프일수도 있고 Auto Increment 값일 수도 있다. version 정보를 활용해서 경쟁상태인지 체크하는 방법은 아래와 같다.하나의 row를 SELECT 해서 메모리에 가져온다. 여기엔 버전 정보..
togeepizza
'django-concurrency' 태그의 글 목록