트랜잭션의 연산정보를 이용한 클라이언트 캐시 일관성 유지 기법

클라이언트-서버(Client-Server) 데이타베이스 환경에서 병목현상의 해결책으로 클라이언트캐시(client cache)를 사용할 수 있다. 여러 클라이언트들이 같은 데이타베이스의 일부를 캐시한 복사본을 사용할 때, 다른 클라이언트들과 서버간에 일관성 유지를 보장해주어야 한다. 캐시의 일관성을 유지하기 위한 여러 가지 알고리즘들이 제안되어왔다. 그 중에서 O2PL(Optimistic Two Phase Locking) 기법은 동시성을 증가시킬 수 있는 주요 장점이 있다. 그러나 O2PL 알고리즘은 트랜잭션이 완료(commit)연산을 요구하는 시점에서 접근한 캐시데이타의 일관성을 위한 작업이 시작되므로 최종적인 완료까지는 지연이 발생하게된다. 이때 다른 클라이언트에서 잠금 충돌(lock conflict)에 의해 전역 교착상태(global deadlock) 가 발생한다면 블락(block)되어 지연되는 시간은 더욱 증가하게된다. 본 논문에서는 향상된 O2PL기법으로 PN(Preemption by Notification)-O2PL 기법을 제안한다. 이 접근에서는 O2PL의 특성으로 얻을 수 있는 연산정보를 관련된 다른 트랜잭션에게 통지(notification)로 사용하고 제시한 조건에 해당할 경우 상대 자원을 바로 사용할 수 있게 한다. 이 조건은 대부분의 전역 교착 상태에 해당하는 두 트랜잭션간의 교착상태를 조기에 신속히 감지할 수 있게 하여 트랜잭션 완료의 지연을 감소시키게 한다. PN-O2PL 알고리즘이 기존의 O2PL기법보다 빠른 응답시간을 얻을 수 있음을 모의실험을 통하여 보인다.