説明

ディレクトリ分散型記憶装置及びデータ処理要求移譲プログラム

【課題】データを木構造で管理する場合に、メッセージ伝送の負荷が大きいラッチカップリングを行わずに、並行性制御を行うことが可能なディレクトリ分散型記憶装置を提供する。
【解決手段】ディレクトリ分散型記憶装置PEは、木構造を構成するページごとに、当該ページで管理する検索キーの境界値を設定する境界値設定手段232aと、検索キーの値が境界値の範囲内であるか否かに基づいて、経路誤りを判定する経路誤り判定手段223と、誤りと判定された場合に再度上位のページから経路の探索を行う経路再探索手段224と、ページ内の参照先に基づいて、データへの要求処理を他のディレクトリ分散型記憶装置へ移譲するか否かを判定する移譲判定手段221と、移譲すると判定した場合に処理要求を他のディレクトリ分散型記憶装置へ送信する移譲手段222とを備えることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、木構造を有するディレクトリ構造を分散環境下で実現するディレクトリ分散型記憶装置及びデータ処理要求移譲プログラムに関する。
【背景技術】
【0002】
近年、ネットワーク上に並列に配置された計算機(PE:Processing Element)上にデータベース等のデータを分散して記憶することで、データにアクセスする際の負荷分散と並行性動作とを実現したシステム(分散データ格納システム)が存在する。
このようなシステムにおいては、アクセス集中による負荷の偏りが存在する場合、その負荷の大きいPEがボトルネックとなり、システム全体の処理能力が低下してしまう。そこで、各PEに負荷を均等に分配するためのディレクトリ構造と、そのディレクトリ構造における並行性制御とが提案されている(例えば、非特許文献1参照)。
【0003】
(Fat−Btree構造)
ここで、図14を参照して、従来の分散データ格納システムにおけるディレクトリ構造について、その概要を説明する。図14は、従来の分散データ格納システムにおけるディレクトリ構造の一例であるFat−Btree構造の構成例を示す図である。
図14に示すように、Fat−Btree構造は、データを示す葉ページPdを各計算機PEに均等に分配した構造となっている。また、Fat−Btree構造は、葉ページPd以外のインデックスを示すインデックスページPiを各計算機PEに分配した構造となっている。
【0004】
なお、各インデックスページPiに登録(エントリ)される下位層のインデックスページの数と、葉ページPdに登録されるデータ(データページ)の数とは、予め定められた数に制限されている。この制限された数を超過する場合は、各ページは分割され、木構造が更新されることになる。
【0005】
このように、葉ページPd及びインデックスページPiを分配することで、各計算機PEの記憶部に記憶されるのは、全体の木構造に対して、ルートページPiから、均等に分配された葉ページPdまでの部分木となる。すなわち、計算機PEには部分木Rが、計算機PEには部分木Rが、計算機PEには部分木Rが、計算機PEには部分木Rがそれぞれ記憶されることになる。
これによって、各計算機PEに対するアクセスの分散が行われる。また、各計算機PEでは、記憶している葉ページPdの探索に必要のないインデックスページPiを保持していないため、高速に葉ページPdにアクセスすることができる。
【0006】
ここで、並行性制御を説明するために必要な用語について説明しておく。
「木をたどる主体」…木構造において、木をたどる主体は、システムに格納されたある葉ページを取得するために、各ノード上で葉ページ処理要求(処理要求)を構成する一連のプロセス(プロセスの集合体)である。
【0007】
「ページのラッチ」…ある葉ページ要求Anを構成するプロセスによってラッチが設定されたページは、その他の葉ページ要求Am(m≠n)に属するプロセスからのアクセスが制限される。この制限の種類によって複数のラッチが存在する。例えば、他から読み込みも変更も破棄も行えないラッチ、変更や破棄は行えないが読み込みは行えるラッチ等がある。このラッチによりアクセスが制限されたプロセスは実行を一時停止し、当該ラッチが解除された後、再び当該ページへのラッチ獲得やアクセスを試みる。なお、ラッチは例えばセマフォを用いて実装される。
【0008】
「木構造の一貫性」…木構造ごとに決められた手順に従って葉ページ要求を行う限り、木構造が変更している最中に、一部の葉ページへアクセスができない状況になっても、要求が正常に一時停止され、最終的に正しい葉ページを取得できる性質をいう。
「アクセスパス」…ルートページPi及び要求する葉ページPdと、これらの各ページ間に含まれるページを意味する。
「ロック」…アクセスパスに対して、他の処理要求に属するプロセスからのアクセスを制御するもので、デットロック検出機能を持つ。
【0009】
(並行性制御)
次に、従来の分散データ格納システムにおける並行性制御について説明する。図14で説明したFat−Btree構造では、木構造の一貫性を保証するため、並行性制御が必須となる。この並行性制御においては、アクセスパスに対して、他のプロセスからのアクセスを制御するロックが用いられる。一般に、このロックには、デッドロック検出機能を持たない高速かつ単純なラッチ(セマフォの一種)が用いられている。
このFat−Btree構造において、葉ページのデータが参照、更新等される場合、並列計算機は、まず、ルートページにラッチを設定する。その後、下位層のページ(子ページ)のポインタを取得し、子ページにラッチを設定し、ルートページ(親ページ)のラッチを解除する。この動作を、上位層から下位層に向けて葉ページまで繰り返すことで、並行性を保証しながら葉ページを更新等することが可能になる。このような上位層から下位層に向けてラッチの設定及び解除を順次繰り返す動作を「ラッチカップリング」という。
【0010】
また、ある計算機(例えば、PE)が、自身の記憶部には記憶されていない葉ページPdについての処理要求があった場合、その葉ページPdを管理している他の計算機(例えば、PE)に処理要求を通知し、他の計算機がその処理要求を継続して実行する必要がある。このように、処理要求を他の計算機に継続して実行させることを、処理要求の移譲という。
【0011】
ここで、図15〜図17を参照(適宜図14参照)して、従来の並列計算機における処理要求の移譲動作について詳細に説明する。図15は、従来の並列計算機における処理要求の移譲動作を示すフローチャートである。図16は、計算機間で処理の移譲を伴わないラッチカップリングの動作例を示す模式図である。図17は、計算機間で処理の移譲を伴うラッチカップリングの動作例を示す模式図である。
並列計算機は、データの処理要求(参照、更新等)があった各計算機PEにおいて、以下の動作を実行する。ここでは、計算機PEの動作を主に説明する。
【0012】
まず、計算機PEは、初期値として、親ページを“null”、子ページをルートページに設定する(ステップS50)。そして、計算機PEは、要求に示されたデータのアクセスパスに基づいて、子ページへ降下が必要であるか否かを判定する(ステップS51)。
ここで、降下が必要でない場合(ステップS51でNo)、そのページが要求のあった葉ページであるため、当該葉ページへの処理を実行し(ステップS52)、動作を終了する。一方、降下が必要である場合(ステップS51でYes)、計算機PEは、要求に示されたデータのアクセスパスに基づいて、他の計算機へ処理要求を移譲するか否かを判定する(ステップS53)。
【0013】
ここで、移譲が必要な場合(ステップS53でYes)、計算機PEは、移譲先の計算機(ここでは、計算機PEとする)へ処理要求の移譲を要求する(移譲要求メッセージ送信)。この段階で、移譲先への移譲処理が開始されたことになる。なお、処理要求の移譲を要求された計算機PEは、計算機PEにおいて後記するステップS54以降の動作を実行する。
【0014】
一方、移譲が必要でない場合(ステップS53でNo)、計算機PEは、子ページにラッチを設定し(ステップS54)、その子ページに降下(子ページを新たな親ページに、孫ページを新たな子ページに設定)する(ステップS55)。
なお、計算機PEは、他の計算機におけるステップS53の判定により、当該他の計算機(ここでは、計算機PE3とする)から、処理要求の移譲を要求された場合も、ステップS54以降の動作を実行する。この段階で、移譲元からの移譲処理が開始されたことになる。
【0015】
その後、計算機PEは、移譲元の計算機(計算機PE)からの移譲処理中である場合(ステップS56でYes)、計算機PEへ要求に対する応答を通知する。一方、移譲元の計算機(計算機PE)からの移譲処理中でない場合(ステップS56でNo)、親ページのラッチを解除する(ステップS57)。
なお、計算機PEは、移譲先の計算機(計算機PE)から移譲の要求に対する応答を通知された場合(移譲応答メッセージ受信)も、ステップS57の動作を実行する。
【0016】
そして、計算機PEは、移譲先の計算機(計算機PE)への移譲処理中である場合(ステップS58でYes)、計算機PEへ移譲の完了を通知し(移譲完了メッセージ送信)、動作を終了する。この段階で、移譲先への移譲処理が完了したことになる。
一方、移譲先の計算機(計算機PE)への移譲処理中でない場合(ステップS58でNo)、計算機PEは、ステップS51に戻って、処理対象の葉ページに到達するまで動作を続ける。
なお、計算機PEは、移譲元の計算機(計算機PE)から移譲の完了を通知された場合も、ステップS51に戻って動作を実行する。なお、この段階で、移譲元からの移譲処理が完了したことになる。
【0017】
例えば、図16(a)に示すように、ルートページPから対象データの葉ページPまでが、同一の計算機PE内で管理されている場合、図16(b)に示すように、葉ページPまでの処理要求を受け付けた計算機PEは、他の計算機に参照先の葉ページPに対する処理要求を移譲することなく、計算機PE内で、各ページPからPまで、ラッチカップリングを行いながら、最下層の葉ページPに対してラッチをかけ、参照、更新等の処理を行うことができる。なお、図16(b)中“L”は、ラッチが設定された状態を示している。
【0018】
一方、図17(a)に示すように、ルートページPから参照先の葉ページPまでが、葉ページPまでの処理要求を受け付けた計算機PE内で管理されていない場合、計算機間で処理要求の移譲が行われる。例えば、図17(a)に示すように、ルートページPから対象データの葉ページPまでにおいて、インデックスページP及び葉ページPが計算機PEでしか管理されていない場合、計算機PEにデータ(葉ページP)の処理要求(参照、更新等)がなされると、インデックスページP以下の子ノードへの降下処理は、計算機PEに移譲されることになる。
【0019】
これによって、図17(b)に示すように、異なる計算機間で、ラッチカップリングを行いながら、最下層の葉ページPに対してラッチをかけ、参照、更新等の処理を行うことができる。なお、図17(b)中、破線で示した移譲処理は、図17(c)に示すように、計算機PE及びPE間で、各メッセージが送受信されることで行われる。この各メッセージは、図15のステップS53でYesの場合に計算機PEに送信される移譲要求メッセージ、ステップS57の前に計算機PEから受信する移譲応答メッセージ、ステップS58でYesの場合に計算機PEに送信される移譲完了メッセージである。
【非特許文献1】吉原朋宏、他4名,「並列ディレクトリ構造Fat−Btreeの並行性制御とその評価」,[online],平成17年3月27日,電子情報通信学会第16回データ工学ワークショップ第3回日本データベース学会年次大会,[平成18年8月4日検索],インターネット<URL:http://www.ieice.org/iss/de/DEWS/DEWS2005/procs/papers/2A-o4.pdf>
【発明の開示】
【発明が解決しようとする課題】
【0020】
一般に、データをネットワーク上に分散して蓄積する分散データ格納システムにおいて、データを木構造で管理する場合、複数の計算機(PE)間でデータの一貫性を維持するため、並行性制御を行う必要がある。この並行性制御を行うために、従来の分散データ格納システムでは、木構造で管理されたデータに対して、更新、挿入、削除等の操作を行う場合、木構造の上位から下位の層に向かってラッチ(あるいはロック)カップリングを行っている。
しかし、ラッチカップリングにより、計算機(PE)間での処理要求の移譲が発生した場合、図17(c)に示したように、複数(3回)のメッセージがネットワーク上で伝送されることになるため、ネットワークレイテンシが増大する。また、分散データ格納システムでは、スループットの向上を目的として、システム規模を大きくする場合がある。このとき、システム規模の拡大に伴いネットワーク上のメッセージ伝送の頻度が多くなり、スループットの向上の効果が得られにくくなるという問題がある。
【0021】
本発明は、以上のような問題点に鑑みてなされたものであり、データを木構造で管理する場合に、メッセージ伝送の負荷が大きいラッチカップリングを行わずに、並行性制御を行うことが可能なディレクトリ分散型記憶装置及びデータ処理要求移譲プログラムを提供することを目的とする。
【課題を解決するための手段】
【0022】
本発明は、前記目的を達成するために創案されたものであり、まず、請求項1に記載のディレクトリ分散型記憶装置は、記憶手段と、木構造更新手段と、経路探索手段とを備え、ネットワーク環境下で木構造を有するディレクトリ構造を分散して管理するディレクトリ分散型記憶装置において、前記経路探索手段が、経路誤り判定手段と、経路復旧手段と、移譲判定手段と、移譲手段とを備える構成とした。
【0023】
かかる構成において、ディレクトリ分散型記憶装置は、ページを順に子ページの方向にロックの設定と解除とを行いながら探索していく途中でページの分割が発生した場合、経路誤り判定手段によって、経路誤りを判定する。なお、ここでいうロックには、デッドロック検出機能を持たない高速かつ単純なラッチも含む。
そして、ディレクトリ分散型記憶装置は、経路復旧手段によって、経路誤り判定手段で経路誤りと判定された場合に、経路の復旧を行う。
【0024】
また、ディレクトリ分散型記憶装置は、移譲判定手段によって、ページ内の参照先に基づいて、データへの要求処理を他のディレクトリ分散型記憶装置へ移譲するか否かを判定する。そして、ディレクトリ分散型記憶装置は、移譲手段によって、移譲判定手段で他のディレクトリ分散型記憶装置へ処理要求を移譲すると判定した場合に、処理要求(移譲要求メッセージ)を他のディレクトリ分散型記憶装置へ送信する。
なお、従来では、処理要求の移譲途中に経路誤りを発生させないようにページのロック制御を行うため、複数のメッセージを他のディレクトリ分散型記憶装置との間で送受信する必要があったが、このディレクトリ分散型記憶装置では、経路誤りを検出可能としたことで、処理要求の移譲を1回のメッセージ送信で行うことが可能になる。
【0025】
また、請求項2に記載のディレクトリ分散型記憶装置は、記憶手段と、木構造更新手段と、経路探索手段とを備え、ネットワーク環境下で木構造を有するディレクトリ構造を分散して管理するディレクトリ分散型記憶装置において、前記木構造更新手段が境界値設定手段を備え、前記経路探索手段が、経路誤り判定手段と、経路再探索手段と、移譲判定手段と、移譲手段とを備える構成とした。
【0026】
かかる構成において、ディレクトリ分散型記憶装置は、境界値設定手段によって、データを検索するための検索キーと木構造を有するディレクトリ構造の下位のページへの参照先とを含んだページ内で、参照先の数が予め定めた制限値を超過して当該ページを分割する際に、その分割されたページごとに、当該ページで管理する検索キーの境界値を設定する。これによって、親ページを参照することなく、当該ページで管理されている子ページが、どの検索キーの範囲のページがあるのかを特定することができる。
【0027】
そして、ディレクトリ分散型記憶装置は、ページを順に子ページの方向にロックの設定と解除とを行いながら探索していく途中でページの分割が発生した場合、経路誤り判定手段によって、境界値設定手段で設定された境界値に基づいて検索キーが該当するページに存在するか否かにより、経路誤りを判定する。なお、ここでいうロックには、デッドロック検出機能を持たない高速かつ単純なラッチも含む。
そして、ディレクトリ分散型記憶装置は、経路再探索手段によって、経路誤り判定手段で経路誤りと判定された場合に、再度上位のページから経路の探索を行う。これによって、正しい経路が探索されることになる。
【0028】
また、ディレクトリ分散型記憶装置は、移譲判定手段によって、ページ内の参照先に基づいて、データへの要求処理を他のディレクトリ分散型記憶装置へ移譲するか否かを判定する。そして、ディレクトリ分散型記憶装置は、移譲手段によって、移譲判定手段で他のディレクトリ分散型記憶装置へ処理要求を移譲すると判定した場合に、処理要求(移譲要求メッセージ)を他のディレクトリ分散型記憶装置へ送信する。
なお、従来では、処理要求の移譲途中に経路誤りを発生させないようにページのロック制御を行うため、複数のメッセージを他のディレクトリ分散型記憶装置との間で送受信する必要があったが、このディレクトリ分散型記憶装置では、経路誤りを検出可能としたことで、処理要求の移譲を1回のメッセージ送信で行うことが可能になる。
【0029】
また、請求項3に記載のディレクトリ分散型記憶装置は、請求項2に記載のディレクトリ分散型記憶装置において、プロセスを管理するプロセス管理手段を備え、木構造更新手段が、前記ページを分割した際に、当該ディレクトリ分散型記憶装置以外の参照先のみからなるページを、当該ディレクトリ分散型記憶装置の管理対象外のページであると判定する管理対象ページ判定手段と、この管理対象ページ判定手段で管理対象外のページであると判定したページを削除するページ削除手段とを備え、前記ページ削除手段が、当該ページを参照するプロセスが存在しなくなった段階で、当該ページを削除する構成とした。
【0030】
かかる構成において、ディレクトリ分散型記憶装置は、木構造更新手段がページを分割した際に、管理対象ページ判定手段によって、当該ディレクトリ分散型記憶装置以外の参照先のみからなるページを、当該ディレクトリ分散型記憶装置の管理対象外のページであると判定する。なお、この管理対象外のページより下位のページは、他のディレクトリ分散型記憶装置で管理されているため、当該ディレクトリ分散型記憶装置で管理する必要がないページである。
そして、ディレクトリ分散型記憶装置は、ページ削除手段によって、管理対象ページ判定手段で管理対象外のページであると判定したページを削除する。このとき、ページ削除手段は、削除対象のページを参照するプロセスが存在しなくなった段階で、当該ページを削除する。これによって、完全に不要になったページのみが削除されることになる。
【0031】
さらに、請求項4に記載のディレクトリ分散型記憶装置は、請求項3に記載のディレクトリ分散型記憶装置において、木構造更新手段が、前記ページを分割した際に、親ページに参照先が記述されている一方のページが当該ディレクトリ分散型記憶装置以外の参照先のみからなるページである場合に、分割された他方のページの内容を前記一方のページに上書きするエントリ複製手段を備え、このエントリ複製手段により上書きされた後に、前記ページ削除手段が、前記他方のページを削除する構成とした。
【0032】
かかる構成において、ディレクトリ分散型記憶装置は、エントリ複製手段によって、分割された他方のページの内容を、親ページに参照先が記述されている一方のページに上書きする。そして、ディレクトリ分散型記憶装置は、ページ削除手段によって、他方のページを削除する。このとき、他方のページを参照している親ページは存在しないため、上位のページからの参照の有無を確認することなく削除することができる。
【0033】
また、請求項5に記載のデータ処理要求移譲プログラムは、データを検索するための検索キーと木構造を有するディレクトリ構造の下位のページへの参照先とを含んだ複数のページで構成されるディレクトリ構造を分散して管理するディレクトリ分散型記憶装置において、前記データへの処理要求を、ネットワークに接続された他のディレクトリ分散型記憶装置に移譲するために、コンピュータを、境界値設定手段、ロック設定手段、経路誤り判定手段、経路再探索手段、移譲判定手段、移譲手段、として機能させる構成とした。
【0034】
かかる構成によれば、データ処理要求移譲プログラムは、境界値設定手段によって、ページ内の参照先の数が予め定めた制限値を超過して当該ページを分割する際に、分割されたページごとに、当該ページで管理する検索キーの境界値を設定する。これによって、親ページを参照することなく、当該ページで管理されている子ページが、どの検索キーの範囲のページがあるのかを特定することができる。
【0035】
また、データ処理要求移譲プログラムは、ロック設定手段によって、データまでの経路を探索する経路において、上位のページにロックを設定し、下位ページへの参照先を取得した後に、ロックを解除し、下位のページにロックを設定する処理を繰り返す。
さらに、データ処理要求移譲プログラムは、経路誤り判定手段によって、データまでの経路を探索する経路途中のページにおいて、当該データの検索キーの値が、境界値設定手段で設定された境界値の範囲内であるか否かに基づいて、経路誤りを判定する。
そして、データ処理要求移譲プログラムは、経路再探索手段によって、経路誤り判定手段で経路誤りと判定された場合に、再度上位のページから経路の探索を行う。これによって、正しい経路が探索されることになる。
【0036】
また、データ処理要求移譲プログラムは、移譲判定手段によって、ページ内の参照先に基づいて、データへの要求処理を他のディレクトリ分散型記憶装置へ移譲するか否かを判定する。そして、データ処理要求移譲プログラムは、移譲手段によって、移譲判定手段で他のディレクトリ分散型記憶装置へ処理要求を移譲すると判定した場合に、処理要求(移譲要求メッセージ)を他のディレクトリ分散型記憶装置へ送信する。
【発明の効果】
【0037】
本発明は、以下に示す優れた効果を奏するものである。
請求項1、請求項2又は請求項5に記載の発明によれば、ラッチカップリング処理を行わないため、処理要求を他のディレクトリ分散型記憶装置に移譲する場合に、ネットワークを介したメッセージの送受信回数を1回で処理することができる。これによって、システム規模の拡大を行った場合に、ネットワークへの負荷を抑えることができ、スループットを向上させることができる。
【0038】
請求項3に記載の発明によれば、サービスを継続したまま、不要になったページを削除することが可能となり、メモリの効率的利用が可能で、データを探索する際の処理速度を高速化することができる。
請求項4に記載の発明によれば、親ページに参照先が記述されていないページを削除するため、経路再探索手段が行う再探索の回数を減らすことができ、データを探索する際の処理速度を高速化することができる。
【発明を実施するための最良の形態】
【0039】
≪第1実施形態≫
[ディレクトリ分散型記憶装置の構成]
まず、図1を参照して、第1実施形態に係るディレクトリ分散型記憶装置の構成について説明する。図1は、本発明の第1実施形態に係るディレクトリ分散型記憶装置の構成を示すブロック図である。
【0040】
図1に示したディレクトリ分散型記憶装置PEは、ネットワークNに接続された他のディレクトリ分散型記憶装置(図示せず)と協働し、データベース等のデータを分散して記憶するものである。このディレクトリ分散型記憶装置PEは、図14で説明したFat−Btree構造のディレクトリ構造によってデータを記憶管理する計算機PEに相当する。ここでは、ディレクトリ分散型記憶装置PEは、通信制御部1と、記憶部2と、制御部3とを備えている。
【0041】
通信制御部1は、ネットワークNを介して、クライアントコンピュータ(図示せず)や他のディレクトリ分散型記憶装置(図示せず)と、データや制御情報の送受信を行うものである。例えば、通信制御部1は、TCP/IP(Transmission Control Protocol/Internet Protocol)の通信プロトコルによってデータ等の送受信を行う通信ボードである。
【0042】
記憶部2は、データベース等のデータや、ディレクトリ構造を特定する木構造情報等を記憶しておくもので、一般的なハードディスク等の記憶装置である。この記憶部2には、データDTと、木構造情報TRと、エントリ制限情報ELとを記憶している。
【0043】
データDTは、Fat−Btree構造における葉ページであって、データの実体である。このデータDTは、記憶領域の予め定められたページ単位で管理され、所定のページ数(後記するエントリ制限情報ELに含まれる)を超過する場合は分割される。
【0044】
木構造情報TRは、Fat−Btree構造のデータ構造を示す情報である。ここでは、木構造情報TRは、Fat−Btree構造のルートページから、記憶部2に記憶されているデータ(葉ページ)DTまでのアクセスパスを示すインデックスページを記憶している。
【0045】
ここで、図2を参照して木構造情報TRの内容について説明する。図2は、木構造情報を構成するインデックスページの構造を示すデータ構造図である。従来、Fat−Btree構造のインデックスページは、インデックスページを検索する際のキーとなる「検索キー」と、下層のインデックスページ(又は葉ページ)の参照先を示す「ポインタ」とを対として、検索キーが昇順(又は降順)となるように複数連結したデータ構造を有している。
この木構造情報TRでは、図2に示すように、「検索キー」と「ポインタ」との対の情報以外に、「削除ビットDb」と、「始端検索キーKs」と、「終端検索キーKe」とを付加している。
【0046】
「削除ビットDb」は、当該インデックスページが有効なページであるか否かを示す情報である。この削除ビットDbに、インデックスページが削除対象のページとなっていることを示すビット(例えば、値“1”)を設定することで、無効なページであることを意味することとする。
【0047】
「始端検索キーKs」は、当該インデックページおいて管理される検索キーの始端の値を示す情報である。
「終端検索キーKe」は、同じ階層で後続するインデックスページとの検索キーの境界値を示す情報である。この終端検索キーKeは、例えば、図2に示すように、インデックスページPにインデックスページPが続く場合、後続のインデックスページPにおける先頭の検索キー(始端検索キー)の値“Ki”と、インデックスページPの終端検索キーKeの値とを同一に設定しておく。これによって、インデックスページPにおいて、検索キーの値の範囲を明確にすることができる。なお、インデックスページが、ルートページである場合は、終端検索キーの値は、検索キーの値とはならない特殊な値、例えば“null”を設定しておく。この場合、各階層の最終のインデックスページにおける終端検索キーの値も、“null”が設定されることになる。
この「削除ビットDb」、「始端検索キーKs」及び「終端検索キーKe」の具体的な利用方法については、後記することとする。
図1に戻って、ディレクトリ分散型記憶装置の構成について説明を続ける。
【0048】
エントリ制限情報ELは、Fat−Btree構造において、インデックスページに登録される子ページの数の最大値や、葉ページとして登録できるデータの数の最大値を示す情報である。このエントリ制限情報ELは、後記する制御部3によって参照され、データの更新に伴う木構造の変化が発生するか否かを判定するために用いられる。
【0049】
制御部3は、ディレクトリ分散型記憶装置PE全体の動作を制御するものであって、一般的なコンピュータにおけるCPU(Central Processing Unit:中央処理装置)を制御するものである。なお、制御部3は、一般的なOS(Operating System)上で、クライアントコンピュータ(図示せず)や他のディレクトリ分散型記憶装置(図示せず)からの要求に基づいて、複数のプロセスにより動作するものである。ここでは、制御部3は、データ操作手段10と、木構造管理手段20と、制御情報送受信手段30と、プロセス管理手段40とを備えている。
【0050】
データ操作手段10は、通信制御部1を介して、データの送受信操作を行うものである。なお、データ操作手段10は、木構造管理手段20において、データへのアクセスパスが、当該ディレクトリ分散型記憶装置PEが管理するデータDTへのアクセスパスである場合にのみ起動される。ここでは、データ操作手段10は、データ送受信手段11と、データ参照手段12と、データ更新手段13とを備えている。
【0051】
データ送受信手段11は、制御情報送受信手段30から通知されるデータの送信元(例えば、クライアントコンピュータ等)から、通信制御部1を介してデータを受信したり、データの送信先(例えば、クライアントコンピュータ等)に、通信制御部1を介してデータを送信したりするものである。
このデータ送受信手段11は、データ参照手段12から出力されるデータを、通信制御部1を介して送信し、通信制御部1を介して受信したデータをデータ更新手段13に出力する。
【0052】
データ参照手段12は、記憶部2に記憶されているデータDTを読み出すものである。このデータ参照手段12は、木構造管理手段20から通知される制御情報(記憶元のアドレス等のアクセスパス)に基づいて、データDTを記憶部2から読み出す。このデータ参照手段12で読み出されたデータDTは、データ送受信手段11に出力される。
【0053】
データ更新手段13は、データ送受信手段11で受信したデータを、記憶部2に書き込むものである。このデータ更新手段13は、木構造管理手段20から通知される制御情報(記憶先のアドレス等のアクセスパス)に基づいて、データを記憶部2に書き込む。
また、データ更新手段13は、木構造管理手段20から通知される制御情報に基づいて、指示されたデータDTを記憶部2から削除する動作も行う。なお、データDTを削除する場合、親ページのインデックスページに設定されているポインタを削除する必要があるため、データDTを削除した旨を木構造管理手段20に通知する。
【0054】
木構造管理手段20は、記憶部2に記憶されている木構造情報TRとエントリ制限情報ELとに基づいて、記憶部2に記憶されるデータDTを階層構造で管理するものである。また、木構造管理手段20は、Fat−Btree構造(図14参照)のディレクトリ構造によりデータDTを管理するものとする。ここでは、木構造管理手段20は、ラッチ設定手段21と、経路探索手段22と、木構造更新手段23とを備えている。
【0055】
ラッチ設定手段(ロック設定手段)21は、後記する経路探索手段22でページを探索する際に、経路探索手段22からの要求に基づいて、要求されたページに対してラッチを設定したり、解除したりするものである。このラッチは、ロックの一種であり、デッドロック検出機能を持たないセマフォの一種である。なお、ここでは、ラッチを用いることにしているが、デッドロック検出機能を持つ一般的なロックを用いることとしてもよい。
【0056】
経路探索手段22は、木構造情報TRを参照して、制御情報送受信手段30から制御情報として通知される検索キーに基づいて、ルートページから子ページに向かって、順次インデックスページに対するラッチの設定及び解除を繰り返しながら、処理対象の葉ページを検索し、ラッチを設定するものである。ここでは、経路探索手段22は、移譲判定手段221と、移譲手段222と、経路誤り判定手段223と、経路再探索手段224とを備えている。
【0057】
移譲判定手段221は、要求された処理を自装置で継続するか、他のディレクトリ分散型記憶装置(図示せず)に移譲するか否かを判定するものである。ここでは、移譲判定手段221は、木構造情報TRのインデックスページにおいて、検索キーに対応するポインタが、自装置の木構造情報TRで管理されているインデックスページを指し示している場合に、自装置で処理を継続すると判定する。
一方、ポインタが他のディレクトリ分散型記憶装置(図示せず)で管理されているインデックスページを指し示している場合、移譲判定手段221は、他のディレクトリ分散型記憶装置に、要求された処理を移譲すると判定する。なお、移譲すると判定した場合、移譲判定手段221は、その旨を移譲手段222に通知する。
【0058】
移譲手段222は、移譲判定手段221で他のディレクトリ分散型記憶装置へ処理要求を移譲すると判定した場合に、処理要求を他のディレクトリ分散型記憶装置へ送信するものである。ここでは、移譲手段222は、移譲判定手段221から、移譲する旨を通知された段階で、制御情報送受信手段30を介して、他のディレクトリ分散型記憶装置に、処理プロセスを特定する識別子であるトランザクションID、検索キーの値、インデックスページのポインタ、並びに、要求された処理内容(参照、挿入、更新、削除)を含んだ制御情報を移譲要求メッセージとして通知する。
【0059】
ここで、図3を参照(適宜図1参照)して、経路探索手段22により行うディレクトリ分散型記憶装置間の処理の移譲手順について説明する。図3は、ディレクトリ分散型記憶装置間で行う処理の移譲手順を示す模式図である。
なお、ここでは、図3(a)に示すように、ディレクトリ構造が図14に示したFat−Btree構造において、ルートページPから対象データの葉ページPまでが、異なるディレクトリ分散型記憶装置PE(PE,PE)で管理されているものとする。
【0060】
このとき、ディレクトリ分散型記憶装置PEは、図3(b)に示すように、ディレクトリ分散型記憶装置PEの内部で管理しているページPにラッチを設定し、その子ページであるページPを探索した後、親ページとなるページPのラッチを解除する。その後、ディレクトリ分散型記憶装置PEは、ページPにラッチを設定し、その子ページであるページPを探索する。このとき、ページPは、ディレクトリ分散型記憶装置PEで管理されているため、ディレクトリ分散型記憶装置PEは、親ページとなるページPのラッチを解除し、ディレクトリ分散型記憶装置PEに対して、葉ページPに対する処理を移譲する。
【0061】
その後、ディレクトリ分散型記憶装置PEが、ページPにラッチを設定し、その子ページである葉ページPを探索した後、親ページとなるページPのラッチを解除する。そして、ディレクトリ分散型記憶装置PEは、葉ページPにラッチを設定し、葉ページPに対する処理(参照、更新等)を行う。なお、図3(b)中“L”は、ラッチが設定された状態を示している。
このとき、図3(b)中、破線で示した移譲処理において、図3(c)に示すように、ディレクトリ分散型記憶装置PEから、ディレクトリ分散型記憶装置PEに対して、移譲要求メッセージのみが送信される。
【0062】
なお、この場合、図3(b)に示すように、子ページにラッチを設定する前に親ページのラッチを解除するため、他のプロセスによる処理によって、木構造情報TRが更新される場合があり、子ページに降下する際に経路誤りが発生することがある。
そこで、ディレクトリ分散型記憶装置PEは、後記する経路誤り判定手段223により、経路誤りを判定し、正しい経路を補償することとしている。
図1に戻って、ディレクトリ分散型記憶装置の構成について説明を続ける。
【0063】
経路誤り判定手段223は、インデックスページを降下していく際に、その経路に誤りがあるか否かを判定するものである。ここでは、経路誤り判定手段223は、木構造情報TRのインデックスページにおいて、処理対象の検索キーが当該インデックスページに属するものであるか否かを判定することで、経路の誤りを判定する。
具体的には、経路誤り判定手段223は、処理対象の検索キーの値が、インデックスページにおける「始端検索キーKs」の領域(図2参照)に記述されている検索キーの値以上で、「終端検索キーKe」の領域(図2参照)に記述されている検索キーの値未満であるときに、経路が正しいと判定し、それ以外のときに、経路が誤っていると判定する。なお、経路が誤っていると判定した場合、経路誤り判定手段223は、その旨を経路再探索手段224に通知する。
【0064】
なお、ここでは、経路誤り判定手段223が、検索キーの始端及び終端に基づいて経路誤りを判定することとしたが、既存の技術であるARIES/IM(Algorithm for Recovery and Isolation Exploiting Semantics for Index Management)という方式で用いられている方法を応用して用いてもよい。
このARIES/IM方式の方法を応用すると、まず、SM_bitというビットを各ページに設け、初期値として“0”に設定しておく。そして、ページを更新する際には、木ラッチと呼ばれるシステムに1つしかないラッチを獲得する。この更新のためのラッチ獲得方法としては、ボトムアップのラッチカップリングを用いる。そして、更新されたページのSM_bitに“1”を設定する。その後、関連するページの更新が終わった段階で、SM_bitを“0”に設定し、木ラッチを解放する。
【0065】
そして、経路誤り判定手段223は、インデックスページを降下していく際に、SM_bitに“1”が設定されているページに至った場合、経路誤りの可能性があると判定する。そして、経路誤り判定手段223は、経路誤りの可能性があると判定した場合、さらに、処理対象の検索キーの値が、当該ページに含まれている検索キーの値よりも大きいか否かを判定し、大きい場合に経路が誤っていると判定する。このとき、経路誤り判定手段223は、木ラッチが解放されるまで待機する。
そして、経路誤り判定手段223は、木ラッチが解放された後、経路再探索手段224(経路復旧手段)に経路誤りがあった旨を通知する。
【0066】
経路再探索手段(経路復旧手段)224は、経路誤り判定手段223で経路誤りと判定された場合に、経路の復旧を行うものである。ここでは、経路再探索手段224は、再度最上位のページからデータの探索を行うことで、経路の復旧を行う。この場合、経路再探索手段224は、プロセス管理手段40に対して、当該プロセスの再起動を要求する。この後、プロセスが再起動されることで、正しい経路によりデータ(葉ページ)が探索されることになる。
【0067】
なお、ここでは、経路再探索手段224が、プロセスを再起動することで、最上位のページからデータの探索を行うこととしたが、経路誤りと判定したページの上位ページから再度探索を行うこととしてもよい。この場合、例えば、各ページにページの更新によって値が変化するログ用番号(LSN:Log Sequence Number)を付しておき、経路探索時には、各ページのログ用番号を記憶し、復旧時には、このログ用番号が変化していない上位のページまで遡ることで、正しい経路に復旧することができる。
【0068】
木構造更新手段23は、木構造情報TRにおけるページの追加、削除等に伴う木構造の更新を行うものである。ここでは、木構造更新手段23は、ページ削除手段231と、ページ分割・追加手段232とを備えている。
【0069】
ページ削除手段231は、不用になったページを削除して、木構造情報TRを更新するものである。このページ削除手段231は、データ操作手段10によってデータDTが削除されることで、参照先のページがなくなったインデックスページ、あるいは、参照先が他のディレクトリ分散型記憶装置(図示せず)へのポインタのみとなったインデックスページを削除する。
【0070】
なお、ページ削除手段231は、削除ビット設定手段231aを備え、ページを削除する場合、削除ビット設定手段231aによって、当該ページに対して削除ビットを設定し、プロセス管理手段40に対して、削除ビット設定時点で起動されていたプロセスの終了を待つ旨の通知を行う。そして、ページ削除手段231は、削除ビット設定時点で起動されていたプロセスの終了をプロセス管理手段40から通知された段階で、該当するページを削除し、木構造情報TRを更新する。
これによって、削除ビット設定時点で当該ページを参照していたプロセスの動作を保証することができる。
【0071】
削除ビット設定手段231aは、指定されたページに削除ビットを設定するものである。具体的には、削除ビット設定手段231aは、指定されたページの「削除ビットDb」の領域(図2参照)に、削除対象のページであることを示すビット(例えば、値“1”)を設定する。これによって、削除ビットが設定された後に、当該ページを参照するプロセスは、当該ページが無効であることを認識することができる。
【0072】
ページ分割・追加手段232は、新規にページを追加するものである。なお、ページ分割・追加手段232は、新規にページを追加し、元のページのエントリ数がエントリ制限情報ELで示される最大値を越える場合、元のエントリの半分を新たなページに移すことでページの分割を行い、木構造情報TRを更新する。
このページ分割・追加手段232は、データ操作手段10によってデータDTが追加されることによって、そのデータDTを参照する親ページのエントリ数が、エントリ制限情報ELで示される最大値を超過する場合に、該当ページを分割する。なお、ページ分割・追加手段232は、親ページのエントリ数が、さらに、エントリ制限情報ELで示される最大値を超過する場合には、順次親ページを分割する。そして、その分割がルートページにまで波及した場合、ページ分割・追加手段232は、当該ルートページを分割し、その上位にルートページを生成する。
ここでは、ページ分割・追加手段232は、境界値設定手段232aと、管理対象ページ判定手段232bと、ポインタ設定手段232cとを備えている。
【0073】
境界値設定手段232aは、ページが追加又は分割される際に、ページ内に各ページ間の検索キーの境界値を設定するものである。具体的には、境界値設定手段232aは、インデックスページの「終端検索キーKe」の領域(図2参照)に、追加又は分割により新たに生成された後続のインデックスページの先頭に記述されている検索キーの値を設定する。
【0074】
ここで、図4を参照(適宜図1参照)して、インデックスページの境界値設定の手法について説明する。ここでは、インデックスページを分割する場合を例に説明する。図4は、インデックスページの分割により境界値を設定する例を説明するための説明図であって、(a)は分割前、(b)は分割後のインデックスページの内容を示している。
【0075】
ここでは、図4(a)に示すインデックスページPは、K以上K未満(K≦K<K)の検索キーを有するインデックスページである。ここで、検索キーK以降を分割することとする。
この場合、ページ分割・追加手段232は、図4(b)に示すように、インデックスページPを、検索キーの値がK未満のインデックスページPと、K以上のインデックスページPとに分割する。このとき、境界値設定手段232aが、インデックスページPにおける先頭の検索キーの値Kを、インデックスページPの「終端検索キーKe」の領域に設定する。これによって、インデックスページの検索キーの境界値により、インデックスページの検索キーの両端を示すことができるため、前記した経路誤り判定手段223は、経路の誤りを判定することが可能になる。
図1に戻って、ディレクトリ分散型記憶装置の構成について説明を続ける。
【0076】
管理対象ページ判定手段232bは、ページを分割することにより生成された2つのページが、当該装置PEの管理対象ページであるか否かを判定するものである。ここでは、管理対象ページ判定手段232bは、ページ内のすべてのポインタが、当該装置PE以外の他のディレクトリ分散型記憶装置(図示せず)で管理されているページを指し示すポインタ(リモートポインタ)である場合に、当該ページを管理対象ページでないと判定する。一方、ページ内のポインタのうち一つでも当該装置PEで管理されているページを指し示すポインタ(ローカルポインタ)である場合は、当該ページを管理対象ページであると判定する。
なお、管理対象ページ判定手段232bは、分割により生成されたページを管理対象ページでないと判定したときは、ページ削除手段231によって、当該ページを削除する。これによって、不用なページが管理から除外されることになる。
【0077】
ポインタ設定手段232cは、ページの追加又は分割によって、新たに生成されたページへのポインタを親ページに設定するものである。なお、ポインタ設定手段232cは、ページの分割の際は、管理対象ページ判定手段232bによって、管理対象ページであると判定されたページのみ親ページにポインタを設定する。
【0078】
ここで、図5〜図8を参照(適宜図1参照)して、インデックスページの分割手法について説明する。図5は、インデックスページを分割した際の分割パターンを説明するための説明図である。
ここでは、図5(a)に示すように、インデックスページP(親ページ)の検索キーKiのポインタで示されているインデックスページP(子ページ)は、エントリ数がエントリ制限情報ELで示される最大値の状態(Full entry)であるとする。
【0079】
図5(a)に示した状態で、インデックスページPに新たなエントリを設定しようとすると、ページ分割・追加手段232によって、図5(b)に示すように、インデックスページPが分割される。このとき、分割直後のインデックスページPは、親ページ(インデックスページP)からポインタで指し示されているページ(インデックスページP21:便宜上「左側ページ」と呼ぶ)と、新たに分割により生成され親ページ(インデックスページP)からポインタで指し示されていないページ(インデックスページP22:便宜上「右側ページ」と呼ぶ)とに分割されることになる。
【0080】
このように分割されたとき、分割されたページのそれぞれが、当該装置PEで管理されているページを指し示すポインタを含んでいるか、当該装置PE以外の他のディレクトリ分散型記憶装置(図示せず)で管理されているページを指し示すポインタのみであるかによって、分割パターンを(b−1)、(b−2)及び(b−3)に分類することができる。なお、当該装置PEで管理されているページを指し示すポインタをロールポインタと呼び、図中「local」で示す。また、当該装置PE以外の他のディレクトリ分散型記憶装置(図示せず)で管理されているページを指し示すポインタをリモートポインタと呼び、図中「remote」で示す。
【0081】
まず、第1の分割パターンは、(b−1)に示すように、分割されたページ(インデックスページP21,P22)のどちらにもローカルポインタが含まれている分割パターンである。
また、第2の分割パターンは、(b−2)に示すように、左側ページP21にはローカルポインタが含まれているが、右側ページP22にはローカルポインタが含まれておらずリモートポインタのみが含まれている分割パターンである。
また、第3の分割パターンは、(b−3)に示すように、右側ページP22にはローカルポインタが含まれているが、左側ページP21にはローカルポインタが含まれておらずリモートポインタのみが含まれている分割パターンである。
【0082】
このように、インデックスパターンを分割した場合、リモートポインタを有していないページは、当該装置PEには不要なページであるため削除する必要がある。
そこで、以下、図6〜図8を参照(適宜図1参照)して、分割後の処理について説明する。図6は、第1の分割パターンにおける分割後の処理を説明するための説明図である。図7は、第2の分割パターンにおける分割後の処理を説明するための説明図である。図8は、第3の分割パターンにおける分割後の処理を説明するための説明図である。
【0083】
第1の分割パターンでは、図6(a)に示すように、分割されたページ(インデックスページP21,P22)のどちらにもローカルポインタが含まれているため、ページを削除する必要はない。そこで、ディレクトリ分散型記憶装置PEは、図6(b)に示すように、分割により新たに生成されたページ(インデックスページP22)へのポインタ(ローカルポインタ)を親ページ(インデックスページP)に設定する。
【0084】
また、第2の分割パターンでは、図7(a)に示すように、左側ページP21にはローカルポインタが含まれているが、右側ページP22にはローカルポインタが含まれていないため、右側ページP22を削除する必要がある。そこで、ディレクトリ分散型記憶装置PEは、図7(b)に示すように、分割により新たに生成されたページ(インデックスページP22)を削除し、削除されたページのコピーを管理している他のディレクトリ分散型記憶装置へのポインタ(リモートポインタ)を親ページ(インデックスページP)に設定する。
【0085】
また、第3の分割パターンでは、図8(a)に示すように、右側ページP22にはローカルポインタが含まれているが、左側ページP21にはローカルポインタが含まれていないため、左側ページP21を削除する必要がある。そこで、ディレクトリ分散型記憶装置PEは、図8(b)に示すように、親ページ(インデックスページP)からポインタで指し示されている左側ページ(インデックスページP21)を削除し、削除されたページのコピーを管理している他のディレクトリ分散型記憶装置へのポインタ(リモートポインタ)を親ページ(インデックスページP)に設定する。さらに、分割により新たに生成されたページ(インデックスページP22)へのポインタ(ローカルポインタ)を親ページ(インデックスページP)に設定する。
図1に戻って、ディレクトリ分散型記憶装置の構成について説明を続ける。
【0086】
制御情報送受信手段30は、通信制御部1を介して、図示していないクライアントコンピュータや他のディレクトリ分散型記憶装置と制御情報の送受信を行うものである。ここでは、制御情報送受信手段30は、クライアントコンピュータ等から受信した制御情報をデータ操作手段10や木構造管理手段20に出力し、データ操作手段10や木構造管理手段20から出力された制御信号をクライアントコンピュータ等に送信する。
【0087】
プロセス管理手段40は、ディレクトリ分散型記憶装置PE内で起動されるプロセスを管理するものである。
ここでは、プロセス管理手段40は、経路探索手段22からプロセスの再起動が通知された場合、要求のあったプロセスを再起動する。これによって、経路探索手段22における経路探索がリスタートされることになる。
また、ページ削除手段231から、削除ビット設定時点で起動されていたプロセスの終了を待つ旨の通知があった場合、プロセス管理手段40は、その時点において起動していたプロセスがすべて終了した段階で、ページ削除手段231にプロセスの終了を通知する。これによって、他のプロセスに影響を与えることなくページを削除することができる。
【0088】
以上説明したように、ディレクトリ分散型記憶装置PEを構成することで、木構造の上位から下位の層に向かってラッチを設定する際に、従来のようなラッチカップリングを行う必要がないため、処理要求の移譲が発生する場合であっても、ネットワーク上のメッセージ伝送の回数が1回で済む。このように、ネットワーク上のメッセージ伝送の頻度を抑えることができるため、従来に比べ、システム規模の拡大によるスループットの向上の効果を高めることができる。
【0089】
なお、ここでは、ディレクトリ分散型記憶装置PEのディレクトリ構造がFat−Btree構造であるものとして説明を行ったが、一般的な並列Btree構造を有する場合であっても構わない。
また、ディレクトリ分散型記憶装置PEの制御部3は、一般的なコンピュータにプログラムを実行させ、コンピュータ内の演算装置や記憶装置を動作させることにより実現することができる。ここで実現される処理要求の移譲を行うデータ処理要求移譲プログラムは、通信回線を介して配布することも可能であるし、CD−ROM等の記録媒体に書き込んで配布することも可能である。
【0090】
[ディレクトリ分散型記憶装置の動作]
次に、図9及び図10を参照して、ディレクトリ分散型記憶装置の動作について説明する。なお、ここでは、ディレクトリ分散型記憶装置PEの木構造管理手段20において行われる、処理要求の移譲処理動作とページの分割処理について、詳細に説明を行うことにする。図9は、本発明のディレクトリ分散型記憶装置における処理要求の移譲処理動作を示すフローチャートである。図10は、本発明のディレクトリ分散型記憶装置におけるページの分割処理動作を示すフローチャートである。
【0091】
(移譲処理動作)
最初に、図9を参照(適宜図1参照)して、データの処理要求の移譲処理動作について説明する。
まず、ディレクトリ分散型記憶装置PEは、経路探索手段22によって、初期値として、親ページを“null”、子ページをルートページに設定する(ステップS1)。そして、ディレクトリ分散型記憶装置PEは、経路探索手段22によって、木構造情報TRを参照することで、要求のあった検索キーのページをアクセスする際に、さらに子ページへの降下が必要であるか否かを判定する(ステップS2)。
【0092】
ここで、降下が必要でない場合(ステップS2でNo)、そのページが要求のあった葉ページであるため、ディレクトリ分散型記憶装置PEは、データ操作手段10によって、当該葉ページへの処理を実行し(ステップS3)、動作を終了する。一方、降下が必要である場合(ステップS2でYes)、ディレクトリ分散型記憶装置PEは、移譲判定手段221によって、木構造情報TRを参照し、要求のあったページのポインタが自装置PEで管理されているページへのポインタであるか否かに基づいて、移譲が必要であるか否かを判定する(ステップS4)。
【0093】
ここで、移譲が必要な場合(ステップS4でYes)、ディレクトリ分散型記憶装置PEは、移譲手段222によって、移譲先の他のディレクトリ分散型記憶装置(図示せず)へ処理要求の移譲を要求し(移譲要求メッセージ送信)、動作を終了する。この段階で、移譲先への移譲処理が開始されたことになる。なお、処理要求の移譲を要求された他のディレクトリ分散型記憶装置は、後記するステップS5以降の動作を実行する。
一方、移譲が必要でない場合(ステップS4でNo)、ディレクトリ分散型記憶装置PEは、経路探索手段22からの指示に基づいてラッチ設定手段21により、子ページにラッチを設定する(ステップS5)。
【0094】
そして、ディレクトリ分散型記憶装置PEは、経路誤り判定手段223によって、処理対象の検索キーが当該ページに属するものであるか否かを判定することで、経路の誤りを判定する(ステップS6)。すなわち、経路誤り判定手段223が、検索キーの値が当該ページに設定されている先頭の検索キーの値以上で、終端検索キーの値未満であることを判定することで、経路の正誤を判定する。
ここで、経路に誤りがある場合(ステップS6で「誤」)、ディレクトリ分散型記憶装置PEは、経路再探索手段224によって、プロセス管理手段40に対してプロセスの再起動を要求することで、ステップS1から再度探索動作を行う。
一方、経路が正しい場合(ステップS6で「正」)、ディレクトリ分散型記憶装置PEは、経路探索手段22によって、対象となるページを子ページに降下させる。すなわち、経路探索手段22が、子ページを新たな親ページに設定し、孫ページを新たな子ページに設定する(ステップS7)。
【0095】
さらに、ディレクトリ分散型記憶装置PEは、経路探索手段22からの指示に基づいてラッチ設定手段21により、親ページのラッチを解除する(ステップS8)。
その後、ディレクトリ分散型記憶装置PEは、ステップS1に戻って、処理対象の葉ページに到達するまで動作を続ける。
【0096】
以上の動作によって、ディレクトリ分散型記憶装置PEは、処理対象のページが当該装置PEに存在しない場合、ネットワーク上で1回の移譲要求メッセージを送信だけで、他のディレクトリ分散型記憶装置に処理を移譲することができる。また、処理途中で他のプロセスの動作によるページの分割等が発生した場合でも、経路誤りを検出することができるため、正しい経路で目的の処理対象ページに到達することができる。
【0097】
(分割処理動作)
次に、図10を参照(適宜図1、図6〜図8参照)して、ページの分割処理動作について説明する。ここでは、インデックスページのエントリ数がエントリ制限情報ELで示される最大値を超過した以降の動作について説明する。
【0098】
まず、ディレクトリ分散型記憶装置PEは、ページ分割・追加手段232によって、対象のページ(インデックスページ)を分割する(ステップS20)。
そして、ディレクトリ分散型記憶装置PEは、境界値設定手段232aによって、ページ内に検索キーの境界値を設定する(ステップS21)。
【0099】
その後、ディレクトリ分散型記憶装置PEは、管理対象ページ判定手段232bによって、分割されたページのうちで、リモートポインタのみが設定されているページが存在するか否かを判定する(ステップS22)。ここで、リモートポインタのみが設定されているページが存在しない場合(ステップS22でNo)、ディレクトリ分散型記憶装置PEは、ポインタ設定手段232cによって、親ページにポインタが設定されていない、分割によって新たに生成されたページ(図6中、インデックスページP22〔右側ページ〕)のポインタを親ページに設定し(ステップS23)、動作を終了する。
【0100】
一方、リモートポインタのみが設定されているページが存在する場合(ステップS22でYes)、ディレクトリ分散型記憶装置PEは、管理対象ページ判定手段232bによって、当該ページへのポインタが親ページに設定されているか否かを判定する(ステップS24)。
【0101】
ここで、当該ページへのポインタが親ページに設定されていない場合(ステップS24でNo)、すなわち、分割によって新たに生成されたページ(図7中、インデックスページP22〔右側ページ〕)である場合、ディレクトリ分散型記憶装置PEは、ページ削除手段231によって、当該ページを削除する(ステップS25)。その後、ディレクトリ分散型記憶装置PEは、ポインタ設定手段232cによって、当該ページの先頭に設定されていたリモートポインタ(他のディレクトリ分散型記憶装置へのポインタ)を親ページに設定し(ステップS26)、動作を終了する。
【0102】
一方、当該ページへのポインタが親ページに設定されている場合(ステップS24でYes)、すなわち、分割の元となったページ(図8中、インデックスページP21〔左側ページ〕)である場合、ディレクトリ分散型記憶装置PEは、ページ削除手段231によって、当該ページを削除する(ステップS27)。なお、このとき、ページ削除手段231では、削除ビット設定手段231aによって、当該ページに削除ビットを設定し、削除ビット設定時点で起動されていたプロセスの終了を待って当該ページの削除を行う。
【0103】
そして、親ページに設定されていた当該ページへのローカルポインタのエントリの内容を、他のディレクトリ分散型記憶装置に蓄積されている当該ページのコピーページへのリモートポインタに変更する(ステップS28)。その後、ディレクトリ分散型記憶装置PEは、ポインタ設定手段232cによって、分割によって新たに生成されたページ(図8中、インデックスページP22〔右側ページ〕)のポインタ(ローカルポインタ)を親ページに設定し(ステップS29)、動作を終了する。
以上の動作によって、ディレクトリ分散型記憶装置PEは、インデックスページを分割する際に、各ページに検索キーの境界値を設定するため、当該ページを参照するプロセスが経路誤りを検出することが可能になる。
【0104】
≪第2実施形態≫
[ディレクトリ分散型記憶装置の構成]
次に、図11を参照して、第2実施形態に係るディレクトリ分散型記憶装置の構成について説明する。図11は、本発明の第2実施形態に係るディレクトリ分散型記憶装置の構成を示すブロック図である。
図11に示したディレクトリ分散型記憶装置PEは、ネットワークNに接続された他のディレクトリ分散型記憶装置(図示せず)と協働し、データベース等のデータを分散して記憶するものである。
【0105】
なお、ディレクトリ分散型記憶装置PEは、ページ分割・追加手段232Bを、図1で説明したディレクトリ分散型記憶装置PEのページ分割・追加手段232における管理対象ページ判定手段232bの機能を変更した管理対象ページ判定手段232Bbとし、新たにエントリ複製手段232dを付加して構成している。管理対象ページ判定手段232Bb及びエントリ複製手段232d以外の構成は、図1で説明したディレクトリ分散型記憶装置PEと同一の構成であるため、同一の符号を付し、説明を省略する。
【0106】
管理対象ページ判定手段232Bbは、ページを分割することにより生成された2つのページが、当該装置PEの管理対象のページであるか否かを判定するものである。なお、基本的には、管理対象ページ判定手段232Bbは、図1で説明した管理対象ページ判定手段232bと同一の機能を有しているが、図8で説明した第3の分割パターンにおける分割手法のみが異なっている。
この管理対象ページ判定手段232Bbは、分割された元のページを管理対象ページでないと判定したときは、後記するエントリ複製手段232dによって、分割により新たに生成されたページの内容を、分割された元のページに上書きした後に、ページ削除手段231によって、分割により新たに生成されたページを削除する点が異なっている。
【0107】
エントリ複製手段232dは、管理対象ページ判定手段232Bbによって指定された複製元のページの内容を、同じく指定された複製先のページに上書きするものである。
ここで、図12を参照(適宜図11参照)して、図8で説明した第3の分割パターンとの差異点について説明する。図12は、第3の分割パターンにおける分割後の処理を説明するための説明図である。
【0108】
図12(a)に示すように、第3の分割パターンにおいては、右側ページP22にはローカルポインタが含まれているが、左側ページP21にはローカルポインタが含まれていないため、左側ページP21を削除する必要がある。
このとき、ディレクトリ分散型記憶装置PEは、図12(b)に示すように、分割により新たに生成された右側ページ(インデックスページP22)の内容を、親ページ(インデックスページP)からポインタで指し示されている左側ページ(インデックスページP21)に上書きし、その後、右側ページ(インデックスページP22)を削除する。さらに、親ページ(インデックスページP)に設定されている元の左側ページへのローカルポインタのエントリKiを他のディレクトリ分散型記憶装置に蓄積されている元の左側ページのコピーページへのリモートポインタを設定し、残った子インデックスページの始端を表すエントリKjを新たに追加してコピー先の子ページ(インデックスページP22)へのリモートポインタを設定する。
【0109】
この手法によれば、分割直後は、インデックスページP22へのポインタが存在していないため、インデックスページP22へアクセスが発生していない。このため、図8で説明した分割手法では、ページを削除する際に分割前のページにアクセスしていたプロセスは再起動されることになるが、この手法では、ページを削除する際に分割前のページにアクセスしていたプロセスは、分割により検索キーが境界値を越えた場合にだけ再起動されるため、再起動される確率が2分の1となり、より効率的に動作させることができる。
【0110】
[ディレクトリ分散型記憶装置の動作]
次に、図13を参照(適宜図11及び図12参照)して、ディレクトリ分散型記憶装置の動作について説明する。図13は、本発明の第2実施形態に係るディレクトリ分散型記憶装置におけるページの分割処理動作を示すフローチャートである。なお、処理要求の移譲処理動作については、図9で説明した動作と同一であるため説明を省略する。
【0111】
(分割処理動作)
図13のステップS20〜S26は、図10と同一の動作であるため、同一の符号を付し、説明を省略する。
ディレクトリ分散型記憶装置PEは、分割したページへのポインタが親ページに設定されている場合(ステップS24でYes)、すなわち、分割の元となったページ(図12中、インデックスページP21〔左側ページ〕)である場合、エントリ複製手段232dによって、分割により新たに生成されたページ(図12中、インデックスページP22〔右側ページ〕)の内容(エントリ)を、分割の元となったページ(図12中、インデックスページP21〔左側ページ〕)に上書きする(ステップS30)。
【0112】
そして、ディレクトリ分散型記憶装置PEは、ページ削除手段231によって、インデックスページP22〔右側ページ〕を削除する(ステップS31)。
その後、ディレクトリ分散型記憶装置PEは、親ページに設定されていた分割の元となったページ(図12中、インデックスページP21〔左側ページ〕)へのローカルポインタのエントリの内容を、他のディレクトリ分散型記憶装置に蓄積されている当該ページのコピーページへのリモートポインタに設定しなおし(ステップS32)、分割の元となったページのローカルポインタを親ページに設定し(ステップS33)、動作を終了する。
【0113】
以上の動作によって、ディレクトリ分散型記憶装置PEは、インデックスページを分割する際に、各ページに検索キーの境界値を設定するため、当該ページを参照するプロセスが経路誤りを検出することが可能になる。また、プロセスの再起動の回数を減らすことができる。
【図面の簡単な説明】
【0114】
【図1】本発明のディレクトリ分散型記憶装置の構成を示すブロック図である。
【図2】木構造情報を構成するインデックスページの構造を示すデータ構造図である。
【図3】ディレクトリ分散型記憶装置間で行う処理の移譲手順を示す模式図である。
【図4】インデックスページの分割により境界値を設定する例を説明するための説明図であって、(a)は分割前、(b)は分割後のインデックスページの内容を示している。
【図5】インデックスページを分割した際の分割パターンを説明するための説明図である。
【図6】第1の分割パターンにおける分割後の処理を説明するための説明図である。
【図7】第2の分割パターンにおける分割後の処理を説明するための説明図である。
【図8】第3の分割パターンにおける分割後の処理を説明するための説明図である。
【図9】本発明のディレクトリ分散型記憶装置における処理要求の移譲処理動作を示すフローチャートである。
【図10】本発明のディレクトリ分散型記憶装置におけるページの分割処理動作を示すフローチャートである。
【図11】本発明の第2実施形態に係るディレクトリ分散型記憶装置の構成を示すブロック図である。
【図12】本発明の第2実施形態に係るディレクトリ分散型記憶装置において、第3の分割パターンにおける分割後の処理を説明するための説明図である。
【図13】本発明の第2実施形態に係るディレクトリ分散型記憶装置におけるページの分割処理動作を示すフローチャートである。
【図14】従来の分散データ格納システムにおけるディレクトリ構造の一例であるFat−Btree構造を示す図である。
【図15】従来の並列計算機における処理要求の移譲動作を示すフローチャートである。
【図16】計算機間で処理の移譲を伴わないラッチカップリングの動作例を示す模式図である。
【図17】計算機間で処理の移譲を伴うラッチカップリングの動作例を示す模式図である。
【符号の説明】
【0115】
PE,PE ディレクトリ分散型記憶装置
1 通信制御部
2 記憶部
3 制御部
10 データ操作手段
11 データ送受信手段
12 データ参照手段
13 データ更新手段
20 木構造管理手段
21 ラッチ設定手段(ロック設定手段)
22 経路探索手段
221 移譲判定手段
222 移譲手段
223 経路誤り判定手段
224 経路再探索手段(経路復旧手段)
23 木構造更新手段
231 ページ削除手段
231a 削除ビット設定手段
232 ページ分割・追加手段
232a 境界値設定手段
232b 管理対象ページ判定手段
232c ポインタ設定手段
232d エントリ複製手段
30 制御情報送受信手段
40 プロセス管理手段

