2013년 7월 6일 토요일

OWI - DFS_lock_handle

o DFS lock handle
    - DFS lock handle은 요청한 Global lock의 lock handle을 기다리고 있는 대기이벤트이다.이 lock handle은 global lock과 동일하다.
    - DFS lock handle 대기 이벤트 발생 원인
      * SV 락 경합 ( Sequence ( Cache + Order ) - RAC 에서 ) - 주로 발생하는 원인
      * CI 락 경합 ( Truncate 시 , 대상 테이블의 Dirty Buffer 가 Disk Write 로 인해 발생하는 대기 이벤트 )

    - OPS 나 RAC 환경에서 버퍼캐시 동기화를 제외한 row cache 나 libary cache의 동기화를 위해서 lock을 획득하는 과정에서 대기하는 이벤트
    - 여러 노드간에 시퀀스의 순서를 보장하려면 글로벌하게 lock을 획득해야하고 이 과정에서 DFS lock handle 대기가 발생하게 되는 것이다.
    - SV lock을 획득하는 과정에서 발생하는 DFS lock handle 대기이벤트의 P1, P2 값은 enq: SQ - contention 대기이벤트와 동일하다.
      (P1=mode+namespace, P2=object#) 따라서 P1 값으로부터 SV lock인지의 여부를 확인할 수 있고, P2 값을 통해 어떤 시퀀스에 대해 대기가 발생하는지 확인할 수 있다.
    - SV lock 경합 문제가 발생하는 경우의 해결책은 SQ lock의 경우와 동일하다.
       캐시 사이즈를 적절히 키워주는 것이 유일한 해결책이다.

댓글 없음:

댓글 쓰기