초록
이단계 라킹 규약은 다수의 트랜잭션들의 수행이 병행되는 데이터베이스 환경에서 데이터의 논리적인 일관성을 보장하기 위하여 널리 사용되는 동시성 제어 기법이다. 이단계 라킹 규약을 사용하는 시스템에서는 두 개 이상의 트랜잭션들이 락을 잡은 상태를 서로 다른 트랜잭션이 가진 락을 무한정으로 상호 대기하는 교착 상태가 발생할 수 있다. 교착 상태 검출기는 트랜잭션들 간의 락 대기 정보를 기반으로 시스템 내에 교착 상태가 발생하였는가를 주기적으로 검출하는 기능을 제공한다. 데이터베이스 시스템에서는 트랜잭션들과 교착 상태 검출기의 수행이 병행되며, 이들은 각각의 수행을 위하여 락 대기 정보를 공통으로 읽고 쓰게 된다. 이와 같이, 락 대기 정보는 공유 정보에 해당되므로 상호 배제 기법을 이용한 락 대기 정보의 물리적 일관성을 보장하는 기법이 요구된다. 특히, 고성능의 주기억장치 데이타베이스에서는 이러한 상호 배제 기법의 성능이 전체 시스템에 큰 영향을 미치게 되므로 효율적인 상호 배제 기법은 매우 중요하다. 본 연구에서는 락 대기 정보의 물리적 일관성을 효과적으로 보장하는 새로운 상호 배제 기법을 제안한다. 제안\ulcorner는 기법은 상호 배제를 위한 처리 오버헤드를 극소화하고, 전체 시스템의 동시성을 극대화하는 것을 주요 목표로 한다.
The two-phase locking protocol(2PL) is the most widely-used concurrency control mechanism for guaranteeing logical consistency of data in a database environment where a number of transactions perform concurrently. The problem inherent in the 2PL protocol is a deadlock, where a set of transactions holding some locks indefinitely wait an additional lock that is already held by other transactions in the set. The deadlock detector is a DBMS sub-component that examines periodically whether a system is in a deadlock state based on lock waiting information of transactions. The deadlock detector and transactions execute concurrently in a DBMS and read and/or write the lock waiting information simultaneously. Since the lock waiting information is a shared one, we need an efficient method guaranteeing its physical consistency by using mutual exclusion. The efficiency of the mutual exclusion method is crucial especially in a main memory DBMS with high performance since it seriously affects the performance of an entire system. In this paper, we propose a new method that effectively guarantees physical consistency of lock waiting information. Two primary goals of our method are to minimize the processing overhead and to maximize system concurrency.