【特許請求の範囲】
【請求項1】
データを検索するための検索キーと木構造を有するディレクトリ構造の下位のページへの参照先とを含んだ複数のページを木構造情報として記憶する記憶手段と、前記ページの更新に伴い前記木構造情報を更新する木構造更新手段と、前記木構造情報に基づいて、前記データまでの経路を前記ページのロックの設定と解除とを行いながら探索する経路探索手段とを備え、ネットワーク環境下で前記ディレクトリ構造を分散して管理するディレクトリ分散型記憶装置において、
前記経路探索手段が、
前記データまでの経路を探索する経路途中のページにおいて、経路誤りを判定する経路誤り判定手段と、
この経路誤り判定手段で経路誤りと判定された場合に、前記経路の復旧を行う経路復旧手段と、
前記ページ内の参照先に基づいて、前記データへの要求処理を他のディレクトリ分散型記憶装置へ移譲するか否かを判定する移譲判定手段と、
この移譲判定手段で前記他のディレクトリ分散型記憶装置へ前記処理要求を移譲すると判定した場合に、前記処理要求を前記他のディレクトリ分散型記憶装置へ送信する移譲手段と、を備えていることを特徴とするディレクトリ分散型記憶装置。
【請求項2】
データを検索するための検索キーと木構造を有するディレクトリ構造の下位のページへの参照先とを含んだ複数のページを木構造情報として記憶する記憶手段と、前記ページの更新に伴い前記木構造情報を更新する木構造更新手段と、前記木構造情報に基づいて、前記データまでの経路を前記ページのロックの設定と解除とを行いながら探索する経路探索手段とを備え、ネットワーク環境下で前記ディレクトリ構造を分散して管理するディレクトリ分散型記憶装置において、
前記木構造更新手段が、
前記ページ内の参照先の数が予め定めた制限値を超過して当該ページを分割する際に、分割されたページごとに、当該ページで管理する前記検索キーの境界値を設定する境界値設定手段を備え、
前記経路探索手段が、
前記データまでの経路を探索する経路途中のページにおいて、当該データの検索キーの値が、前記境界値設定手段で設定された境界値の範囲内であるか否かに基づいて、経路誤りを判定する経路誤り判定手段と、
この経路誤り判定手段で経路誤りと判定された場合に、再度上位のページから経路の探索を行う経路再探索手段と、
前記ページ内の参照先に基づいて、前記データへの要求処理を他のディレクトリ分散型記憶装置へ移譲するか否かを判定する移譲判定手段と、
この移譲判定手段で前記他のディレクトリ分散型記憶装置へ前記処理要求を移譲すると判定した場合に、前記処理要求を前記他のディレクトリ分散型記憶装置へ送信する移譲手段と、を備えていることを特徴とするディレクトリ分散型記憶装置。
【請求項3】
プロセスを管理するプロセス管理手段を備え、
前記木構造更新手段が、
前記ページを分割した際に、当該ディレクトリ分散型記憶装置以外の参照先のみからなるページを、当該ディレクトリ分散型記憶装置の管理対象外のページであると判定する管理対象ページ判定手段と、
この管理対象ページ判定手段で管理対象外のページであると判定したページを削除するページ削除手段とを備え、
前記ページ削除手段が、当該ページを参照するプロセスが存在しなくなった段階で、当該ページを削除することを特徴とする請求項2に記載のディレクトリ分散型記憶装置。
【請求項4】
前記木構造更新手段が、
前記ページを分割した際に、親ページに参照先が記述されている一方のページが当該ディレクトリ分散型記憶装置以外の参照先のみからなるページである場合に、分割された他方のページの内容を前記一方のページにコピーするエントリ複製手段を備え、
このエントリ複製手段によりコピーされた後に、前記ページ削除手段が、前記他方のページを削除することを特徴とする請求項3に記載のディレクトリ分散型記憶装置。
【請求項5】
データを検索するための検索キーと木構造を有するディレクトリ構造の下位のページへの参照先とを含んだ複数のページで構成されるディレクトリ構造を分散して管理するディレクトリ分散型記憶装置において、前記データへの処理要求を、ネットワークに接続された他のディレクトリ分散型記憶装置に移譲するために、コンピュータを、
前記ページ内の参照先の数が予め定めた制限値を超過して当該ページを分割する際に、分割されたページごとに、当該ページで管理する検索キーの境界値を設定する境界値設定手段、
前記データまでの経路を探索する経路において、上位のページにロックを設定し、下位ページへの参照先を取得した後に、前記ロックを解除し、下位のページにロックを設定する処理を繰り返すロック設定手段、
前記データまでの経路を探索する経路途中のページにおいて、当該データの検索キーの値が、前記境界値設定手段で設定された境界値の範囲内であるか否かに基づいて、経路誤りを判定する経路誤り判定手段、
この経路誤り判定手段で経路誤りと判定された場合に、再度上位のページから探索を行う経路再探索手段、
前記ページ内の参照先に基づいて、前記データへの要求処理を他のディレクトリ分散型記憶装置へ移譲するか否かを判定する移譲判定手段、
この移譲判定手段で前記他のディレクトリ分散型記憶装置へ前記処理要求を移譲すると判定した場合に、前記処理要求を前記他のディレクトリ分散型記憶装置へ送信する移譲手段、として機能させることを特徴とするデータ処理要求移譲プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2008−46700(P2008−46700A)
【公開日】平成20年2月28日(2008.2.28)
【国際特許分類】
【出願番号】特願2006−219201(P2006−219201)
【出願日】平成18年8月11日(2006.8.11)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り (1)i)2006年2月24日に社団法人電子情報通信学会の「第17回データ工学ワークショップ(DEWS2006)」のホームページ(http://www.ieice.org/iss/de/DEWS/DEWS2006/)において予稿集として発表(表題:「並列Btree構造Fat−Btreeにおけるリクエスト委譲コストを削減する並行性制御手法」、掲載アドレス:http://www.ieice.org/iss/de/DEWS/DEWS2006/doc/7C−o3.pdf) ii)社団法人電子情報通信学会が2006年3月3日に開催した「第17回データ工学ワークショップ(DEWS2006)」において発表 iii)2006年6月30日に社団法人電子情報通信学会の「第17回データ工学ワークショップ(DEWS2006)」のホームページ(http://www.ieice.org/iss/de/DEWS/DEWS2006/)において論文集として発表(表題:「並列Btree構造Fat−Btreeにおけるリクエスト委譲コストを削減する並行性制御手法」、掲載アドレス:http://www.ieice.org/iss/de/DEWS/DEWS2006/doc/7C−o3.pdf) (2)i)社団法人電子情報通信学会から2006年7月7日に発行された「電子情報通信学会技術研究報告(ISSN 0913−5685 信学技報Vol.106 No.150)」において発表 ii)社団法人電子情報通信学会が2006年7月14日に開催した「電子情報通信学会技術研究報告(データ工学)」において発表 (3)i)社団法人情報処理学会から2006年7月13日〜14日に発行された「情報処理学会研究報告(ISSN 0919−6072情処研報Vol.2006,No.78)」において発表 ii)社団法人情報処理学会が2006年7月14日に開催した「夏のデータベースワークショップ2006(DBWS2006)」において発表
【出願人】(304021417)国立大学法人東京工業大学 (1,821)
【出願人】(000004352)日本放送協会 (2,206)
【Fターム(参考)】