Whiteship's Note

Optimistic concurrency control

DB/개념 : 2007. 4. 25. 15:56


참조 : Wikipedia-Optimistic concurrency control
optimistic concurrency control, (OCC) is a concurrency control method used in relational databases without using locking. It is commonly referred to as optimistic locking, a misnomer.Optimistic concurrency control
Non-lock concurrency control 방법들 중에 하나로 Locking을 사용하지 않고 동시성 제어를 하는 방법을 Optimistic concurrency control 또는 Optimistic locking이라고 합니다.

트랜잭션 충돌이 거의 발생하지 않는다는 가정하에 다음의 절차로 트랜잭션을 처리합니다.

읽기: 클라이언트가 데이타베이스로 부터 값을 읽어서 private sandox 나 cache에 저장하고 클라이언트는 그것을 가지고 작업을 합니다.

검증하기: 클라이언트가 샌드박스나 케쉬에서 편집을 끝내면 그것들을 데이타 베이스에 넣기 전에 검증 작업을 거칩니다.

- backward validation schemes 에 커밋된 트랜잭션이 존재하거나
- forward validation schemes 에 현재 실행중인 트랜잭션이 존재하면

출동이 발생합니다. 충돌이 발생하면 충돌을 풀기 위한 알고리즘이 사용되거나(주로 사용자에 의해 변경된 부분을 최소화 시킵니다.)[각주:1] 전체 트랜잭션을 취소(이때는 사용자가 변경한 부분이 모두 날리게 되니까 그다지 좋은 방법은 아닙니다.)시킵니다.

쓰기: 만약 충돌이 발생하지 않았다면 커밋합니다.

충돌이 자주 발생하지 않으면 이 방법으로 다른 방법들(non-lock concurrency control) 보다 많은 작업을 처리할 수 있지만, 충돌이 자주 발생하면 성능이 떨어지기 때문에 충돌이 자주 발생할 때 효율이 좋은 다른 방법을 사용합니다.

사용한 곳
  • MediaWiki's edit pages use OCC. The conflict resolution algorithm is described here.
  • Bugzilla uses OCC; conflicts are called "mid-air collisions". [1]
  • The Ruby on Rails framework has an API for OCC. [2]
  • Most revision control systems support the "merge" model for concurrency, which is OCC.
  1. 원문에는 ideally by minimizing the number of changes made by the user 이렇게 적혀 있는데 변경 되는 사항들을 최소화 시킨다는 것이 어떤 건지 모르겠네요. queue로 변경 작업을 하는 트랜잭션을 관리하여 한번에 하나씩 처리하게 한다는 것인가;;?? [본문으로]

'DB > 개념' 카테고리의 다른 글

Multiversion concurrency control  (0) 2007.04.25
Timestamp-based concurrency control  (0) 2007.04.25
Optimistic concurrency control  (2) 2007.04.25
top

  1. Favicon of https://jjaeko.tistory.com BlogIcon 째코 2008.03.11 01:38 신고 PERM. MOD/DEL REPLY

    낙관적 잠금 기능에서 동시 접근및 수정일 때 나중에 가해진 수정은 일단 update 쿼리는 수행되는데
    update 쿼리수행후 리턴받는 적용행 수를 기준으로 0이냐 1이냐를 따져서 0이면 예외를 발생시키는 걸까요? 적용된행이 0이라는 뜻 자체가 버전이 이미 올라갔으며 따라서 적용된 행이 없으므로 이걸 기준으로 판단되지 싶네요

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.03.11 09:36 PERM MOD/DEL

    글쎄요. 아직 하이버를 거기까지 보지 못해서요;;

Write a comment.