JP4508157B2 - インデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体 - Google Patents

インデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体 Download PDF

Info

Publication number
JP4508157B2
JP4508157B2 JP2006149858A JP2006149858A JP4508157B2 JP 4508157 B2 JP4508157 B2 JP 4508157B2 JP 2006149858 A JP2006149858 A JP 2006149858A JP 2006149858 A JP2006149858 A JP 2006149858A JP 4508157 B2 JP4508157 B2 JP 4508157B2
Authority
JP
Japan
Prior art keywords
index
block
exclusive
index block
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006149858A
Other languages
English (en)
Other versions
JP2007323153A (ja
Inventor
久 小松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006149858A priority Critical patent/JP4508157B2/ja
Publication of JP2007323153A publication Critical patent/JP2007323153A/ja
Application granted granted Critical
Publication of JP4508157B2 publication Critical patent/JP4508157B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データベースのインデックスファイルに対する検索要求を処理するインデックスファイル検索装置、検索方法、検索プログラム及びこれを記録したコンピュータ読み取り可能な記録媒体に関する。
従来、データベースに対する検索処理を高速化する技術として、インデックスと称する二次情報を生成しておき、このインデックスレコードを検索することによって目的とするデータレコードを求めるという手法が広く知られている。
図2は、この手法で用いるインデックスの構造を示した図である。インデックスは、木構造という階層構造になっている。インデックスレコードは、インデックス値が昇順、もしくは降順になるようにインデックスブロックに格納されている。図2の例では、3階層のインデックスになっている。インデックスは、最上位インデックスブロック201、中間位インデックスブロック203、最下位インデックスブロック205から構成されている。最上位インデックスブロック201は、インデックスにつき1つである。
このインデックスを構成しているインデックスブロックには、最上位インデックスブロック201からその下位のインデックスブロックに順番にたどれるように、自分のインデックスブロック番号(自インデックスブロック番号)と、一つ前のインデックスブロック番号(前インデックスブロック番号)と、一つ後ろのインデックスブロック番号(次インデックスブロック番号)と、何階層目のインデックスブロックかを示す階層番号とを制御用領域に持っている。
最上位インデックスブロック201に格納されている最上位インデックスレコード202と、中間位インデックスブロック203に格納されている中間位インデックスレコード204は、レコード番号(RECNO)と、管理している下位のインデックスブロック番号(下位ブロック番号)と、管理している下位のインデックスブロックに格納されている最大インデックス値とを持っている。最下位インデックスブロック205に格納されている最下位インデックスレコード206は、レコード番号(RECNO)と、インデックス値と、これに対応するデータレコードの識別子であるID(以下、RIDとする)とを持っている。
インデックスを検索する場合は、最上位インデックスブロック201から検索をはじめて、中間位インデックスブロック203、そして最下位インデックスブロック205と検索して求める最下位インデックスレコード206を検索する。
図3は、インデックスの構造の例を示した図である。図3のインデックスは、4階層のインデックスになっている。図3の例では、インデックスは、AからPまでのインデックス値を持つものを図示している。この範囲では、Aが最小インデックス値に、Pが最大インデックス値にそれぞれ対応する。最下位インデックスレコード308は、インデックス値が昇順になるように最下位インデックスブロック307に格納されている。
最上位インデックスブロック301は、自インデックスブロック番号が1、次インデックスブロック番号が5、前インデックスブロック番号が0、階層番号が4となっている。前インデックスブロック番号が0となっているのは、この最上位インデックスブロック301の前にインデックスブロックがないためである。この最上位インデックスブロック301には、2つの最上位インデックスレコード302が格納されている。1つは、レコード番号が1、下位ブロック番号が5、最大インデックス値がHをもつものであり、もう1つは、レコード番号が2、下位ブロック番号が7、最大インデックス値がPをもつものである。
3階層目の中間位インデックスブロック303は2つあり、1つ目は、自インデックスブロック番号が5、前インデックスブロック番号が1、次インデックスブロック番号が7、階層番号が3である。これには、2つの中間位インデックスレコード304が格納され、1つは、レコード番号が3、下位ブロック番号が12、最大インデックス値がDをもつものであり、もう1つは、レコード番号が4、下位ブロック番号が15、最大インデックス値がHをもつものである。2つ目については省略する。
2階層目の中間位インデックスブロック305は4つある。1つ目は、自インデックスブロック番号が12、前インデックスブロック番号が7、次インデックスブロック番号が15、階層番号が2である。これには、2つの中間位インデックスレコード306が格納され、1つは、レコード番号が7、下位ブロック番号が30、最大インデックス値がBをもつものであり、もう1つは、レコード番号が8、下位ブロック番号が33、最大インデックス値がDをもつものである。2つ目〜4つ目については省略する。
最下位インデックスブロック307は8つある。1つ目は、自インデックスブロック番号が30、前インデックスブロック番号が22、次インデックスブロック番号が33、階層番号が1である。これには、2つの最下位インデックスレコード308が格納され、1つは、レコード番号が15、インデックス値がA、これに対応するRIDをもつものであり、もう1つは、レコード番号が16、インデックス値がB、対応するデータレコードのRIDをもつものである。以下、残り2つ目〜8つ目については省略する。なお、8つ目のインデックスブロック番号88の最下位インデックスブロック307は、後ろにインデックスブロックがないので、次インデックスブロック番号は0となっている。
データレコード、インデックスレコードは、オンライン処理等で検索、更新処理が同時に行われる。このため、ある排他単位(例えばレコードが格納されているブロック単位)に更新中の排他単位は、該排他単位の参照を禁止する等の規則を用いる二相ロック方式という広く知られている手法によって排他制御を行い、データレコード、インデックスレコードの整合性を保っている。
また、データベースシステムの利用形態には、オンライン処理等の主要となる処理では検索処理が主体で、しかもインデックスだけを検索することによって求める情報を得るような処理に用いるインデックスがあり、主体となる検索処理のスループットを重視するシステム利用形態がある。このような利用形態において、大量のインデックスレコードで構成されたインデックスに対して検索処理を行う場合、排他単位が大量になることによって排他制御のオーバヘッドが大きくなり、検索処理のスループットが低下してしまう。
そこで、このような問題点を解決するために、インデックス全体として1つの排他単位を設定して一括して排他制御を行うことによって検索処理のスループットを低下させないという技術が提案されている(例えば、特許文献1参照)。この技術では、インデックス全体として1つの排他単位(上述した技術では、インデックスの最上位インデックスブロックを排他単位としている)を一括して排他制御することによって、排他制御によるオーバヘッドを小さくして、検索処理のスループットを低下させないようにしている。
特開2004−030425号公報
上述した従来例の技術では、インデックスに対して検索処理を行う場合、インデックス全体として1つの排他単位(例えばインデックスの最上位インデックスブロック)を設定することによって一括して排他制御を行うようにすれば、その目的を達成することができるが、該当インデックスに対する他の検索、更新処理のスループットに影響を与えてしまう、という問題があった。
本発明は、このような従来の事情を考慮してなされたもので、インデックスに対して検索処理を行っても、検索処理のスループットを落とさず、条件に関係しないインデックス部分に対する他の検索、更新処理のスループットに影響を与えないことを目的とする。
上記目的を達成するため、本発明に係るインデックスファイル検索装置は、データの二次情報であるインデックスを格納したインデックスファイルを検索する装置であって、前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出すアクセス手段と、前記インデックスブロックが取り出されるときに、前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として1つの排他単位を決定し、決定された前記1つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記1つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記アクセス手段を制御する制御手段とを備えたことを特徴とする。
本発明において、前記制御手段は、前記インデックスに対応付けて前記インデックスブロックのうち一括して排他制御すべきインデックスブロックの階層数を管理する管理表と、前記1つの排他単位を構成するインデックスブロックのうち、前記インデックスブロックの格納用領域に格納された階層番号に相当する階層数が前記管理表の階層数以下のものに対して一括して排他制御を行う手段とを有してもよい。
本発明に係るインデックスファイル検索方法は、コンピュータがデータの二次情報であるインデックスを格納したインデックスファイルを検索する方法であって、前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、前記コンピュータが、与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出すステップと、前記コンピュータが、前記インデックスブロックが取り出されるときに、前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として1つの排他単位を決定し、決定された前記1つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記1つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記インデックスファイルのアクセスを制御する制御ステップとを備えたことを特徴とする。
本発明に係るインデックスファイル検索プログラムは、データの二次情報であるインデックスを格納したインデックスファイルを検索するプログラムであって、前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、コンピュータに、与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出す手順と、前記インデックスブロックが取り出されるときに、前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として1つの排他単位を決定し、決定された前記1つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記1つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記インデックスファイルのアクセスを制御する制御手順とを実行させることを特徴とする。
本発明に係るコンピュータ読み取り可能な記録媒体は、上記のインデックスファイル検索プログラムを記録したことを特徴とする。
本発明によれば、次のような効果が得られる。
第1の効果は、インデックスファイルに対して条件検索処理を行っても、検索処理のスループットを落とさないことにある。その理由は、インデックスファイルに対して検索処理を行う時は、1つの排他単位で一括して排他制御を行ってインデックス検索を行うので、排他制御によるオーバヘッドを小さくして検索処理を行うためである。
第2の効果は、インデックスファイルに対して条件検索処理を行っても、条件に関係しないインデックス部分に対する他の検索、更新処理のスループットに影響を与えないことにある。その理由は、与えられた条件に関係するインデックスのみに局所化した全体として1つの排他単位で一括して排他制御を行ってインデックス検索処理を行うためである。
次に、本発明に係るインデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体を実施するための最良の形態について、図面を参照して詳細に説明する。なお、検索対象とするインデックスファイル内のインデックスの階層構造は、例えば前述した図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、磁気テープ、不揮発性のメモリカード等を用いることができる。
本発明は、データベースのインデックスファイルに対する検索要求を処理するインデックスファイル検索装置、検索方法、検索プログラム及びこれを記録したコンピュータ読み取り可能な記録媒体の用途に利用できる。
本発明の第1の実施の形態に係るインデックスファイル検索装置の全体構成を示すブロック図である。 インデックスの構造を示す図である。 インデックスの構造例を示す図である。 ブロックとレコードの関係を示す図である。 第1の実施の形態のインデックス検索要求時の動作を示す流れ図である。 本発明の第2の実施の形態に係るインデックスファイル検索装置の全体構成を示すブロック図である。 第2の実施の形態の一括排他情報管理表の内容例を示す図である。 第2の実施の形態のインデックス検索要求時の動作を示す流れ図である。 第2の実施の形態の一括排他情報管理表の内容例を示す図である。 第2の実施の形態の一括排他情報管理表の内容例を示す図である。 第2の実施の形態の一括排他情報管理表の内容例を示す図である。 本発明の第3の実施の形態に係るインデックスファイル検索装置の全体構成を示すブロック図である。
符号の説明
101 利用者端末
102 処理要求制御手段
103 排他資源決定手段
104 インデックスファイルアクセス手段
105 排他制御手段
106 インデックスファイル
107 一括排他情報管理表
1201 コンピュータ
1202 記録媒体

Claims (7)

  1. データの二次情報であるインデックスを格納したインデックスファイルを検索する装置であって、
    前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、
    前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、
    前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、
    前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、
    与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出すアクセス手段と、
    前記インデックスブロックが取り出されるときに、
    前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、
    求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、
    与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として1つの排他単位を決定し、
    決定された前記1つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記1つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記アクセス手段を制御する制御手段とを備えたことを特徴とするインデックスファイル検索装置。
  2. 前記制御手段は、前記インデックスに対応付けて前記インデックスブロックのうち一括して排他制御すべきインデックスブロックの階層数を管理する管理表と、前記1つの排他単位を構成するインデックスブロックのうち、前記インデックスブロックの格納用領域に格納された階層番号に相当する階層数が前記管理表の階層数以下のものに対して一括して排他制御を行う手段とを有することを特徴とする請求項に記載のインデックスファイル検索装置。
  3. コンピュータがデータの二次情報であるインデックスを格納したインデックスファイルを検索する方法であって、
    前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、
    前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、
    前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、
    前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、
    前記コンピュータが、与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出すステップと、
    前記コンピュータが、前記インデックスブロックが取り出されるときに、
    前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、
    求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、
    与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として1つの排他単位を決定し、
    決定された前記1つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記1つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記インデックスファイルのアクセスを制御する制御ステップとを備えたことを特徴とするインデックスファイル検索方法。
  4. 前記制御ステップは、前記コンピュータが、前記インデックスに対応付けて前記インデックスブロックのうち一括して排他制御すべきインデックスブロックの階層数を管理表で管理するステップと、前記コンピュータが、前記1つの排他単位を構成するインデックスブロックのうち、前記インデックスブロックの格納用領域に格納された階層番号に相当する階層数が前記管理表の階層数以下のものに対して一括して排他制御を行うステップとを有することを特徴とする請求項に記載のインデックスファイル検索方法。
  5. データの二次情報であるインデックスを格納したインデックスファイルを検索するプログラムであって、
    前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、
    前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、
    前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、
    前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、
    コンピュータに、
    与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出す手順と、
    前記インデックスブロックが取り出されるときに、
    前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、
    求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、
    与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として1つの排他単位を決定し、
    決定された前記1つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記1つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記インデックスファイルのアクセスを制御する制御手順とを実行させることを特徴とするインデックスファイル検索プログラム。
  6. 前記制御手順は、前記インデックスに対応付けて前記インデックスブロックのうち一括して排他制御すべきインデックスブロックの階層数を管理表で管理する手順と、前記1つの排他単位を構成するインデックスブロックのうち、前記インデックスブロックの格納用領域に格納された階層番号に相当する階層数が前記管理表の階層数以下のものに対して一括して排他制御を行う手順とを有することを特徴とする請求項に記載のインデックスファイル検索プログラム。
  7. 請求項5又は6に記載のインデックスファイル検索プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
JP2006149858A 2006-05-30 2006-05-30 インデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体 Expired - Fee Related JP4508157B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006149858A JP4508157B2 (ja) 2006-05-30 2006-05-30 インデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006149858A JP4508157B2 (ja) 2006-05-30 2006-05-30 インデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体

Publications (2)

Publication Number Publication Date
JP2007323153A JP2007323153A (ja) 2007-12-13
JP4508157B2 true JP4508157B2 (ja) 2010-07-21

Family

ID=38855938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006149858A Expired - Fee Related JP4508157B2 (ja) 2006-05-30 2006-05-30 インデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体

Country Status (1)

Country Link
JP (1) JP4508157B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5709377B2 (ja) * 2009-12-22 2015-04-30 キヤノン株式会社 画像形成装置、画像形成装置の制御方法及びプログラム
JP6188607B2 (ja) 2014-03-10 2017-08-30 株式会社日立製作所 インデクスツリーの探索方法及び計算機

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030425A (ja) * 2002-06-27 2004-01-29 Nec Corp インデックスファイル検索装置およびインデックスファイル検索方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62162136A (ja) * 1986-01-10 1987-07-18 Nippon Denki Software Kk 階層構造を有する索引をもつフアイルの同時更新制御方式
JPS63191226A (ja) * 1987-02-03 1988-08-08 Ricoh Co Ltd B↑+tree上における同時実行制御方式
JPH0193819A (ja) * 1987-10-05 1989-04-12 Hitachi Ltd インデックス排他制御方式
JP3220088B2 (ja) * 1998-05-19 2001-10-22 日本電気株式会社 ファイル編成のアクセス処理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030425A (ja) * 2002-06-27 2004-01-29 Nec Corp インデックスファイル検索装置およびインデックスファイル検索方法

Also Published As

Publication number Publication date
JP2007323153A (ja) 2007-12-13

Similar Documents

Publication Publication Date Title
JP6028567B2 (ja) データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法
US7765189B2 (en) Data migration apparatus, method, and program for data stored in a distributed manner
CN110268394A (zh) Kvs树
JP5203733B2 (ja) コーディネータサーバ、データ割当方法及びプログラム
US7937652B2 (en) Document processing device, computer readable recording medium, and computer data signal
JP6870466B2 (ja) 制御プログラム、制御方法、制御装置、及びデータベースサーバ
US10296590B2 (en) Techniques for managing persistent document collections
US20140052734A1 (en) Computing device and method for creating data indexes for big data
JP5640432B2 (ja) 分散処理装置、分散処理プログラムおよび分散処理方法
JP4865642B2 (ja) アクセス権設定装置、アクセス権設定方法、及びアクセス権設定プログラム
JP5790755B2 (ja) データベース管理装置及びデータベース管理方法
US8316008B1 (en) Fast file attribute search
JP4508157B2 (ja) インデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体
JP2010102593A (ja) 情報処理装置およびその方法、プログラム、記録媒体
JP2002049637A (ja) データベース管理方法及び装置並びに記録媒体
JP6181247B1 (ja) データベース管理装置、データベース管理方法、およびデータベース管理プログラム
JP5083408B2 (ja) 構成管理装置、構成管理プログラム、構成管理方法
WO2012081165A1 (ja) データベース管理装置及びデータベース管理方法
JP2010238138A (ja) ストレージシステムおよびファイル階層管理方法
JP2010160577A (ja) 検索装置及びその制御方法、並びにコンピュータプログラム
JP2008243089A (ja) アクセス権制御プログラム及びアクセス管理装置
JP4066727B2 (ja) インデックスファイル検索装置およびインデックスファイル検索方法
JP2012190354A (ja) 文書管理システム、及び文書管理方法
JPWO2011039841A1 (ja) 検索装置、及びシステム
JP4306433B2 (ja) 業務管理システム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100315

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100413

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100426

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4508157

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140514

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees