투케이2K

103. (DB/데이터베이스) 로킹 (Loking) 병행 제어 기법 설명 본문

DataBase

103. (DB/데이터베이스) 로킹 (Loking) 병행 제어 기법 설명

투케이2K 2022. 12. 12. 10:52

[학습 구분]

과목 : Database / 데이터베이스

 

[설 명]

1. 로킹 이란 하나의 트랜잭션이 데이터를 액세스하는 동안 다른 트랜잭션이 그데이터 항목을 액세스할 수 없도록 하는 병행 제어 기법 입니다

2. 로킹 은 어떤 특정 사용자가 파일 (로킹 단위) 을 사용하고 있을 때 , 다른 사용자는 그 파일을 사용하지 못하도록 제어하는 기법 입니다

- 로킹 단위 : 한번에 한명만 사용할 수 있는 단위

- 필드, 레코드, 테이블, 파일, 데이터베이스 모두 로킹 단위가 될 수 있습니다

- ex : 프로젝트에서 로킹 단위를 [폴더] 로 설정한 경우 > [개별 파일] 로 로킹 단위를 설정한 것 보다 [로크의 수] 가 줄어듬 (로킹 단위 관리)

3. 데이터베이스 로킹 병행 제어 :

- 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹 수행

- 로킹이 되어 있는 데이터에는 다른 트랜잭션이 접근할 수 없음

- 트랜잭션은 로킹이 된 데이터에 대해서만 연산 수행

- [로킹 단위] :

  * 로킹 단위 (크다) > 로크의 수 (작다) > 병행 제어 (단순) > 로킹 오버헤드 (감소) > 병행성 수준 (낮음)

  * 로킹 단위 (작다) > 로크의 수 (크다) > 병행 제어 (복잡) > 로킹 오버헤드 (증가) > 병행성 수준 (높음)

4. 로킹 문제점 :

- 블로킹 (Blocking) : 로킹으로 인해 특정 세션이 작업을 진행하지 못하는 상태 , 로킹 중인 트랜잭션이 commit 또는 rollback 됨으로써 해제

- 교착상태 (Deadlock) : 두 세션이 각각 Lock을 설정한 리소스를 기다리고 있는 상태(블로킹이 해제되지 않음) , DBMS가 임의로 한 세션을 kill 해야 해제 가능

 
반응형
Comments