150 likes | 375 Vues
Latch & Lock. http://homeboy.tistory.com. 2008.06.04. 오라클 실무 양성반 9 기 여 현 승. ♠ CONTENTS. 1. Latch. 2. Latch 의 동작 메커니즘. 3. Lock. 4. Lock 의 동작 메커니즘. 5. Latch 와 Lock 의 비교. 6. 질문 및 답변. ♠ Latch?. latch : 걸쇠 , 빗장 Lightweight lock 오라클에서 리소스 보호목적으로 사용하는 동기화 메커니즘
E N D
Latch & Lock http://homeboy.tistory.com 2008.06.04 오라클 실무 양성반 9기 여 현 승
♠ CONTENTS 1. Latch 2. Latch의 동작 메커니즘 3. Lock 4. Lock의 동작 메커니즘 5. Latch와 Lock의 비교 6. 질문 및 답변
♠ Latch? • latch : 걸쇠, 빗장 • Lightweight lock • 오라클에서 리소스 보호목적으로 사용하는 동기화 메커니즘 • Shared Pool에 존재하는 메모리 구조체 Latch획득! PROCESS1 SGA PROCESS2 WAIT! Latch PROCESS3 WAIT!
♠ Latch의 종류 • V$LATCHNAME를 조회하여 확인 • 239종류의 latch 존재(Oracle 9i 기준) 9i 부터 읽기 전용시에는 공유 가능
♠ CONTENTS 1. Latch 2. Latch의 동작 메커니즘 3. Lock 4. Lock의 동작 메커니즘 5. Latch와 Lock의 비교 6. 질문 및 답변
♠ Latch의 동작 메커니즘 • Willing-to-wait 모드의 Latch 획득 • 기본적인 Latch획득을 위한 모드 • Latch를 획득할 수 있을 때까지 대기한다는 의미 Latch SPIN Latch 획득 재시도 Latch 획득 Process 2 Process 1 WAKE Latch Free Event발생!! SLEEP
♠ CONTENTS 1. Latch 2. Latch의 동작 메커니즘 3. Lock 4. Lock의 동작 메커니즘 5. Latch와 Lock의 비교 6. 질문 및 답변
♠ Lock? • Database전체를 보호하는 동기화 메커니즘 • Enqueue lock과 일반lock으로 구분 Lock획득! Database PROCESS1 Objects… PROCESS2 WAIT! Lock PROCESS3 WAIT!
♠ Enqueue Lock 과 일반Lock Enqueue Lock Enqueue 구조로 관리되는 Lock v$event_name으로 조회 shared pool 영역에 저장됨 일반 Lock 개별 메모리 영역에서 관리 row cache lock library cache lock library cache pin buffer lock Owner List Waiter List Converter List <TM-111-0> Bucket1 Resource1 ResourceN chain Bucket2 Resource1 Hashing BucketN <Enqueue 구조>
♠ CONTENTS 1. Latch 2. Latch의 동작 메커니즘 3. Lock 4. Lock의 동작 메커니즘 5. Latch와 Lock의 비교 6. 질문 및 답변
♠ Lock의 동작 메커니즘 • Lock 획득 모드
♠ Lock의 동작 메커니즘 Lock 모드 호환성 Lock 모드간에 같이 사용될 수 있는지의 여부 UPDATE XXX SET… XXX테이블에 대해 TM Lock을 SX모드로 획득 Transaction에 대해 TX Lock을 X모드로 획득 ALTER TABLE … XXX테이블에 대해 TM Lock을 X모드로 획득
♠ CONTENTS 1. Latch 2. Latch의 동작 메커니즘 3. Lock 4. Lock의 동작 메커니즘 5. Latch와 Lock의 비교 6. 질문 및 답변
♠ 질문 및 답변 • 참고자료 • Advanced OWI in Oracle10g (조동욱 저) • http://www.oracle.com/technology/global/kr/pub/columns/dbtuning.html(안진철 님의 연재물) • http://ukja.tistory.com/ (조동욱 님의 블로그) • http://wiki.ex-em.com/index.php/POWI_Season1 (위키엑셈)