次に、本発明に係るインデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体を実施するための最良の形態について、図面を参照して詳細に説明する。なお、検索対象とするインデックスファイル内のインデックスの階層構造は、例えば前述した図2及び図3に示すものと同様であるため、その説明は省略する。
(第1の実施の形態)
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
図1は、本実施の形態に係るインデックスファイル検索システムの全体構成を示すブロック図であり、予め設定された利用者プログラムを実行するコンピュータを搭載した利用者端末101と、この利用者端末101の検索対象となるインデックスを格納したデータベースを構成するインデックスファイル106と、利用者端末101とインデックスファイル106との間に配置された複数の手段とを備える。各手段には、処理要求制御手段102と、排他資源決定手段103と、インデックスファイルアクセス手段104と、排他制御手段105とが含まれる。
これら各手段102〜105は、例えば利用者端末101にネットワークを介して接続されるサーバ機等の1台又は複数台のコンピュータ機に搭載される。この場合、コンピュータ機のCPU(Central Processing Unit)が予め設定されたプログラム(本発明のインデックスファイル検索プログラムに対応する。)の命令を実行することにより、これら各手段102〜105の機能(後述参照)が実現される。なお、本実施の形態では、処理要求制御手段102、排他資源決定手段103、および排他制御手段105が本発明の制御手段を構成し、インデックスファイルアクセス手段104が本発明のアクセス手段を構成する。
利用者端末101は、利用者の操作によるインデックスファイル106の検索時に予め設定された利用者プログラムを実行することにより、検索するインデックス名、およびインデックス検索条件のインデックス値を含んだインデックス検索要求を出力する。インデックス検索条件には、検索対象のインデックス値のほか、そのインデックス値を昇順に読むか降順に読むかの検索条件も含まれる。
処理要求制御手段102は、利用者端末101からインデックス検索要求が出力された場合、その検索要求から一括して排他制御を行うための排他資源に対応する最上位インデックスブロックのブロック番号を取得するために、その検索要求に含まれるインデックス名を排他資源決定手段103に渡す。またこの手段102は、排他資源決定手段103から排他資源のブロック番号、および一括排他資源が確定していない旨の制御情報を受け取ると、これらの制御情報に基づいて、ブロックイメージをインデックスファイル106から取り出すためにブロック番号、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段104に渡す。
処理要求制御手段102は、インデックスファイルアクセス手段104から受け取ったブロックイメージが最下位インデックスでない、つまり最上位インデックスブロック又は中間位インデックスブロックならば、ブロックイメージ、インデックス検索条件、および一括排他資源が確定しているか否かの制御情報を排他資源決定手段103に渡す。またこの手段102は、排他資源決定手段103から排他資源のブロック番号、排他資源の上位ブロックのブロック番号、および一括排他資源が確定しているか否かの制御情報を受け取ると、これらの制御情報に基づいて、ブロックイメージをインデックスファイル106から取り出すために必要な排他資源のブロック番号、排他資源の上位ブロックのブロック番号、および一括排他資源が確定しているか否かの制御情報をインデックスファイルアクセス手段104に渡す。
処理要求制御手段102は、インデックスファイルアクセス手段104から受け取ったブロックイメージが最下位インデックスブロックであるならば、検索条件を満たすインデックス値を保持したインデックスレコードを求め、該当するインデックスレコードを利用者端末101に返却する。
排他資源決定手段103は、処理要求制御手段102から渡されるインデックス名から該当するインデックスの最上位インデックスブロック番号を求め、処理要求制御手段102に排他資源に対応する最上位インデックスブロックのブロック番号、および一括排他資源が確定していない旨の制御情報を渡す。なお、インデックス名と該当するインデックスの最上位インデックスブロック番号とは、例えば予め図示しない表で互いに関連付けて登録されている。
排他資源決定手段103は、処理要求制御手段102から渡されるブロックイメージ、および一括排他資源が確定しているか否かの制御情報から、排他資源のブロック番号、排他資源の上位ブロックのブロック番号、および一括排他資源が確定しているか否かの制御情報を処理要求制御手段102に渡す。
インデックスファイルアクセス手段104は、処理要求制御手段102からブロック番号、および一括排他資源が確定していない旨の制御情報を受け取ったら、これらの制御情報に基づいて、排他制御を行うために排他資源であるブロック番号、および排他制御する旨の制御情報を排他制御手段105に渡す。またこの手段104は、排他制御手段105から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいて、該当ブロック番号に対するブロックイメージをインデックスファイル106から取り出し、ブロックイメージを処理要求制御手段102に渡す。
インデックスファイルアクセス手段104は、処理要求制御手段102から一括排他資源が確定している旨の制御情報、排他資源および排他資源の上位ブロックのブロック番号を受け取ったら、これらの制御情報に基づいて、排他制御を行わないで排他資源のブロック番号に対するブロックイメージをインデックスファイル106から取り出し、ブロックイメージを処理要求制御手段102に渡す。
インデックスファイルアクセス手段104は、処理要求制御手段102から一括排他資源が確定していない旨の制御情報、排他資源および排他資源の上位ブロックのブロック番号を受け取ったら、これらの制御情報に基づいて、排他制御を行うために排他資源であるブロック番号、および排他制御する旨の制御情報を排他制御手段105に渡す。またこの手段104は、排他制御手段105から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいて、排他資源の上位ブロックの排他制御を解除するために排他資源の上位ブロックのブロック番号、および排他制御を解除する旨の制御情報を排他制御手段105に渡す。またこの手段104は、排他制御手段105から該当ブロックの排他制御を解除した旨の制御情報を受け取ったら、その制御情報に基づいて、排他資源のブロック番号に対するブロックイメージをインデックスファイル106から取り出し、ブロックイメージを処理要求制御手段102に渡す。
排他制御手段105は、インデックスファイルアクセス手段104から排他資源であるブロック番号、および排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。一方、該当ブロックが排他制御されている場合は、該当ブロックの排他制御が解除されるまで待ち、排他制御が解除されたら該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。
排他制御手段105は、インデックスファイルアクセス手段104から排他資源であるブロック番号、および排他制御を解除する旨の制御情報を受け取ったら、これらの制御情報に基づいて、該当ブロックの排他制御を解除して、該当ブロックの排他制御を解除した旨の制御情報をインデックスファイルアクセス手段104に渡す。一般的にブロックの排他制御は、検索、更新処理が終わった時点でも解除される。
インデックスファイル106は、1個または複数個のブロックから構成されるインデックスが1個、または複数個格納されている。図4は、ブロック401とレコード403との関係を示した図である。ブロック401には、先頭に該当ブロックを管理するための制御用領域402が取られ、1個または複数個のレコード403を含む。
次に図1及び図5のフローチャートを参照して、第1の実施の形態の全体の動作について詳細に説明する。
まず、利用者端末101は、利用者プログラムを実行して、インデックスの検索を行うためにインデックス検索要求を発行する。インデックス検索要求には、検索するインデックス名と、インデックス検索条件のインデックス値が含まれる。
利用者端末101からインデックス検索要求が発行されると、処理要求制御手段102は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号を取得するためにインデックス名を排他資源決定手段103に渡す。
排他資源決定手段103は、処理要求制御手段102から渡されるインデックス名から該当する最上位インデックスブロック番号を求め(ステップS501)、最上位インデックスブロック番号、一括排他資源が確定していない旨の制御情報を処理要求制御手段102に渡す。処理要求制御手段102は、最上位インデックスブロック番号、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、処理要求制御手段102から一括排他資源が確定していない旨の制御情報、および最上位インデックスブロック番号を受け取ったら、排他制御を行うために排他資源である最上位インデックスブロック番号、および排他制御する旨の制御情報を排他制御手段105に渡す。排他制御手段105は、渡された制御情報に基づいて該当ブロックに対して排他制御を行う(ステップS502)。
排他制御手段105は、インデックスファイルアクセス手段104からブロック番号、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、排他制御手段105から該当ブロックを取り出してよい旨の制御情報を受け取ったら、該当ブロック番号に対するブロックイメージをインデックスファイル106から取り出し(ステップS503)、ブロックイメージを処理要求制御手段102に返却する。
処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたインデックスブロックが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する(ステップS504)。その結果、最下位インデックスブロックでない場合(ステップS504のノー)、つまり最上位インデックスブロック又は中間位インデックスブロックの場合は、ブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を排他資源決定手段103に渡す。
排他資源決定手段103は、処理要求制御手段102からブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を受け取ったら、一括排他資源が確定していない場合(ステップS506のノー)、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求める(ステップS507)。これにより、検索条件に当てはまる下位のインデックスブロック番号が全て同一の番号である場合(ステップS508のイエス)、該当ブロック番号、上位のブロック番号、および一括排他資源が確定していない旨の制御情報を処理要求制御手段102に渡す。
処理要求制御手段102は、排他資源決定手段103から排他資源のブロック番号、排他資源の上位のブロック番号、および一括排他資源が確定していない旨の制御情報を受け取ったら、一括排他資源を変更するために、排他資源のブロック番号、排他資源の上位のブロック番号、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、処理要求制御手段102から排他資源のブロック番号、排他資源の上位のブロック番号、および一括排他資源が確定していない旨の制御情報を受け取ったら、排他資源を排他制御するために排他資源のブロック番号、および排他制御する旨を排他制御手段105に渡す。排他制御手段105は、渡された制御情報に基づいて、該当ブロックに対して排他制御を行う(ステップS509)。
排他制御手段105は、インデックスファイルアクセス手段104からブロック番号、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、排他制御手段105から該当ブロックを取り出してよい旨の制御情報を受け取ったら、該当ブロックの上位ブロックに対する排他制御を解除するために上位ブロックのブロック番号、排他制御を解除する旨の制御情報を排他制御手段105に渡す。排他制御手段105は、渡された情報に基づいて該当ブロックの上位ブロックに対する排他制御の解除を行う(ステップS510)。
排他制御手段105は、インデックスファイルアクセス手段104からブロック番号、排他制御を解除する旨の制御情報を受け取ったら、これらの制御情報に基づいて該当ブロックの排他制御を解除して、該当ブロックの排他制御を解除した旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、排他制御手段105から該当ブロックの排他制御を解除した旨の制御情報を受け取ったら、その制御情報に基づいて排他対象ブロック番号に対するブロックイメージをインデックスファイル106から取り出し(ステップS503)、ブロックイメージを処理要求制御手段102に返却する。
排他資源決定手段103は、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求め(ステップS507)、検索条件に当てはまる下位のインデックスブロック番号が同一でない場合(ステップS508のノー)、該当ブロック番号、上位のブロック番号、および一括排他資源が確定している(ステップS511)旨の制御情報を処理要求制御手段102に渡す。
処理要求制御手段102は、排他資源決定手段103から排他資源のブロック番号、排他資源の上位のブロック番号、および一括排他資源が確定している旨の制御情報を受け取ったら、排他制御を行わなくてもいいので、排他資源のブロック番号、排他資源の上位のブロック番号、一括排他資源が確定している旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、排他資源のブロック番号、排他資源の上位のブロック番号、一括排他資源が確定している旨の制御情報を受け取ったら、排他制御を行わないで該当ブロック番号に対するブロックイメージをインデックスファイル106から取り出し(S503)、ブロックイメージを処理要求制御手段102に返却する。
排他資源決定手段103は、処理要求制御手段102からブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を受け取ったら、一括排他資源が確定している場合(ステップS506のイエス)、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求め(ステップS512)、該当ブロック番号、その上位ブロックのブロック番号、および一括排他資源が確定している旨の制御情報を処理要求制御手段102に渡す。
処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたインデックスブロックが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する(ステップS504)。その結果、最下位インデックスブロックである場合(ステップS504のイエス)、検索条件を満たすインデックス値を保持する最下位インデックスレコードを求め(ステップS505)、該当するインデックスレコードを利用者端末101に返却する。
次に、具体的な実施例を用いて、本実施の形態の動作を説明する。
ここでは、検索対象インデックスが図3のような階層構造をもつインデックス(インデックス名Iとする)の状態の時に、利用者端末101からそのインデックス名Iのインデックスに対する検索条件(インデックスレコード値BからGまで)のインデックス検索要求が、処理要求制御手段102に渡された場合を考える。この場合、検索対象インデックス名と最上位インデックスブロック301のインデックスブロック番号とは、例えば予め図示しないテーブルを用いて、互いに関連付けて登録されているものとする。
まず、処理要求制御手段102は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号1を取得するために、インデックス検索要求に含まれるインデックス名Iを排他資源決定手段103に渡す。排他資源決定手段103は、処理要求制御手段102から渡されたインデックス名Iから、図示しないテーブルを参照して、該当する最上位インデックスブロック番号1を求める(ステップS501)。そして、求めた最上位インデックスブロック番号1、および一括排他資源が確定していない旨の制御情報を処理要求制御手段102に渡す。処理要求制御手段102は、その最上位インデックスブロック番号1、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、処理要求制御手段102から一括排他資源が確定していない旨、および最上位インデックスブロック番号1の制御情報を受け取ったら、排他制御を行うために、排他資源である最上位インデックスブロック301のブロック番号1、排他制御する旨の制御情報を排他制御手段105に渡す。排他制御手段105は、渡された制御情報に基づいて該当ブロックに対する排他制御を行う(ステップS502)。
排他制御手段105は、インデックスファイルアクセス手段104からブロック番号1、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、排他制御手段105から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいてインデックスブロック番号1に対応する最上位インデックスブロック301のブロックイメージをインデックスファイル106から取り出し(ステップS503)、そのブロックイメージを処理要求制御手段102に返却する。
処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する(ステップS504)。この場合、該当インデックスブロックは、階層番号4の最上位インデックスブロックで、階層番号1の最下位インデックスブロックではない(ステップS504のノー)。このため、処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を排他資源決定手段103に渡す。
排他資源決定手段103は、処理要求制御手段102からブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を受け取ったら、この場合は一括資源が確定していないので(ステップS506のノー)、インデックス検索条件であるインデックスレコード値B〜Gと、ブロックイメージである最上位インデックスブロック301に格納されている最上位インデックスレコード302の最大インデックス値とから、最大インデックス値に検索条件のインデックス値B〜Gが含まれる下位ブロック番号を求める(ステップS507)。この場合、検索条件に当てはまる下位ブロック番号は、インデックス値B〜Gを全て含む最大インデックス値Hに対応する5のみで、同一のブロック番号である(ステップS508のイエス)。このため、排他資源決定手段103は、その検索されたブロック番号5と、その上位ブロックのブロック番号1と、一括排他資源が確定していない旨の制御情報を処理要求制御手段102に渡す。
処理要求制御手段102は、排他資源決定手段103から排他資源のブロック番号5、排他資源の上位のブロック番号1、および一括排他資源が確定していない旨の制御情報を受け取ったら、一括排他資源を変更するために、排他資源のブロック番号5、排他資源の上位のブロック番号1、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段104に渡す。インデックスファイルアクセス手段104は、処理要求制御手段102から排他資源のブロック番号5、排他資源の上位のブロック番号1、および一括排他資源が確定していない旨の制御情報を受け取ったら、排他資源を排他制御するために排他資源のブロック番号5、および排他制御する旨の制御情報を排他制御手段105に渡す。排他制御手段105は、渡された制御情報に基づいて該当ブロックであるブロック番号5の中間位インデックスブロック303に対して排他制御を行う(ステップS509)。
排他制御手段105は、インデックスファイルアクセス手段104からブロック番号5、および排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。インデックスファイルアクセス手段104は、排他制御手段105から該当ブロックを取り出してよい旨の制御情報を受け取ったら、該当ブロックの上位ブロックの排他制御を解除するために上位ブロックのブロック番号1、および排他制御を解除する旨の制御情報を排他制御手段105に渡す。
排他制御手段105は、インデックスファイルアクセス手段104からブロック番号1、および排他制御を解除する旨の制御情報を受け取ったら、これらの制御情報に基づいて、該当ブロックであるブロック番号1の最上位インデックスブロックに対する排他制御を解除する(ステップS510)。そして、その該当ブロックの排他制御を解除した旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、排他制御手段105から該当ブロックの排他制御を解除した旨の制御情報を受け取ったら、その制御情報に基づいて排他対象ブロック番号5に対する中間位インデックスブロック303のブロックイメージをインデックスファイル106から取り出し(ステップS503)、そのブロックイメージを処理要求制御手段102に返却する。
処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する(ステップS504)。この場合、該当インデックスブロックは、階層番号3の中間位インデックスブロック303で、階層番号1の最下位インデックスブロックではない(ステップS504のノー)。このため、処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を排他資源決定手段103に渡す。
排他資源決定手段103は、処理要求制御手段102からブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を受け取ったら、この場合は一括排他資源が確定していないので(ステップS506のノー)、インデックス検索条件であるインデックスレコード値B〜Gと、ブロックイメージである中間位インデックスブロック303に格納されている中間位インデックスレコード304の最大インデックス値とから、最大インデックス値に検索条件のインデックス値B〜Gが含まれる下位ブロック番号を求める(ステップS507)。この場合、検索条件に当てはまる下位ブロック番号は、インデックス値B〜Dを含む最大インデックス値Dに対応するブロック番号12と、インデックス値E〜Hを含む最大インデックス値Hに対応するブロック番号15との2つがあり、同一でない(ステップS508のノー)。このため、排他資源決定手段103は、検索された2つのブロック番号12、15のうちインデックス値を昇順に読む場合の検索条件を満たすブロック番号12と、その上位ブロックのブロック番号5と、一括排他資源が確定している(ステップS511)旨の制御情報を処理要求制御手段102に渡す。なお、検索条件には、インデックス値を昇順に読むか降順に読むかが記載され、本説明では昇順に読むとして説明する。
処理要求制御手段102は、排他資源決定手段103から排他資源のブロック番号12、排他資源の上位ブロックのブロック番号5、および一括排他資源が確定している旨の制御情報を受け取ったら、排他制御を行わなくてもいいので、排他資源のブロック番号12、排他資源の上位ブロックのブロック番号5、一括排他資源が確定している旨の制御情報をインデックスファイルアクセス手段104に渡す。インデックスファイルアクセス手段104は、排他資源のブロック番号12、排他資源の上位ブロックのブロック番号5、一括排他資源が確定している旨の制御情報を受け取ったら、排他制御を行わないで該当ブロック番号12に対する中間位インデックスブロック305のブロックイメージをインデックスファイル106から取り出し(ステップS503)、そのブロックイメージを処理要求制御手段102に返却する。
処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージが最下位インデックスブロックであるか否かの制御情報をその階層番号に基づいて判断する(ステップS504)。この場合、該当インデックスブロックは、階層番号2の中間位インデックスブロック305で、階層番号1の最下位インデックスブロックではない(ステップS504のノー)。このため、処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定している旨の制御情報を排他資源決定手段103に渡す。
排他資源決定手段103は、処理要求制御手段102からブロックイメージ、インデックス検索条件、一括排他資源が確定している旨の制御情報を受け取ったら、一括資源が確定しているので(S506のイエス)、インデックス検索条件であるインデックスレコード値B〜Gと、ブロックイメージである中間位インデックスブロック305に格納されている中間位インデックスレコード306の最大インデックス値とから、下位のインデックスブロック番号を求める(ステップS512)。この場合、中間位インデックスレコード306には、最大インデックス値Bでブロック番号30のものと、最大インデックス値Dでブロック番号33のものとの2つがある。ここでは、ブロック番号30のものがインデックス値を昇順に読む場合の条件を満たす。このため、排他資源決定手段103は、その該当ブロック番号30と、その上位ブロックのブロック番号12と、一括排他資源が確定している旨の制御情報を処理要求制御手段102に渡す。
処理要求制御手段102は、排他資源決定手段103から排他資源のブロック番号30、排他資源の上位のブロック番号12、および一括排他資源が確定している旨の制御情報を受け取ったら、排他制御を行わなくてもいいので、排他資源のブロック番号30、排他資源の上位のブロック番号12、一括排他資源が確定している旨の制御情報をインデックスファイルアクセス手段104に渡す。インデックスファイルアクセス手段104は、排他資源のブロック番号30、排他資源の上位のブロック番号12、一括排他資源が確定している旨の制御情報を受け取ったら、その制御情報に基づいて、排他制御を行わないで該当ブロック番号30に対する最下位インデックスブロック307のブロックイメージをインデックスファイル106から取り出し(ステップS503)、そのブロックイメージを処理要求制御手段102に返却する。
処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する(ステップS504)。この場合、該当インデックスブロックは、階層番号1の最下位インデックスブロック307である(ステップS504のイエス)。このため、処理要求制御手段102は、検索条件を満たすインデックス値を保持する最下位インデックスレコードを求める(ステップS505)。この場合は、インデックス値Bに該当する最下位インデックスレコード308を取り出して、利用者端末101に返却する。
次に、本実施の形態の効果について説明する。
本実施の形態では、与えられた条件に関係するインデックス部分(図3中の309で示す点線で囲んだインデックス部分、すなわち図中左側のブロック番号5、12、15の中間位インデックスブロック、ブロック番号30、33、36、55の最下位インデックスブロック)のみに局所化した全体として1つの排他単位で一括して排他制御を行い、排他制御のオーバヘッドを小さくして、インデックスに対する検索処理が十分な処理速度を得ることができる。これとともに、与えられた条件に関係しないインデックス部分(図3の309で示す点線で囲んだインデックス部分以外のインデックス部分、すなわちブロック番号1の最上位インデックスブロック、図中右側のブロック番号7、20、22の中間位インデックスブロック、ブロック番号70、72、77、88の最下位インデックスブロック)に対する他の検索、更新処理のスループットに影響を与えないように動作することができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について、図面を参照して詳細に説明する。
図6を参照すると、本実施の形態は、図1に示された第1の実施の形態の構造に加え、一括排他情報管理表107を有する点で異なる。一括排他情報管理表107は、一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他資源を何階層までにするかの階層数を含む。
図7は、一括排他情報管理表107の内容例を示した図である。この例では、一括して排他制御を行うインデックス名がI、そのインデックス名Iに対して一括排他資源を4階層までにすることを示している。
利用者端末101は、予め設定された利用者プログラムを実行して、一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他制御資源を何階層までにするかの階層数を含んだ一括排他情報登録要求、および一括排他情報を削除するインデックス名を含んだ一括排他情報削除要求を出力する。
処理要求制御手段102は、利用者端末101から一括排他情報登録要求が出力された場合、一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他資源を何階層までにするかの階層数を一括排他情報管理表107に登録して、一括排他情報を一括排他情報管理表107に登録した旨を利用者端末101に返却する。処理要求制御手段102は、利用者端末101から一括排他情報削除要求が出力された場合、一括排他情報を削除するインデックス名を元に、一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他資源を何階層までにするかの階層数を一括排他情報管理表107から削除して、一括排他情報を一括排他情報管理表107から削除した旨を利用者端末101に返却する。
排他資源決定手段103は、処理要求制御手段102から渡されるインデックス名を元に、一括排他情報管理表107の一括排他資源を何階層までにするかの階層数を参照して、処理要求制御手段102から渡されるブロックイメージの階層数と比較して、一括排他資源が確定しているか否かを判断し、排他資源のブロック番号、排他資源の上位ブロックのブロック番号、および一括排他資源が確定しているか否かの制御情報を処理要求制御手段102に渡す。
次に、図6及び図8のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
図6で、利用者端末101が一括排他情報登録要求、および一括排他情報削除要求を発行した時の動作について詳細に説明する。
一括排他情報登録要求には、一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他資源を何階層までにするかの階層数を含む。一括排他情報削除要求には、一括排他情報を削除するインデックス名を含む。
利用者端末101は、一括排他情報登録要求を処理要求手段102に渡す。処理要求制御手段102は、一括排他情報登録要求であることから、一括排他情報登録要求に含まれる一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他資源を何階層までにするかの階層数を、一括排他情報管理表107に登録する。一括排他情報管理表107の登録が終了したら、一括排他情報を一括排他情報管理表107に登録した旨を利用者端末101に返却する。
利用者端末101は、一括排他情報削除要求を処理要求手段102に渡す。処理要求制御手段102は、一括排他情報削除要求であることから、一括排他情報削除要求に含まれる一括排他情報を削除するインデックス名を元に一括排他情報管理表107から該当インデックスの一括排他情報を削除する。一括排他情報管理表107からの削除が終了したら、一括排他情報管理表107から一括排他情報を削除した旨を利用者端末101に返却する。
次に、図6及び図8のフローチャートで、一括排他情報管理表107に管理されている一括排他資源を何階層までにするかの階層数が一括排他資源のブロックイメージの階層数以上の時、および一括排他情報管理表107に管理されている一括排他資源を何階層までにするかの階層数が一括排他資源のブロックイメージの階層数より小さい時、もしくはインデックス検索要求に含まれる検索するインデックス名が一括排他情報管理表107に管理されている一括して排他制御を行うインデックス名になかった時に、利用者端末101が、インデックスの検索を行うためにインデックス検索要求を発行した時の動作について詳細に説明する。
図8のフローチャートには、前述した図5のステップS501〜S512の処理(省略)に加え、ステップS506とS507との間にステップS801〜S803の処理が追加されている。
まず、利用者端末101からインデックス検索要求が発行されると、処理要求制御手段102は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号を取得するためにインデックス名を排他資源決定手段103に渡す。
排他資源決定手段103は、処理要求制御手段102から渡されるインデックス名から該当する最上位インデックスブロック番号を求め(ステップS501)、処理要求制御手段102に最上位インデックスブロック番号、一括排他資源が確定していない旨の制御情報を処理要求制御手段102に渡す。処理要求制御手段102は、最上位インデックスブロック番号、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、処理要求制御手段102から一括排他資源が確定していない旨、および最上位インデックスブロック番号の制御情報を受け取ったら、排他制御を行うために排他資源である最上位インデックスブロック番号、および排他制御する旨の制御情報を排他制御手段105に渡す。排他制御手段105は、該当ブロックに対して排他制御を行う(ステップS502)。
排他制御手段105は、インデックスファイルアクセス手段104からブロック番号、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、排他制御手段105から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいて、該当ブロック番号に対するインデックスブロックのブロックイメージをインデックスファイル106から取り出し(ステップS503)、そのブロックイメージを処理要求制御手段102に返却する。
処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたインデックスブロックのブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する(ステップS504)。その結果、最下位インデックスブロックでない場合(ステップS504のノー)、つまり最上位インデックスブロック又は中間位インデックスブロックの場合、ブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を排他資源決定手段103に渡す。
排他資源決定手段103は、処理要求制御手段102からブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を受け取ったら、一括排他資源が確定していない場合(ステップS506のノー)、インデックス名から一括排他情報管理表107に管理されている一括して排他制御を行うインデックス名にあるか否かを確認する(ステップS801)。その結果、インデックス名があったら(ステップS801のイエス)、一括排他情報管理表107の一括排他資源を何階層までにするかの階層数を参照して、処理要求制御手段102から渡されるブロックイメージの階層番号に相当する階層数と比較する(ステップS802)。その結果、一括排他情報管理表107で管理している階層数がブロックイメージの階層数以上だったら(ステップS802のイエス)、一括排他資源が確定しているとして(図8のステップS803)、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求め(ステップS512)、該当ブロック番号、上位のブロック番号、および一括排他資源が確定している旨の制御情報を処理要求制御手段102に渡す。この後の処理は、第1の実施の形態と変わらないので、説明は省略する。
排他資源決定手段103は、処理要求制御手段102からブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を受け取ったら、一括排他資源が確定していない場合(ステップS506のノー)、インデックス名から一括排他情報管理表107に管理されている一括して排他制御を行うインデックス名にあるか確認する(ステップS801)。その結果、インデックス名があったら(ステップS801のイエス)、一括排他資源を何階層までにするかの階層数を参照して、処理要求制御手段102から渡されるブロックイメージの階層番号に相当する階層数と比較する(ステップS802)。その結果、一括排他情報管理表107で管理している階層数がブロックイメージの階層数より小さかったら(ステップS802のノー)、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求める(ステップS507)。この後の処理は、第1の実施の形態と変わらないので、説明は省略する。
排他資源決定手段103は、処理要求制御手段102からブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を受け取ったら、一括排他資源が確定していない場合(ステップS506のノー)、インデックス名から一括排他情報管理表107に管理されている一括して排他制御を行うインデックス名にあるか確認する(ステップS801)。その結果、インデックス名がなかったら(ステップS801のノー)、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求める(ステップS507)。この後の処理は、第1の実施の形態と変わらないので、説明は省略する。
次に、本実施の形態の効果について説明する。
本実施の形態では、利用者が一括して排他制御を行うインデックス名、および該当するインデックスに対して一括排他資源を何階層までにするかの階層数を登録することができるため、一括排他資源を何階層までにするか利用者が意識して一括して排他制御を行い、インデックス検索処理を行うことができる。
次に、具体的な実施例を用いて本実施の形態の動作を説明する。
(動作例1)
まず、図7のような一括排他情報管理表107の状態の時に、利用者端末101から、一括して排他制御を行うインデックス名がIDX、該当インデックスに対して一括排他資源を2階層までにする一括排他情報登録要求が、処理要求制御手段102に渡された場合の動作を説明する。
この場合、処理要求制御手段102は、一括排他情報登録要求であることから、一括排他情報登録要求に含まれる一括して排他制御を行うインデックス名IDX、該当インデックスに対して一括排他資源を2階層で、一括排他情報管理表107に登録する。一括排他情報管理表107の登録が終了したら、一括排他情報の一括排他情報管理表107への登録が終了した旨を、利用者端末101に返却する。図9は、一括排他情報登録要求が終了した後の一括排他情報管理表107を示している。
(動作例2)
次に、図9のような一括排他情報管理表107の状態の時に、利用者端末101から、一括排他情報を削除するインデックス名Iである一括排他情報削除要求が、処理要求制御手段102に渡された場合の動作を説明する。
この場合、処理要求制御手段102は、一括排他情報削除要求であることから、一括排他情報削除要求に含まれる一括排他情報を削除するインデックス名Iを元に、該当するインデックスに関する一括排他情報を一括排他情報管理表107から削除する。一括排他情報管理表107からの削除が終了したら、一括排他情報管理表107からの一括排他情報の削除が終了した旨を、利用者端末101に返却する。図10は、一括排他情報削除要求が終了した後の一括排他情報管理表107を示している。
(動作例3)
次に、図7のような一括排他情報管理表107の状態で、利用者端末101からインデックスIに対する検索条件(インデックスレコード値BからGまで)のインデックス検索要求が、処理要求制御手段102に渡された時の動作について説明する。
まず、利用者端末101からインデックスIに対する検索条件(インデックスレコード値BからGまで)のインデックス検索要求が、処理要求制御手段102に渡される。処理要求制御手段102は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号を取得するためにインデックス名Iを排他資源決定手段103に渡す。排他資源決定手段103は、処理要求制御手段102から渡されたインデックス名Iから該当する最上位インデックスブロック番号1を求め(ステップS501)、処理要求制御手段102に最上位インデックスブロック番号1、および一括排他資源が確定していない旨の制御情報を処理要求制御手段102に渡す。処理要求制御手段102は、最上位インデックスブロック番号1、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、処理要求制御手段102から一括排他資源が確定していない旨、および最上位インデックスブロック番号1の制御情報を受け取ったら、排他制御を行うために排他資源であるブロック番号1、排他制御する旨の制御情報を排他制御手段105に渡す。排他制御手段105は、渡された制御情報に基づいて該当ブロックに対して排他制御を行う(ステップS502)。
排他制御手段105は、インデックスファイルアクセス手段104からブロック番号1、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨をインデックスファイルアクセス手段104に渡す。一方、すでに該当ブロックが排他制御されている場合は排他制御が解除されるまで待ち、排他制御が解除されたら、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、排他制御手段105から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいてインデックスブロック番号1に対応する最上位インデックスブロック301のブロックイメージをインデックスファイル106から取り出し(ステップS503)、そのブロックイメージを処理要求制御手段102に返却する。
処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する(ステップS504)。この場合、該当インデックスブロックは、階層番号4の最上位インデックスブロック301で、階層番号1の最下位インデックスブロックではない(ステップS504のノー)。このため、処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を排他資源決定手段103に渡す。
排他資源決定手段103は、処理要求制御手段102からブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を受け取ったら、一括資源が確定していないので(ステップS506のノー)、インデックス名Iから図7に示す一括排他情報管理表107に管理されている一括して排他制御を行うインデックス名にあるか否かを確認する(ステップS801)。
この場合、図7に示すようにインデックス名Iが一括排他情報管理表107で管理されているので(ステップS801のイエス)、これに対応して登録された一括排他情報管理表107の一括排他資源を4階層までにするという情報を参照して、処理要求制御手段102から渡されるブロックイメージの階層番号4に相当する階層数4と比較する(ステップS802)。
この場合、一括排他情報管理表107で管理している階層数4がブロックイメージの階層数4以上であるので(ステップS802のイエス)、一括排他資源が確定しているとする(ステップS803)。そして、インデックス検索条件であるインデックスレコード値B〜Gから、下位のインデックスブロック番号を求め(ステップS512)、該当ブロック番号5、上位のブロック番号1、および一括排他資源が確定している旨の制御情報を処理要求制御手段102に渡す。この後の処理は、第1の実施の形態と変わらないので、説明は省略する。
(動作例4)
次に、図11のような一括排他情報管理表107の状態で、利用者端末101からインデックスIに対する検索条件(インデックスレコード値BからGまで)のインデックス検索要求が、処理要求制御手段102に渡された時の動作について説明する。
まず、利用者端末101からインデックスIに対する検索条件(インデックスレコード値BからGまで)のインデックス検索要求が、処理要求制御手段102に渡される。処理要求制御手段102は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号を取得するためにインデックス名Iを排他資源決定手段103に渡す。排他資源決定手段103は、処理要求制御手段102から渡されたインデックス名Iから該当する最上位インデックスブロック番号1を求め(ステップS501)、処理要求制御手段102に最上位インデックスブロック番号1、および一括排他資源が確定していない旨の制御情報を処理要求制御手段102に渡す。処理要求制御手段102は、最上位インデックスブロック番号1、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、処理要求制御手段102から一括排他資源が確定していない旨、および最上位インデックスブロック番号1の制御情報を受け取ったら、排他制御を行うために排他資源であるブロック番号1、排他制御する旨の制御情報を排他制御手段105に渡す。排他制御手段105は、渡された制御情報に基づいて該当ブロックに対して排他制御を行う(ステップS502)。
排他制御手段105は、インデックスファイルアクセス手段104からブロック番号1、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、排他制御手段105から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいてインデックスブロック番号1に対応する最上位インデックスブロック301のブロックイメージをインデックスファイル106から取り出し(ステップS503)、そのブロックイメージを処理要求制御手段102に返却する。
処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する(ステップS504)。この場合、該当インデックスブロックは、階層番号4の最上位インデックスブロック301で、階層番号1の最下位インデックスブロックではない(ステップS504のノー)。このため、処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を排他資源決定手段103に渡す。
排他資源決定手段103は、処理要求制御手段102からブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を受け取ったら、一括資源が確定していないので(ステップS506のノー)、インデックス名Iから図11に示す一括排他情報管理表107に管理されている一括して排他制御を行うインデックス名にあるか否かを確認する(ステップS801)。
この場合、図11に示すようにインデックス名Iが一括排他情報管理表107で管理されているので(ステップS801のイエス)、これに対応して登録された一括排他情報管理表107の一括排他資源を2階層までにするという情報を参照して、処理要求制御手段102から渡されるブロックイメージの階層番号4に相当する階層数4と比較する(ステップS802)。
その結果、一括排他情報管理表107で管理している階層数2がブロックイメージの階層数4より小さいので(ステップS802のノー)、インデックス検索条件であるインデックスレコード値B〜Gから、その検索条件のインデックス値B〜Gが含まれる下位ブロックのブロック番号5を求める(ステップS507)。この後の処理は、第1の実施の形態と変わらないので、説明は省略する。
(動作例5)
次に、図10のような一括排他情報管理表107の状態で、利用者端末101からインデックスIに対する検索条件(インデックスレコード値BからGまで)のインデックス検索要求が、処理要求制御手段102に渡された時の動作について説明する。
まず、利用者端末101からインデックスIに対する検索条件(インデックスレコード値BからGまで)のインデックス検索要求が、処理要求制御手段102に渡される。処理要求制御手段102は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号を取得するためにインデックス名Iを排他資源決定手段103に渡す。排他資源決定手段103は、処理要求制御手段102から渡されたインデックス名Iから該当する最上位インデックスブロック番号1を求め(ステップS501)、処理要求制御手段102に最上位インデックスブロック番号1、および一括排他資源が確定していない旨の制御情報を処理要求制御手段102に渡す。処理要求制御手段102は、最上位インデックスブロック番号1、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、処理要求制御手段102から一括排他資源が確定していない旨、および最上位インデックスブロック番号1の制御情報を受け取ったら、排他制御を行うために排他資源であるブロック番号1、排他制御する旨の制御情報を排他制御手段105に渡す。排他制御手段105は、渡された制御情報に基づいて該当ブロックに対して排他制御を行う(ステップS502)。
排他制御手段105は、インデックスファイルアクセス手段104からブロック番号1、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段104に渡す。
インデックスファイルアクセス手段104は、排他制御手段105から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいてインデックスブロック番号1に対応する最上位インデックスブロック301のブロックイメージをインデックスファイル106から取り出し(ステップS503)、そのブロックイメージを処理要求制御手段102に返却する。
処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する(ステップS504)。この場合、該当インデックスブロックは、階層番号4の最上位インデックスブロック301で、階層番号1の最下位インデックスブロックではない(ステップS504のノー)。このため、処理要求制御手段102は、インデックスファイルアクセス手段104から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を排他資源決定手段103に渡す。
排他資源決定手段103は、処理要求制御手段102からブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を受け取ったら、一括資源が確定していないので(ステップS506のノー)、インデックス名Iから図10に示す一括排他情報管理表107に管理されている一括して排他制御を行うインデックス名にあるか否かを確認する(ステップS801)。その結果、図10に示すように一括排他情報管理表107はインデックス名Iを管理していないので、インデックス検索条件であるインデックスレコード値B〜Gから、その検索条件のインデックス値B〜Gが含まれる下位ブロックのブロック番号5を求める(ステップS507)。この後の処理は、第1の実施の形態と変わらないので、説明は省略する。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。
図12は、本実施の形態のインデックスファイル検索装置のハードウェア構成の一例を示すブロック図であり、インデックスファイル検索装置を構成するコンピュータ1201と、インデックスファイル検索プログラムが記憶された記憶媒体1202とから構成されている。コンピュータ1201には、CPU、メモリ(RAM/ROM)、各種入出力装置(例えば、表示装置、入力装置、通信装置等)等が搭載される。記憶媒体1202は、磁気ディスク、半導体メモリ、その他の記録媒体である。
記憶媒体1202に記憶されたインデックスファイル検索プログラムは、コンピュータ1201に読み込まれ、コンピュータ1201の動作を制御することで、コンピュータ1201上に、図6に示した処理要求制御手段102、排他資源決定手段103、インデックスファイルアクセス手段104、排他制御手段105を実現する。
以上説明したように、上記の各実施の形態によれば、インデックスの検索処理を行う時は、与えられた条件に関係するインデックスのみに局所化した全体として1つの排他単位(例えば、インデックスの中間位インデックスブロック)を排他資源決定手段103が設定して、排他制御を行う排他制御手段105を使用して排他制御を行い、インデックスファイルをアクセスしてブロックイメージを取り出す、もしくは排他制御を行わないでインデックスファイルをアクセスしてブロックイメージを取り出すインデックスファイルアクセス手段104とを備える。これにより、一括して排他制御を行い、排他制御のオーバヘッドを小さくして、インデックスに対する検索処理が十分な処理速度を得るとともに、条件に関係しないインデックス部分に対する他の検索、更新処理のスループットに影響を与えないように動作する。
この効果は、例えばデータベースシステムの利用形態のうち、オンライン処理等の主要となる処理では検索処理が主体で、しかもインデックスだけを検索することによって求める情報を得るような処理に用いるインデックスがあり、そのインデックスを利用することで検索処理のスループットを重視するシステム利用形態において、最大限に発揮させることができる。すなわち、このような利用形態において、インデックスに対して条件検索処理を行う場合、与えられた条件に関係するインデックスのみに局所化して全体として1つの排他単位(例えば、インデックスの中間位インデックスブロック)を設定することによって一括して排他制御を行うことにより、中間位インデックスブロック、最下位インデックスブロックなどは排他制御を行わず、排他制御によるオーバヘッドを小さくして、インデックスに対する検索処理の十分な処理速度を得るとともに、条件に関係しないインデックス部分に対する他の検索、更新処理のスループットに影響を与えないことを可能にする。
なお、前述した特許文献1では、インデックスの最上位レベルに対して単純に排他制御を行うため、その影響範囲がインデックス全体になり、検索処理のスループットを優先し、同時走行性は考慮していない。これに対し、本発明では検索条件から関係するインデックス部分だけに絞って排他制御を行うため、その影響範囲がインデックス全体と比べると格段に少なくなり、検索処理のスループットと同時に同時走行性も考慮に入れており、この点からも特許文献1にはない効果を得ることができる。
以上、本発明の実施の形態を詳細に説明したが、本発明は、代表的に例示した上述の実施の形態に限定されるものではなく、当業者であれば、特許請求の範囲の記載内容に基づき、本発明の要旨を逸脱しない範囲内で種々の態様に変形、変更することができる。これらの変形例や変更例も本発明の権利範囲に属するものである。
また、本実施の形態に係るインデックスファイル検索装置を構成する各手段の少なくとも一部の機能を、プログラムコードを用いて実現する場合、かかるプログラムコード及びこれを記録するコンピュータ読み取り可能な記録媒体は、本発明の範疇に含まれる。この場合のプログラムコードは、オペレーティングシステムや他のアプリケーションソフト等と共同して上記機能が実現される場合は、それらのプログラムコードも含まれる。また、記録媒体としては、ハードディスクやROM(Read Only Memory)のほか、フレキシブルディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード等を用いることができる。