본문 바로가기
IT 이론/데이터베이스

[데이터베이스] 로킹(Locking) 기법과 로킹 단위

by 지식id 2014. 5. 22.
반응형

 데이터베이스에서의 로킹(Locking) 단위란 말 그대로 "잠그는 단위"를 말 한다. 로킹 기법이란 하나의 트랜잭션이 데이터를 액세스하는 동안 다른 트랜잭션이 그데이터 항목을 액세스할 수 없도록 하는 병행 제어 기법이며, 로크는 사용하는 데이터 객체이다.

 

 쉽게 말하면, 한번에 한명만 사용할 수 있게 하는 단위를 "로킹 단위" 라고 한다는 것이다.

 예를들어 어떤 프로젝트의 소스를 여러 사람이 동시에 작업할 경우 파일이 꼬일 수도있다. 그래서 누군가가 특정 파일을 건들고 있을때, 다른 사용자는 그 파일을 건들지 못하도록 하는데 안전한데, 이게 로킹이다. 그리고 여 경우에선 로킹 단위가 파일이 된다.

 

 이런 방법도 있지만 더 높은 안전성을 위해서, 어떤 사람이 어떤 폴더에 있는 파일을 작업하고 있을때 다른 사람으로 하여금 그 폴더에 아예 접근을 못 하게 하는 방법도 있다. 이렇게 하면 로킹 단위가 폴더가 된다. 그리고 더 나아가서 한명씩 차례로 작업할 수만 있고, 누군가가 작업 중이라면 아예 프로젝트에 접근조차 못하게 할 수 있다. 이때 로킹 단위는 프로젝트이다.

 

 이때 그 단위별로 나누어진 하나하나를 '로크' 라고 하는데, 로킹 단위를 파일로 하자면 파일 하나하나가 로크가 되니 당연히 그 수가 많아질테고, 폴더로 하자면 훨씬 줄어들 것이다. 그리고 로킹 단위를 프로젝트로 하면 로크는 1개 밖에 없게 된다.

 

 데이터 베이스 트랜젝션에서도 이와 마찬가지로 로킹 단위는 파일, 레코드, 필드와 같이 여러가지로 나누어 질 수도 있다.

 

 상식적으로 생각하여,

 

 로킹 단위가 크면 -> 로크의 수가 적어진다. -> 제어 기법이 간단해 진다. -> 병행성이 감소한다.

 로킹 단위가 작으면 -> 로크의 수가 많아진다. -> 제어 하기 까다롭다. -> 병행성이 증가한다.

반응형

댓글