티스토리 뷰

DB, Storage/oracle

latch 와 lock

卽興詩人 2013. 11. 26. 11:12

*  비교


 분류

latch 

lock 

 목적

하나의 목적을 수행

메모리 구조에 대한 배타적인 접근을 위함 

두가지 목적을 수행

락모드가 호환 가능하면 다수의 프로세스가 동일한 리소스를 공유하는 것을 허용하며 락모드가 호환가능하지 않으면 리소스에 대한 배타적인 접근만 허용 

 사용범위

SGA 내부의 데이터 구조에만 적용 

테이블, 데이터 블록및 state object 와 같은 object 를 보호한다 

 획득방식

willing- to - wait / no - wait 

null, row shre, row exclusive, share, share row exclusive, exclusive 

 범위

SGA 내부에 정보가 존재

데이터베이스 내부에 정보가 존재 

 복잡도

단순한 명령어를 사용하여 구현 

문맥교환을 포함한 일련의 명령어들을 사용하여 구현 

 지속시간

짧은시간만 지속(ms 단위) 

tx 가 지속되는 동안 

queue

프로세스가 래치획득실패후 슬립상태로 들어갈때 해당요청은 큐로 관리되지않으며 요청한 순서대로 서비스되지않는다 

프로세스가 락 획득을 실패한후 해당요청은 큐로 관리 , 요청한 순서대로 서비스된다( no-wait) 모드는 예외 

 deadlock

데드록이 발생되지않도록 구현됨 

queue 방식사용 데드락의 가능성이 높다 trace 파일생성 


* latch

- 경량화된 락(이지만 다른객체로 분류)

- shared pool 영역에 존재하는 일종의 메모리 구조( 매우간단하고 작은 메모리영역)

- SGA 리소스를 보호한다.

- 부모래치, 자식래치, 독립래치로 분류한다.

- 래치동작의 매커니즘 : 래치레벨 , 래치모드, 래치획득(willing-to-wait, no-wait), 래치클린업 

- 래치의 대기이벤트 

- latch : cache buffers chains

- latch : cache buffers Iru chain

- latch : shared pool

- latch : library cache

- latch : redo copy


* lock

- 락동작 매커니즘 : 락모드, 락획득

- 락 관련 대기이벤트

- row cache lock

- buffer busy waits, read by other session

- library cache lock

- library cache pin

- DFS lock handle



'DB, Storage > oracle' 카테고리의 다른 글

SQL 수행시 작업  (0) 2013.12.01
대기이벤트  (0) 2013.11.29
undo 와 redo 의 차이  (0) 2013.11.25
system and sysaux tablespaces  (0) 2013.11.20
OWI 개요  (0) 2013.11.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함