4. DFS lock handle
4-1 SV 락 경합
- SV(Sequence Value) 락은 RAC에서 ORDER 속성의 시퀀스 값을 보호하기 위한 락이다.
시퀀스의 속성에 따라 사용되는 락과 락 경합으로 인해 발생하는 대기 이벤트는 아래와 같다.
속성 내용
NOCACHE - Row cache lock을 이용해서 시퀀스 값을 보호 - 경합 발생시 row cache lock 이벤트를 대기
CACHE+NOORDER - SQ락을 이용해서 시퀀스 값을 보호 - 경합 발생시 enq: SQ contention 이벤트를 대기
- 성능 면에서는 다른 속성보다 유리하다.
- NOORDER 속성의 시퀀스는 RAC시스템에서 노드간의 순서를
보장할 수 없다.
ORDER - SV 락을 이용해서 시퀀스 값을 보호
- 경합 발생시 DFS lock handle 이벤트를 대기
- RAC 에서만 의미가 있다.
4-2 CI 락 경합
- CI(Cross Invocation) 락은 데이터베이스 관리를 위한 프로세스간 통신을 동기화 하는데 사용.
- Truncate 작업에서 많이 관찰 됨.
즉, 많은 수의 프로세스가 동시에 테이블 Truncate 작업을 수행하는 경우 CI락을 획득하기 위해 대기하게 된다.
이때 enq: CI contention 이벤트 혹은 DFS lock handle 이벤트를 대기하는 것으로 관찰됨. - 오라클 10g R2부터는 Truncate 알고리즘 개선으로 인해 경합 대기 시간이 최소화 되었다.
- 이 락에 대한 자세한 부분은 "Advanced OWI on Oracle 10g" 책을 참조