著者
兵頭章子 大内 拓磨 滝沢 誠
雑誌
情報処理学会研究報告データベースシステム(DBS)
巻号頁・発行日
vol.1991, no.22, pp.1-10, 1991-03-11

本論文では、階層型トランザクションのデッドロックの解除方法について述べる。従来のデータベースシステムでは、デッドロックが生じると、デッドロックサイクル内のある一つのトランザクションを選び、ログにある更新前の状態をデータベースに戻すことで、そのトランザクションをアボートしていた。本論文では、階層型トランザクションの中で、デッドロックを解除するのに必要最低限の部分のみを、補償演算によりアボートする方法を考える。補償演算もまた、トランザクションであり補償演算を実行するために、オブジェクトにロックを要求する。本論文では、補償演算を用いたデッドロックの解除および、補償演算の実行により生じる解除不能なデッドロックについて述べる。また、この解除方法と、解除不能デッドロックの生じない安全なシステムを示す。In this paper, we discuss how to resolve deadlock in the interleaved execution of nested transactions. In conventional database systems, when some deadlock occurs, one deadlocked transaction T is selected and is wholy aborted by using the log which includes the old states. In our method, only a part of T which is necessary to resolve the deadlock is tried to be aborted by executing the compensate operations. The compensate operations are also transactions and they require locks on the objects. In this paper, we show that there exists deadlock named unresolvable deadlock, which can not be resolved by executing the compensate operation. Also, we show a method for resolving the unresolvable deadlock and a safe system no unresolvable one occurs.