#버퍼 캐시 락

버퍼 캐시 사용의 동시성 관리 (버퍼 헤더에 버퍼 캐시 락 정보 기록)
  • 공유 락(S) - 버퍼 캐시의 데이터를 읽을 때 적용
  • 배타적 락(X) - 버퍼 캐시의 데이터를 변경할 때 적용
    • 레코드 한개 변경시 그 레코드를 담고 있는 블록 전체에 배타적 락이 필요
획득 실패시 대기 이벤트
  • buffer busy waits - 데이터 블록을 버퍼 캐시를 통해 사용 하려 하나 그러지 못해 대기 (같은 블록의 다른 데이터를 동시에 조회/변경 할 때, 핫블럭, direct path read 가 아닐 때)
  • read by other session - 세션1(db file sequential read) 이 블록을 버퍼 캐시로 올리고 있는데(배타적 락) 세션2(read by other session)가 그 블록을 참조 하려 할때 대기 (10g 부터 buffer busy waits 에서 분리 됨)
  • write complete waits - DBWR에 의해 디스크로 씌여지고 있는 블록을 참조 하려 할때 대기