(57)【特許請求の範囲】
【請求項１】
複数のクライアントによるデータベースへのアクセスについて排他制御する排他制御装置であって、
前記各クライアントの要求に応じて前記データベースに格納されているリソースにアクセスするために発行された各トランザクションのアクセス要求と、前記データベースに格納されている複数のリソースとの対応を示すリソース管理情報を管理するリソース管理手段と、
前記リソース管理手段によって管理されているリソース管理情報に基づいて前記各トランザクションの前記各リソースに対する排他と待ちの状態を示すグラフを作成し、前記各リソースへの所定のアクセス状態に応じて、前記グラフから、当該グラフに含まれるトランザクションの排他制御に伴うグラフのアトミック操作が発生する場合にも当該アトミック操作の影響を受けることなくトランザクションの排他制御を行うことができるサブグラフを分割し、分割後の前記グラフと前記サブグラフに基づいて排他制御する排他制御手段と、
を備えることを特徴とする排他制御装置。
【請求項２】
前記排他制御手段が、アクセスされる頻度の高いリソースが存在する場合に、当該アクセスされる頻度の高いリソースをサブグラフに分割することを特徴とする請求項１に記載の排他制御装置。
【請求項３】
前記排他制御手段が、アクセス状態の関連性の強い２つのリソースが存在する場合に、当該アクセス状態の関連性の強い２つのリソースをサブグラフに分割することを特徴とする請求項１に記載の排他制御装置。
【請求項４】
複数のクライアントによるデータベースへのアクセスについて排他制御する排他制御方法であって、
前記各クライアントの要求に応じて前記データベースに格納されているリソースにアクセスするために発行された各トランザクションのアクセス要求と、前記データベースに格納されている複数のリソースとの対応を示すリソース管理情報を管理するリソース管理ステップと、
前記リソース管理ステップにおいて管理されるリソース管理情報に基づいて前記各トランザクションの前記各リソースに対する排他と待ちの状態を示すグラフを作成し、前記各リソースへの所定のアクセス状態に応じて、前記グラフから、当該グラフに含まれるトランザクションの排他制御に伴うグラフのアトミック操作が発生する場合にも当該アトミック操作の影響を受けることなくトランザクションの排他制御を行うことができるサブグラフを分割し、分割後の前記グラフと前記サブグラフに基づいて排他制御する排他制御ステップと、
を備えることを特徴とする排他制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースシステムにおける排他制御装置および排他制御方法に関する。
【背景技術】
【０００２】
データベースシステムは、トランザクション間の整合性を維持するために排他制御機構を備えている。排他制御機構は、トランザクションがリソース（表や行など）に更新操作を行なっている間は他のトランザクションからのアクセスを排他する（操作をエラーにする、待ち状態にするなど）場合に利用される。
【０００３】
ここで、データベースシステムの排他制御や高速化のための様々な技術が知られている。
例えば、特許文献１は、複数のノード（計算機）間にレプリケートされたデータを、レプリケートされていることを保証しながら各ノードで自由に排他更新することができる分散ノード間排他更新装置を開示する。
特許文献２は、データベースサーバとデータベースのデータを記憶する記憶装置に接続されており、データベースサーバが今後アクセスするデータを予測し、予測の結果に基づいて、データの先読みを記憶装置に指示するプリフェッチサーバを開示する。
【０００４】
また、一般に、データベースシステムの排他制御機構はトランザクションとリソースを示すノードと排他状態や待ち状態を示すノード間のリンクから構成されるグラフを作成してトランザクション間の排他制御を行なっている。
グラフの操作はノード間のリンクの整合性を保つためにトランザクション間でアトミックに実行する必要があり、トランザクションが異なるリソースに対してアクセスした場合でもグラフを操作している間はトランザクションが直列に処理される。そのため、排他制御処理がボトルネックとなり、トランザクションのスループットが向上しない問題がある。
【０００５】
この問題に対して、グラフをリソースごとにサブグラフに分割して管理する方法が開発されている。グラフを分割することにより、グラフのアトミック操作をサブグラフごとに分離できるため、トランザクション処理の同時実行性が向上する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２７６４２０公報
【特許文献２】特開２００５−２５８７３５公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
データベースシステムの利用方法の拡大に伴い、データベースへのアクセス方法も多岐にわたっている。例えば、オンライン処理システムでは、短時間のトランザクションが限られた特定のリソースにアクセスする。バッチ処理システムでは、長時間のトランザクションが広範囲のリソースにアクセスする。
データベースへのアクセス方法が変わると、トランザクション間の排他特性が変わる。限られた特定のリソースにアクセスするトランザクションは排他するリソースの範囲も限られており、短時間のトランザクションはリソースを排他する時間も短い。
【０００８】
しかし、データベースのアクセス方法の異なるトランザクションが、同一のデータベースシステム中で混在して実行される場合、異なる特性の排他処理が同一の排他制御機構で処理される。これにより、ある業務のトランザクションで排他制御処理中に行なうグラフのアトミック操作が別業務のトランザクションが排他制御処理中に行なうグラフのアトミック操作の影響を受けて待ち時間が発生するため、トランザクション処理の同時実行性が向上しない不都合が生じる。
【０００９】
上述した、グラフの分割管理方法は、ハッシュによってリソースをサブグラフに割り当てている。このため、このグラフの分割管理方法を用いても排他特性の異なる業務間でグラフのアトミック操作を分離できない。
【００１０】
本発明の目的は、アクセス方法の違いにより排他特性の異なるトランザクションが混在しているデータベースシステムにおいて、トランザクション処理のボトルネックを解消することができる排他制御装置および排他制御方法を提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の排他制御装置は、
複数のクライアントによるデータベースへのアクセスについて排他制御する排他制御装置であって、
前記各クライアントの要求に応じて前記データベースに格納されているリソースにアクセスするために発行された各トランザクションのアクセス要求と、前記データベースに格納されている複数のリソースとの対応を示すリソース管理情報を管理するリソース管理手段と、
前記リソース管理手段によって管理されているリソース管理情報に基づいて前記各トランザクションの前記各リソースに対する排他と待ちの状態を示すグラフを作成し、前記各リソースへの所定のアクセス状態に応じて、前記グラフから、当該グラフに含まれるトランザクションの排他制御に伴うグラフのアトミック操作が発生する場合にも当該アトミック操作の影響を受けることなくトランザクションの排他制御を行うことができるサブグラフを分割し、分割後の前記グラフと前記サブグラフに基づいて排他制御する排他制御手段と、
を備える。
【００１２】
好ましくは、本発明の排他制御装置は、
前記排他制御手段が、アクセスされる頻度の高いリソースが存在する場合に、当該アクセスされる頻度の高いリソースをサブグラフに分割する。
【００１３】
好ましくは、本発明の排他制御装置は、
前記排他制御手段が、アクセス状態の関連性の強い２つのリソースが存在する場合に、当該アクセス状態の関連性の強い２つのリソースをサブグラフに分割する。
【００１４】
また、本発明の排他制御方法は、
複数のクライアントによるデータベースへのアクセスについて排他制御する排他制御方法であって、
前記各クライアントの要求に応じて前記データベースに格納されているリソースにアクセスするために発行された各トランザクションのアクセス要求と、前記データベースに格納されている複数のリソースとの対応を示すリソース管理情報を管理するリソース管理ステップと、
前記リソース管理ステップにおいて管理されるリソース管理情報に基づいて前記各トランザクションの前記各リソースに対する排他と待ちの状態を示すグラフを作成し、前記各リソースへの所定のアクセス状態に応じて、前記グラフから、当該グラフに含まれるトランザクションの排他制御に伴うグラフのアトミック操作が発生する場合にも当該アトミック操作の影響を受けることなくトランザクションの排他制御を行うことができるサブグラフを分割し、分割後の前記グラフと前記サブグラフに基づいて排他制御する排他制御ステップと、
を備える。
【発明の効果】
【００１５】
本発明によれば、データベースのアクセス方法の異なるトランザクションが、同一のデータベースシステム中で混在して実行される場合において、特定のトランザクションによる排他制御に伴うグラフのアトミック操作が頻繁に発生する場合にも、他のトランザクションの排他制御はそのアトミック操作に影響を受けることなく処理することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係る排他制御機構を備えたデータベースシステムの構成の一例を示す図である。
【図２】排他制御のためのグラフを構築する従来の手順の例を示す図である。
【図３】図２におけるグラフ管理情報をグラフの形式で示す図である。
【図４】アクセスされる頻度の高いリソースをサブグラフに格納する方法において排他制御部が利用するリソース頻度管理情報の例を示す図である。
【図５】アクセスされる頻度の高いリソースをサブグラフに格納する方法における分割処理の流れを示す図である。
【図６】アクセス状態の関連性の強い２つのリソースをサブグラフに格納する方法において排他制御部が利用するリソース関連度管理情報の例を示す図である。
【図７】アクセス状態の関連性の強い２つのリソースをサブグラフに格納する方法における分割処理の流れを示す図である。
【図８】リソースをサブグラフに分割した後の排他制御処理の流れを示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明を適用した排他制御機構の一実施形態について説明する。
図１は、本発明の実施形態に係る排他制御機構を備えたデータベースシステム１０１の構成の一例を示す図である。
データベースシステム１０１には、データベース１０２が接続されている。また、データベースシステム１０１は、ネットワーク１０４を介してクライアント１０３ａ，１０３ｂ，１０３ｎと通信することができる。
【００１８】
データベースシステム１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、メモリと、記憶装置とを有している。
メモリは、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等を含む。メモリはデータベース管理プログラムを記憶している。
ＣＰＵがデータベース管理プログラムを実行することにより、トランザクション管理部１０６と、リソース管理部１０７と、排他制御部１０８の各機能が実現される。
トランザクション管理部１０６は、クライアント１０３ａ，１０３ｂ，１０３ｎからの処理要求に対してトランザクションを生成して各要求間の整合性を管理し、各トランザクションをトランザクションＩＤによって管理する。
リソース管理部１０７は、データベースの内部状態を管理し、トランザクションからの要求に応じてデータベースへのアクセスを制御する。
排他制御部１０８は、競合するデータベース中のリソースに対してトランザクション間の排他制御を行なう。
【００１９】
記憶装置は、ハードディスク装置や光ディスク装置等を含む。記憶装置は、データベース１０２を記憶している。
データベース１０２は、データ表１０５ａ，１０５ｂ，１０５ｎ等のデータベースシステム１０１が管理対象とするデータを格納している。
【００２０】
クライアント１０３ａ，１０３ｂ，１０３ｎはデータベースシステム１０１を通じてデータベース１０２に格納されたデータにアクセスする。クライアント１０３ａ，１０３ｂ，１０３ｎはそれぞれ異なる業務を行なう端末で、データベースへのアクセス頻度やアクセス対象とするデータの量が異なる。
なお、クライアントの数は３つに限らず、２つでも４つ以上でも良い。また、複数のクライアントの機能を実現するためのプログラムが１台のコンピュータで実行されており、１台のコンピュータが複数のクライアントを含んでいても良い。
【００２１】
図２は、排他制御のためのグラフを構築する従来の手順の例を示す図である。この例は、クライアント１０３ａのデータベース１０２へのアクセスと、クライアント１０３ｂのデータベース１０２へのアクセスとが競合するようすを示している。
クライアント１０３ａ，１０３ｂ，１０３ｎがそれぞれデータベースシステム１０１へアクセスすると、トランザクション管理部１０６はそれぞれの要求に対してそれぞれトランザクションを発行する。そして、トランザクション管理部１０６は、トランザクションを管理するため、内部にトランザクション管理情報２０１を生成し、クライアントの識別子（クライアントＩＤ）とトランザクションの識別子（トランザクションＩＤ）の対応表を格納する。
次に、トランザクション管理部１０６は、クライアント１０３ａ，１０３ｂ，１０３ｎの要求に応じてデータベース１０２へのアクセスをリソース管理部１０７へ要求する。
【００２２】
例えば、トランザクション管理部１０６は、クライアント１０３ａ，１０３ｂ，１０３ｎの要求に対してそれぞれトランザクションｔｒｎ１，ｔｒｎ２，ｔｒｎ３を割り当てて、図２に示すトランザクション管理情報２０１を生成し、データベース１０２へのアクセスをリソース管理部１０７へ要求する。
【００２３】
リソース管理部１０７は、トランザクションのアクセス要求とリソース管理部１０７が管理するデータベース１０２内のリソース情報をつき合わせて、該当するデータにアクセスする。そして、リソース管理部１０７は、アクセス要求を管理するため、内部にリソース管理情報２０３を生成し、トランザクションＩＤとリソースＩＤの対応表を格納する。
【００２４】
例えば、データベース１０２に、行２０２ｂ，行２０２ｃ，行２０２ｎで構成される表２０２ａが格納されており、表２０２ａ，行２０２ｂ，行２０２ｃ，行２０２ｎのリソースＩＤがそれぞれｔ１，ｔ１ｒ１，ｔ１ｒ２，ｔ１ｒｎであるとする。そして、クライアント１０３ａから発生したトランザクションｔｒｎ１が表２０２ａの行２０２ｂにアクセスを要求し、クライアント１０３ｎから発生したトランザクションｔｒｎ３が表２０２ａの行２０２ｃにアクセスを要求し、その後クライアント１０３ｂから発生したトランザクションｔｒｎ２も表２０２ａの行２０２ｂにアクセスを要求するとする。このとき、リソース管理部１０７は、図２に示すリソース管理情報２０３を生成する。
【００２５】
次に、リソース管理部１０７はデータベース１０２へのアクセスに先立って、排他制御部１０８に対して該当リソースがアクセス可能であるかどうかを問い合わせる。排他制御部１０８は、リソース管理部１０７からトランザクションＩＤとリソースＩＤを受け取り、グラフ管理情報２０４を生成し、トランザクションがリソースに対して排他できるかまたは待ち状態になるかを判定する。
【００２６】
例えば、クライアント１０３ａから発生したトランザクションｔｒｎ１が表２０２ａの行２０２ｂにアクセスし、その後クライアント１０３ｂから発生したトランザクションｔｒｎ２も表２０２ａの行２０２ｂにアクセスする場合、リソース管理部１０７から排他制御部１０８へ渡される情報はそれぞれ「ｔｒｎ１，ｔ１ｒ１」と「ｔｒｎ２，ｔ１ｒ１」である。
図２に示すように、排他制御部１０８は、クライアント１０３ａ（トランザクションｔｒｎ１）がリソースｔ１ｒ１にアクセス可能であるため、グラフ管理情報２０４中の該当レコードに「排他」状態を設定する。一方、クライアント１０３ｂ（トランザクションｔｒｎ２）はリソースｔ１ｒ１が既にクライアント１０３ａ（トランザクションｔｒｎ１）によって排他されているためアクセス不可となり、排他制御部１０８はグラフ管理情報２０４中の該当レコードには「待ち」状態を設定する。
【００２７】
図３は、図２におけるグラフ管理情報２０４をグラフの形式で示す図である。
トランザクションｔｒｎ１はリソースｔ１ｒ１を排他しているため、トランザクションｔｒｎ２は待ち状態になる。トランザクションｔｒｎ３はトランザクションｔｒｎ１とトランザクションｔｒｎ２とは競合しないリソースｔ１ｒ２を排他している。
【００２８】
以下、上述したように構成されたデータベースシステム１０１において、各リソースへの所定のアクセス状態に応じて排他制御に用いるグラフを分割する方法を説明する。グラフを分割する方法には、アクセスされる頻度の高いリソースをサブグラフに格納する方法と、アクセス状態の関連性の強い２つのリソースをサブグラフに格納する方法がある。
【００２９】
図４は、アクセスされる頻度の高いリソースをサブグラフに格納する方法において排他制御部１０８が利用するアクセス頻度管理情報４０１の例を示す図である。図４（Ａ）はグラフを分割する前のアクセス頻度管理情報４０１の例を示し、図４（Ｂ）はグラフを分割した後のアクセス頻度管理情報４０１の例を示す。
グラフＩＤ４０２はリソースＩＤ４０３が示すリソースがどのグラフまたはサブグラフに属しているかを示し、アクセス頻度４０４はリソースＩＤ４０３が示すリソースがアクセスされる頻度（所定の期間、例えば１分間にアクセスされる回数の平均）を示す。
排他制御部１０８は、所定の期間ごとに各リソースがアクセスされる回数を集計し、アクセス頻度管理情報４０１を更新する。
【００３０】
図４（Ａ）に示すように、グラフ１は、アクセスされる頻度の低いリソースｔ１ｒ１およびリソースｔ１ｒ２と、アクセスされる頻度の高いリソースｔ１ｒ３を含んでいる。例として、グラフの分割条件をアクセスされる頻度５０以上と設定した場合、グラフ１はアクセスされる頻度の低いリソースｔ１ｒ１とリソースｔ１ｒ２からなるサブグラフとアクセスされる頻度の高いリソースｔ１ｒ３からなるサブグラフに分割される（４０５）。
図４（Ｂ）に示すように、排他制御部１０８は、グラフの分割条件を満たしていないリソースｔ１ｒ１とリソースｔ１ｒ２はグラフ１（４１１）に属したままとし、グラフの分割条件を満たしたリソースｔ１ｒ３は新設したサブグラフ１（４１２）に属するように変更する。リソースｔ１ｒ３のリソースＩＤにはサブクラス１に属していることを示す情報（ｓ１）を付加し（４１３）、アクセス頻度４０４を０に初期化する（４１４）。
【００３１】
図５は、アクセスされる頻度の高いリソースをサブグラフに格納する方法における分割処理の流れを示す図である。排他制御部１０８は、定期的に図５に示す処理を実施することでグラフを分割する。
排他制御部１０８は、グラフの分割要否を決定するためアクセス頻度管理情報４０１中の全てのリソースについてアクセス頻度４０４を検査する（５０１、５０２）。排他制御部１０８は、アクセス頻度４０４が予め設定されたしきい値を下回っている場合は何も行なわない（５０２：偽）（図４のリソースｔ１ｒ１およびリソースｔ１ｒ２に該当する）。アクセス頻度４０４がしきい値以上である場合（５０２：真）は以下の処理を実行することでリソースをサブグラフに格納する。
【００３２】
グラフの分割はグラフの構造を変更する必要があるため、排他制御処理と並列に実行できない（アトミック操作である）。排他制御部１０８は、排他制御処理が実施されないようにするためグラフにロックをかけた後（５０３）、サブグラフを作成する（５０４）（図４のサブグラフ１に該当する）。排他制御部１０８は、作成したサブグラフにグラフの分割条件を満たしたリソースの情報を登録し（５０５）（図４の例では、リソースｔ１ｒ３のグラフＩＤをグラフ１からサブグラフ１に変更することで、サブグラフにリソース情報の登録を行なっている）、リソースＩＤにサブグラフに属していることを示す情報を付与する（５０６）（図４のリソースｓ１ｔ１ｒ３に該当する）。
【００３３】
その後、排他制御部１０８は、分割前にリソースが属していたグラフからリソース情報を削除する（５０７）（図４の例では、リソースｔ１ｒ３のグラフＩＤをグラフ１からサブグラフ１に変更することで、グラフからリソース情報の削除を行なっている）。
以上でアトミック操作が終了するので、排他制御部１０８はグラフをアンロックする（５０８）。その後、排他制御部１０８は、５０６で変更したリソースＩＤを排他制御部１０８からリソース管理部１０７へ通知する（５０９）。
【００３４】
図６は、アクセス状態の関連性の強い２つのリソースをサブグラフに格納する方法において排他制御部１０８が利用するリソース関連度管理情報６０１の例を示す図である。図６（Ａ）はグラフを分割する前のリソース関連度管理情報６０１の例を示し、図６（Ｂ）はグラフを分割した後のリソース関連度管理情報６０１の例を示す。
グラフＩＤ６０２は、リソースＩＤ６０３が示すリソースがどのグラフまたはサブグラフに属しているかを示す。関連リソースＩＤ６０４は、リソースＩＤ６０３が示すリソースと同一のトランザクションによってアクセスされるリソースを示す。関連度６０５は、リソースＩＤ６０３が示すリソースと関連リソースＩＤ６０４が示すリソースの関連度（例えば、同一のトランザクションによってアクセスされた回数）を示す。
【００３５】
ここで、アクセス状態の関連性が強い２つのリソースとは、例えば、所定の期間に同一のトランザクションによってアクセスされた回数が多い２つのリソースをいう。排他制御部１０８は、所定の期間ごとに同一のトランザクションによってアクセスされる各リソースのアクセス回数を集計し、リソース関連度管理情報６０１を更新する。
【００３６】
図６（Ａ）に示すように、リソースｔ１ｒ１とリソースｔ１ｒ４は関連度の高い関連リソースを持たない。一方、リソースｔ１ｒ２とリソースｔ１ｒ３は相互に関連度が高く（例えば、リソースｔ１ｒ２とリソースｔ１ｒ３は同一のトランザクションによってアクセスされた回数が多い）、リソースｔ１ｒ２はリソースｔ１ｒ３を関連度の高い関連リソースとして持ち、リソースｔ１ｒ３はリソースｔ１ｒ２を関連度の高い関連リソースとして持つ。
例として、グラフの分割条件を関連度５０以上と設定した場合、関連度の低いリソースｔ１ｒ１とリソースｔ１ｒ４からなるサブグラフと関連度の高いリソースｔ１ｒ２とリソースｔ１ｒ３からなるサブグラフに分割される。
【００３７】
図６（Ｂ）に示すように、排他制御部１０８は、グラフの分割条件を満たしていないリソースｔ１ｒ１とリソースｔ１ｒ４はグラフ１（６１１）に属したままとし、グラフの分割条件を満たしたリソースｔ１ｒ２とリソースｔ１ｒ３は新設したサブグラフ１（６１２）に属するように変更する。リソースｔ１ｒ２とリソースｔ１ｒ３のリソースＩＤにはサブクラス１に属していることを示す情報（ｓ１）を付加し（６１３，６１４）、関連度を０に初期化する（６１５）。
【００３８】
図７は、アクセス状態の関連性の強い２つのリソースをサブクラスに格納する方法における分割処理の流れを示す図である。排他制御部１０８は、定期的に図７に示す処理を実施することでグラフを分割する。
排他制御部１０８は、グラフの分割要否を決定するため、リソース関連度管理情報６０１中の全てのリソースと関連リソースについて関連度を検査する（７０１，７０２，７０３）。排他制御部１０８は、関連度が予め設定されたしきい値を下回っている場合は何も行なわない（７０３：偽）（図６のリソースｔ１ｒ１とリソースｔ１ｒ４に該当する）。排他制御部１０８は、関連度がしきい値以上である場合（７０３：真）は以下の処理を実行することでリソースをサブグラフに格納する。
【００３９】
グラフの分割はグラフの構造を変更する必要があるため、排他制御処理と並列に実行できない（アトミック操作である）。排他制御部１０８は、排他制御処理が実行されないようにするためグラフにロックをかけた後（７０４）、サブグラフが未作成の場合（７０５：真）はサブグラフを作成する（７０５，７０６）（図６のサブグラフ１に該当する）。排他制御部１０８は、作成したサブグラフにグラフの分割条件を満たしたリソースの情報を登録し（７０７）（図６の例では、リソースｔ１ｒ２とｔ１ｒ３のグラフＩＤをグラフ１からサブグラフ１に変更することで、サブグラフにリソース情報の登録を行なっている）、リソースＩＤにサブグラフに属していることを示す情報（Ｓ１）を付与する（７０８）（図６のリソースｓ１ｔ１ｒ２とリソースｓ１ｔ１ｒ３に該当する）。
【００４０】
その後、排他制御部１０８は、分割前にリソースが属していたグラフからリソース情報を削除する（７０９）（図６の例では、リソースｔ１ｒ２とリソースｔ１ｒ３のグラフＩＤをグラフ１からサブグラフ１に変更することで、グラフからリソース情報の削除を行なっている）。以上でアトミック操作が終了するので、排他制御部１０８はグラフをアンロックする（７１０）。その後、７０８で変更したリソースＩＤを排他制御部１０８からリソース管理部１０７へ通知する（７１１）。
【００４１】
図８は、リソースをサブグラフに分割した後の排他制御処理の流れを示す図である。
リソース管理部１０７はデータベース１０２へのアクセスに先立って、トランザクションＩＤとリソースＩＤを指定して排他制御部１０８に該当リソースがアクセス可能であるかどうかを問い合わせる。
排他制御部１０８は、リソース管理部１０７から問い合わせがあったリソースのリソースＩＤにサブグラフＩＤが含まれているかどうかを判断し、排他制御により操作対象とするグラフまたはサブグラフを決定する（８０１）。リソースＩＤにサブグラフＩＤが含まれている場合（８０１：真）、排他制御部１０８はリソースＩＤから操作対象のサブグラフを決定する（８０２，８０３）。リソースＩＤにサブグラフＩＤが含まれていない場合（８０１：偽）、排他制御部１０８は分割前のグラフを操作対象とする（８０４）。
【００４２】
操作対象のグラフまたはサブグラフが決定した後の処理は、従来のグラフ操作による排他制御の手順と同様である。排他制御部１０８は、アトミック操作を保障するために操作対象のグラフまたはサブグラフをロックする（８０５）。そして、排他制御部１０８は、グラフ管理情報２０４中の操作対象のグラフまたはサブグラフにトランザクション情報が未登録の場合（８０６：真）は操作対象のグラフまたはサブグラフにトランザクション情報を追加し（８０７）、グラフ管理情報２０４中の操作対象のグラフまたはサブグラフにリソース情報が未登録の場合（８０８：真）は操作対象のグラフまたはサブグラフにリソース情報を追加する（８０９）。
【００４３】
その後、排他制御部１０８は、排他制御対象のトランザクションとリソースのグラフ上の関係を検査して排他状態に遷移可能であるか、または待ち状態になるかを判定し（８１０）、判定結果をリソース管理部１０７に通知する。以上の処理が完了した後、排他制御部１０８は、アトミック操作を終了するためにグラフをアンロックする（８１１）。
【符号の説明】
【００４４】
１０１…データベースシステム
１０２…データベース
１０３ａ，１０３ｂ，１０３ｎ…クライアント
１０４…ネットワーク
１０５ａ，１０５ｂ，１０５ｎ…データベース中のデータ（表）
１０６…トランザクション管理部
１０７…リソース管理部
１０８…排他制御部
２０１…トランザクション管理情報
２０２ａ…データベースリソース（表）
２０２ｂ，２０２ｃ，２０２ｎ…データベースリソース（行）
２０３…リソース管理情報
２０４…グラフ管理情報
４０１…アクセス頻度管理情報
４０２，４１１，４１２…リソースが属するグラフのＩＤ
４０３，４１３…リソースＩＤ
４０４，４０５，４１４…リソースのアクセス頻度
６０１…リソース関連度管理情報
６０２，６１１，６１２…リソースが属するグラフのＩＤ
６０３，６１３…リソースＩＤ
６０４，６１４…関連リソースＩＤ
６０５，６０６，６１５…リソースと関連リソース間のリソース関連度
【図１】
0005580754.tif 000002
【図２】
0005580754.tif 000003
【図３】
0005580754.tif 000004
【図４】
0005580754.tif 000005
【図５】
0005580754.tif 000006
【図６】
0005580754.tif 000007
【図７】
0005580754.tif 000008
【図８】
0005580754.tif 000009