JP3777872B2 - 問合せ並列処理システム及びプログラムを記録した機械読み取り可能な記録媒体 - Google Patents
問合せ並列処理システム及びプログラムを記録した機械読み取り可能な記録媒体 Download PDFInfo
- Publication number
- JP3777872B2 JP3777872B2 JP13674299A JP13674299A JP3777872B2 JP 3777872 B2 JP3777872 B2 JP 3777872B2 JP 13674299 A JP13674299 A JP 13674299A JP 13674299 A JP13674299 A JP 13674299A JP 3777872 B2 JP3777872 B2 JP 3777872B2
- Authority
- JP
- Japan
- Prior art keywords
- query
- partial
- processing
- database
- computer
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 315
- 238000000034 method Methods 0.000 claims description 102
- 238000009826 distribution Methods 0.000 claims description 77
- 230000008569 process Effects 0.000 claims description 53
- 230000010354 integration Effects 0.000 claims description 52
- 238000004458 analytical method Methods 0.000 claims description 27
- 238000001514 detection method Methods 0.000 claims description 25
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 12
- 230000002776 aggregation Effects 0.000 description 9
- 238000004220 aggregation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000015654 memory Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002542 deteriorative effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、データベースに対するデータ検索,グループ化,集計演算などを記述した問合せ文を、複数の計算機ノードを用いて並列処理する技術に関し、特に、複数の計算機ノードの処理負荷を均衡化させることによってシステム全体の性能を向上させる問合せ並列処理システムに関する。
【0002】
【従来の技術】
データベースに対する問合せを並列に処理する方式は、過去に多くの研究者によって提案されてきた("Query Evaluation Techiniques for Large Databases", Goetz Graefe, ACM Computing Surveys, Vol. 25, No.2 June 1993 など) 。巨大なデータベースに対する問合せの処理は、二次記憶装置からのデータ読み込みがネックになる。このため、複数の二次記憶装置にデータベースを分割して格納し、並列に読み込んで処理する方式が基本的となっている。
【0003】
1つのデータベースに対し条件を指定して検索を行い該当レコードを取り出す処理を選択処理と呼ぶこととする。例えば、銀行の口座データベースに対し口座番号を指定して残高を照会したり、指紋データベースに対し指紋画像を与えて照合する処理が選択処理となる。データベースの選択処理は、データベースを複数の二次記憶装置に分割して格納することによって容易に並列化できる。この場合、各二次記憶装置に分割格納された各部分データベースを各計算機ノードから並列に読み込んで検索処理を行うことにより並列化する。選択処理では、インデックスなどのアクセスパスを用いることがあるが、部分データベース毎に独立にインデックスを作ることにより、インデックスを用いた選択処理を容易に並列化できる。これらの並列化の手法は商用のリレーショナルデータベースシステムにも取り入れられている。例えば、Oracleなどが挙げられる(「パーティショニング技術のVLDBへの適用」、電子情報通信学会 信学技報AI97−40,DE97−73、1997−12) 。
【0004】
データベース中のレコードを、ある属性(カラム)の値で分類することを分類処理と呼ぶこととする。例えば、銀行の口座データベース中のレコードを支店別に分類する処理である。また、レコード数を数えたり、あるカラムの平均値や最大値を算出するなどの処理を集計処理と呼び、レコード群を、あるカラムの値でソートする処理をソート処理と呼ぶ。
【0005】
これらの処理を並列化する技術が、特開平10−97544 号公報に記載されている。この技術では、データベースを複数の入出力サーバ配下の複数の二次記憶装置に格納しておき、複数の入出力サーバから並列にデータベース中のレコードを読み出す。読み出されたレコードは入出力サーバによって分類され、複数の集計処理サーバに分配される。集計処理サーバでは各入出力サーバからのレコードに集計処理を施して部分集計結果とし、最後に、部分集計結果をマージする。ここまでの処理は複数の入出力サーバ、複数の集計処理サーバによって並列に行われる。
【0006】
このように、データベースに対する問合せの並列処理は、データベースを複数の部分データベースに分割して複数の二次記憶装置に分散格納し、複数の計算機ノードが各二次記憶装置から並列にデータを読み込んで処理するということを基本にしている。しかし、データベースを二次記憶装置に分散格納して各部分データベースに対し並列に検索処理を行う場合、部分データベースを各二次記憶装置に均等に格納したとしても、それらを読み込んで処理を行う各計算機ノードの負荷は均等にならず、それによって、システム全体の処理効率を悪化させてしまう場合がある。
【0007】
このように負荷の不均衡がある場合、共有メモリ型の並列計算機ならば、CPU 数よりも多くのプロセスを生成しておけばシステム全体の処理効率悪化を防げる。なぜなら、プロセス毎の負荷が不均衡になってもOSのスケジューリングによってプロセスが切り替わり、CPU が遊ぶことなく問合せの処理を進められるからである。しかし、複数の計算機ノードを用いた並列計算機では、プロセスを計算機ノード間で移動できない。システム全体の処理は、最終的には負荷の最も重い計算機ノードの処理終了を待ち合わせるため、負荷の軽かった計算機ノードが遊んでしまい、システム全体の処理効率が悪化する。
【0008】
一方、特開平10−301822号公報には、次のような技術が記載されている。データベースに対する問合せを解析してアクセスパスを生成し、更に、アクセスパスを複数の部分アクセスパスに分解する。その後、同時に実行可能な部分アクセスパス群毎に、その群に属する部分アクセスパスの内のいくつかを処理コストに従って1つのグループにまとめる。ここで、処理コストとは、表の行数,列の分布状況,インデックスのヒット率等の統計情報から算出したものであり、部分アクセスパスの実行に要する負荷の度合を数値化したものである。また、部分アクセスパス群に属するいくつかの部分アクセスパスを処理コストに従って1つのグループにまとめる際には、そのグループの属する部分アクセスパスの処理コストの合計値が、上記部分アクセスパス群の最大処理コストを越えないようにする。
【0009】
【発明が解決しようとする課題】
上記した特開平10−301822号公報に記載されている技術によれば、同時に実行可能な部分アクセスパス群の属する各グループの処理コストをほぼ等しくすることができる。従って、複数の計算機ノードに、グループ単位で処理を割り当てるようにすることにより、各計算機ノードの負荷をある程度は均衡化することができる。しかしながら、特開平10−301822号公報に記載されている技術は、統計情報という静的な情報を用いているため、各計算機ノードの動的な負荷の変動には対処できず、その結果、システム全体の処理効率を十分に高いものにすることができないという問題があった。
【0010】
そこで、本発明の目的は、複数の計算機ノードから構成されるクラスタシステム上で問合せを並列処理する際、各計算機ノードにおける処理負荷を動的に均衡化させることにより、システム全体の処理効率を高めることにある。
【0011】
【課題を解決するための手段】
本発明の問合せ並列処理システムは、問合せ処理用の計算機ノードで、問合せを解析して部分問合せに分解し、複数の部分問合せ処理用の計算機ノードに部分問合せを配布して並列処理を行わせ、返却された部分問合せの結果をマージして問合せの結果とする。この構成は、問合せを並列処理するための基本構成である。
【0012】
本発明の問合せ並列処理システムでは、部分問合せを部分問合せ処理用の計算機ノードに配布する際、各計算機ノードへの配布数を随時決めて配布する。この時、各計算機ノードの負荷を等しく保つために、例えば、各計算機ノードで処理中になっている部分問合せの数が常に等しくなるように配布数を決める。配布数を越えて余った未配布の部分問合せは、後に、何れかの計算機ノードが結果を返してきた時などに、その計算機ノードに処理させることになる。つまり、結果を返してきた計算機ノードに対して、残っている部分問合せを処理させ、計算機ノードが遊ばないようにする。以上が本発明における負荷均衡化の基本的な考え方である。
【0013】
また、本発明の問合せ並列処理システムでは、問合せ処理用の計算機ノードを複数化し、その計算機ノードがボトルネックになることを防ぐ。この場合、複数の計算機ノードで別々の問合せを受け、独立して各問合せの部分問合せ配布処理を行う。この時の配布ストラテジは、単独の計算機ノードで問合せを受け付ける場合と全く同様である。
【0014】
また、部分問合せ処理用の計算機ノードの障害時には、その計算機ノードを検出し、その計算機ノードに配布すべき部分問合せを別の部分問合せ処理用の計算機ノードに配布し処理させる。これにより、部分問合せ処理用の計算機ノードに障害が発生しても、全ての部分問合せを処理し、問合せ結果を完全なものにすることができる。
【0015】
無共有型クラスタシステムでは、各部分問合せ処理用の計算機ノードは自分に接続された二次記憶装置にしかアクセスできない。従って、その二次記憶装置に格納された部分データベースしかアクセスできない。そこで、各計算機ノードと、それがアクセスできる部分データベースの対応関係を管理しておく。これにより、各計算機ノードに対し、そのノードが処理可能な部分問合せを配布することができる。
【0016】
無共有型クラスタシステムでは、部分データベースの原本と複製を別々の計算機ノード配下の二次記憶装置に格納する。これによって、同じ部分データベースに対して複数の計算機ノードからアクセス可能となる。つまり、同じ部分問合せを複数の計算機ノードで処理可能となる。このことを利用すると、負荷の軽い側の計算機ノードに部分問合せを処理させることが可能となり、これによって計算機ノードの負荷均衡化を行う。また、これと同時に、計算機ノードの障害時にも、そのノードに配布するべき問合せを別の計算機ノードに処理させることが可能となる。
【0017】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0018】
本発明の第1の実施の形態の例について説明する。第1の実施の形態は、複数の計算機ノードが二次記憶装置を共有する共有型クラスタシステムの上で、二次記憶装置に記録されたデータベースに対する問合せを並列に処理する問合せ並列処理システムに関するもので、その構成例を図1に示す。
【0019】
図1を参照すると、問合せ処理用の複数の計算機ノード1−1〜1−m及び部分問合せ処理用の複数の計算機ノード2−1〜2−nが通信網4で接続され、計算機ノード間でデータの受け渡しができる。通信網4としては、Ether やATM のHUB やスイッチ、その他、専用結合ネットワークを利用することができる。
【0020】
問合せ処理用の計算機ノード1−1〜1−mは、外部通信網5に接続されており、外部通信網5を介して問合せを受け取ることができる。外部通信網5としては、LAN やWAN などを利用する。問合せとしては、データの集合であるデータベースから、ある条件を与えて一部のデータを引き出すような要求や、データの値の平均値や最大値などの集計を行う要求、あるいは、あるデータの値に着目してグループ化したりソートを行う要求がある。これら要求は、問合せ言語SQL などを使って記述されて渡されたり、あるいは専用のキーワードのみを組み合わせて渡されたりする。
【0021】
また、部分問合せ処理用の計算機ノード2−1〜2−nは、二次記憶装置3−1〜3−jを共有する記憶装置共有網6に接続されており、これらのいずれの計算機ノード2−1〜2−nも二次記憶装置3−1〜3−jにアクセスすることができる。記憶装置共有網6としては、SCSIやFibreChanel のHUB やスイッチ、その他、周辺装置用の専用ネットワークなどが用いられる。問合せの対象となるデータベースは、複数の部分データベース31に分割され、複数の二次記憶装置3−1〜3−jに分散して格納される。データベースの分割方法は、ラウンドロビン式分散配置、ハッシュ分割、キー値分割等の方法がとられる。
【0022】
問合せ処理用の計算機ノード1−1〜1−mは、それぞれ問合せ解析手段11と、障害検出手段12と、配布数決定手段13と、問合せ統合処理手段14と、記録媒体K1とを備えている。
【0023】
問合せ解析手段11は、外部通信網5を介して送られてくる自計算機ノード宛の問合せを解析し、この問合せを処理するための処理手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せ(部分データベースに対する検索要求)を含む処理手順を導出する機能を有する。
【0024】
障害検出手段12は、部分問合せ処理用の計算機ノード2−1〜2−nに障害が発生したことを検出する機能を有する。
【0025】
配布数決定手段13は、計算機ノード2−1〜2−nに配布する部分問合せの数を各計算機ノード2−1〜2−nの負荷に応じて動的に決定する機能を有する。
【0026】
問合せ統合処理手段14は、問合せ解析手段11で導出した処理手順に従って問合せの処理を進め、各計算機ノード2−1〜2−nに対し部分問合せを配布する際には、配布数決定手段13を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する機能を有する。
【0027】
計算機ノード1−1〜1−mが備えている記録媒体K1は、ディスク,半導体メモリ,その他の記録媒体であり、計算機ノード1−1〜1−mを問合せ処理用の計算機ノードとして機能させるためのプログラムが記録されている。このプログラムは、計算機ノード1−1〜1−mによって読み取られ、計算機ノード1−1〜1−mの動作を制御することで、計算機ノード1−1〜1−m上に、問合せ解析手段11,障害検出手段12,配布数決定手段13, 問合せ統合処理手段14を実現する。
【0028】
部分問合せ処理用の計算機ノード2−1〜2−nは、それぞれ部分問合せ処理手段21と、記録媒体K2とを備えている。
【0029】
部分問合せ処理手段21は、問合せ処理用の計算機ノード1−1〜1−mから配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す機能を有する。
【0030】
計算機ノード2−1〜2−nが備えている記録媒体K2は、ディスク,半導体メモリ,その他の記録媒体であり、計算機ノード2−1〜2−nを部分問合せ処理用の計算機ノードとして機能させるためのプログラムが記録されている。このプログラムは、計算機ノード2−1〜2−nによって読み取られ、計算機ノード2−1〜2−nの動作を制御することで、計算機ノード2−1〜2−n上に部分問合せ処理手段21を実現する。
【0031】
次に、本実施の形態の動作について説明する。
【0032】
外部通信網5に接続される計算機ノード1−k(1≦k≦m)で動作する問合せ解析手段11は、外部通信網5を介して投入された自計算機ノード宛の問合せを受け付けると、図2の流れ図に示すように、その意味を解析し、処理対象となるデータベースに対する処理ステップを含む、問合せの結果を求めるための処理手順を導出する(A1)。例えば、図3(a)に示すような問合せに対し同図(b)に示すような複数のステップから構成されるツリー状の処理手順が求められる。この例の場合、処理対象となるデータベースが2個であるので、データベースに対する処理ステップが2個含まれる。同図(b)はあくまで一例であり、A1で導出される処理手順は、問合せに応じたものになる。例えば、データベース1,2から取り出したデータを結合し、グループ化する場合には、同図(b)に示したソート処理の代わりにグループ化処理を行う処理手順が導出される。
【0033】
次に、問合せ解析手段11は、各データベースに対する処理ステップを、そのデータベースを構成する各部分データベースに対する処理ステップ(部分問合せ)に分割すると共に、同一データベースに対する部分問合せの集合毎に、部分問合せの結果をマージする処理ステップを追加する(A2)。ここで、1つのデータベースに対する部分問合せの集合を部分問合せのセットと呼ぶこととする。処理対象となるデータベースが複数あった場合、各データベースについて部分問合せのセットが1つずつ作成される。例えば、図3(b)に示すような処理手順から同図(c)のような処理手順が作成される。この例では、1つの問合せで2つのデータベースを対象とするため、部分問合せの組が2セット作られている。また、1つの部分問合せのセットに含まれる部分問合せの数は、部分問合せがデータベースを構成する各データベース毎に作成されることから、対応するデータベースを構成する部分データベースの数と同じになる。
【0034】
問合せ解析手段11において、問合せに対する処理手順が導出されると、問合せ統合処理手段14は、図4の流れ図に示すように、問合せ解析手段11から処理手順を入手して保存し、その処理手順中に部分問合せのセットが存在するか否かを判断する(B1,B2)。問合せ解析手段11から処理手順を入手した時点においては、部分問合せのセットが存在し、B2の判断結果がyesとなるので、問合せ統合処理手段14は、B3の処理を行う。
【0035】
B3において、問合せ統合処理手段14は、処理手順に含まれている部分問合せのセット間の依存関係を解析し、配布可能な部分問合せを認識する。例えば、2つの部分問合せのセットが存在し、両者が処理の依存関係のない独立なセットになっている場合は、2つのセットに含まれる全ての部分問合せを配布可能な部分問合せとして認識する。また、例えば、2つの部分問合せのセットS1,S2が存在し、セットS2の処理にはセットS1の処理結果が必要になるという依存関係が存在する場合には、セットS1に含まれる部分問合せのみを配布可能な部分問合せとして認識する。
【0036】
その後、問合せ統合処理手段14は、部分問合せ処理用の計算機ノード2−1〜2−nの内の、ノード番号「0」が付与されている計算機ノードを部分問合せの配布対象の計算機ノードとする(B4)。尚、本実施の形態では、計算機ノード2−1〜2−nにそれぞれノード番号「0」〜「n−1」が付与されているものとする。
【0037】
次に、問合せ統合処理手段14は、配布数決定手段13を用いてノード番号「0」の計算機ノード2−1への部分問合せの配布数を決定する(B6)。その際、各計算機ノード2−1〜2−nで処理中となる部分問合せの数が計算機ノード間で等しくなるように配布数を決定する。
【0038】
このB6の処理を詳細に説明する。問合せ統合処理手段14は、計算機ノード2−1への部分問合せの配布数を決定する際、配布数決定手段13に対して配布対象にしている計算機ノード2−1のノード番号「0」を渡す。
【0039】
配布数決定手段13は、問合せ統合処理手段14からノード番号「0」が渡されると(図5,C1)、進捗管理表を参照し、計算機ノード2−1から結果が返却されていない部分問合せの数(結果未返却数)を取得する(C2)。
【0040】
進捗管理表は、各計算機ノード2−1〜2−nの結果未返却数および各計算機ノード2−1〜2−nから結果が返却されていない配布済みの部分問合せを管理するものであり、例えば、図6に示す構成を有する。この図6に示す進捗管理表には、部分問合せ処理用の計算機ノード2−1〜2−nのノード番号「0」〜「n−1」に対応付けて、計算機ノード2−1〜2−nの結果未返却数と、計算機ノード2−1〜2−nから結果が返却されていない部分問合せのIDとが登録されている。尚、結果返却数,部分問合せIDは、問合せ統合処理手段14によって変更されるものである。
【0041】
C2において、計算機ノード2−1の結果未返却数を取得すると、配布数決定手段13は、「結果未返却数<目標配布数」なる条件が満たされているか否かを判断する(C3)。ここで、目標配布数は、各計算機ノード2−1〜2−nで処理中の、計算機ノード1−kからの部分問合せの個数を所定の個数に揃えるために計算機ノード1−kにおいて設定されている値であり、部分問合せの個数を例えば2個に揃える場合には、目標配布数は「2」となる。そして、C3において条件が満たされていると判断した場合(判断結果がyes)は、「目標配布数−結果未返却数」なる演算を行って配布数を求め、求めた配布数を問合せ統合処理手段14に通知する(C4)。これに対して、条件が満たされていないと判断した場合(C3がno)は、配布数=「0」を問合せ統合処理手段14に通知する(C5)。問合せ統合処理手段14は、配布数決定手段13から配布数が通知されると、その値を計算機ノード2−1に対する部分問合せの配布数と決定する。以上がB6で行う処理である。
【0042】
そして、B6で決定した計算機ノード2−1に対する部分問合せの配布数が「0」よりも大きく、且つ未配布の配布可能な部分問合せが存在する場合(B7,B8が共にyes)は、TCP,UDP/IPなどの汎用的な通信プロトコル、あるいは各種専用通信プロトコルを利用して、未配布の配布可能な部分問合せの内の1つを計算機ノード2−1へ配布すると共に、上記配布した部分問合せを配布可能と認識している部分問合せから除外し(B10)、更に、配布数を−1すると共に進捗管理表中の計算機ノード2−1についての管理情報を更新する(B11)。例えば、進捗管理表が図6に示す構成を有する場合は、ノード番号「0」に対応付けて登録されている計算機ノード2−1の結果未返却数を+1すると共に、今回計算機ノード2−1に配布した部分問合せのIDをノード番号「0」に対応付けて登録する。問合せ統合処理手段14は、B6で決定した数の部分問合せを計算機ノード2−1に配布するか、或いは未配布の部分問合せが存在しなくまるまで(B7がnoとなるか、或いはB8がnoとなるまで)、上記した処理B7〜B11を繰り返し行う。
【0043】
そして、B7或いはB8がnoとなると、問合せ統合処理手段14は、ノード番号を+1し、計算機ノード2−2を部分問合せの配布対象の計算機ノードにする(B9)。以下、問合せ対象統合処理手段14は、「ノード番号<ノード数」となるまで(B5がnoとなるまで)、上記した処理B5〜B11を繰り返し行う。そして、B5の判断結果がnoとなると、問合せ統合処理手段14は、待ち状態となる。以上の処理により、計算機ノード1−kから各計算機ノード2−1〜2−nへ、目標配布数によって示される個数の部分問合せが配布される。但し、配布可能な部分問合せの数が、「目標配布数×計算機ノード2−1〜2−nの台数」よりも少ない場合は、計算機ノード2−1〜2−nの内の、一部の計算機ノードのみに目標配布数によって示される個数の部分問合せが配布されることになる。
【0044】
一方、計算機ノード2−1〜2−n内の部分問合せ処理手段21は、計算機ノード1−kから部分問合せが送られてくると、その部分問合せによって指示された部分データベース31から、部分問合せによって指定された条件を満たすデータを取り出し、取り出したデータを問合せ元の計算機ノード1−kに返却する。その際、処理した部分問合せのID及び自計算機ノードのノード番号も併せて返却する。
【0045】
計算機ノード1−k内の問合せ統合処理手段14は、計算機ノード2−i(1≦i≦n)から部分問合せの結果,部分問合せのID及びノード番号が返却されると(図4,B13)、今回返却された結果により、結果を全て入手したことになる部分問合せのセットが存在するか否かを調べる(B14)。
【0046】
そして、そのような部分問合せのセットが存在しないと判断した場合(B14がno)は、結果を返却した計算機ノード2−iのノード番号を取得し、配布数決定手段13により上記計算機ノード2−iへの部分問合せの配布数を決定する(B16, B17)。このB17の処理は、B6と同様の処理である。
【0047】
計算機ノード2−iへの部分問合せの配布数を決定すると、問合せ統合処理手段14は、B17で決定した配布数の部分問合せを計算機ノード2−iに配布するか、或いは未配布の配布可能な部分問合せが存在しなくなるまで(B18がnoとなるか、或いはB19がnoとなるまで)、部分問合せを計算機ノード2−iに配布して配布した部分問合せを配布可能と認識している部分問合せから除外する処理(B20)と、配布数を−1し進捗管理表を更新する処理(B21)を繰り返し行う。ここで、例えば、進捗管理表が図6に示す構成を有する場合には、計算機ノード2−iのノード番号「i−1」に対応付けて登録されている結果未返却数を−1する処理およびノード番号「i−1」に対応付けて登録されている部分問合せのIDの内の、計算機2−iから返却されたIDを削除する処理を行う。B18或いはB19の判断結果がnoとなった場合は、問合せ統合処理手段14は待ち状態になる。
【0048】
また、B14において、今回返却された結果により、結果を全て入手したことになる部分問合せのセットが存在すると判断した場合(判断結果がyes)は、保存してある処理手順から、結果を全て入手した部分問合せのセットを除去し(B15)、その後、B2の処理を行う。
【0049】
そして、B2において、保存してある処理手順中に部分問合せのセットが存在すると判断した場合(判断結果がyes)は、B3の処理を行い、部分問合せのセットが存在しないと判断した場合(判断結果がno)は、部分問合せよりルート側の処理をルートに向かって順次行い、問合せに対する結果を外部通信網5を介して問合せ元に返却する(B12)。例えば、B1で入手した処理手順が図3(c)に示すものである場合は、図7に示すように、2つの部分問合せのセットについて結果を全て入手したら、各部分問合せのセットについて結果をマージする処理を行い、更に、マージ結果を結合する処理,結合結果をソートする処理を順次行う。尚、本実施の形態では、部分問合せの結果を全て入手してからマージを行うようにしたが、結果が返却される毎に1つずつマージしていく方法もある。例えば、平均値や合計値などを、問合せに対する結果として求める場合、部分問合せの結果が戻る度にセット毎に結果を足し込んでいく。これにより、処理手順の各ステップをパイプライン的に処理していくことになる。
【0050】
以上のように、問合せ統合処理手段14は、問合せ解析手段11から処理手順を入手した場合(図4,B1)、予め定められている目標配布数の部分問合せを各計算機ノード2−1〜2−nに配布し(B5〜B11)、残った部分問合せは、未配布としておく。未配布となった部分問合せは、後に、部分問合せの結果を早く返却してきた計算機ノードに投げる(B16〜B21)。つまり、部分問合せの処理が早く終わって負荷の軽くなった計算機ノードに未配布の部分問合せを配布することになる。
【0051】
以上によって各計算機ノード2−1〜2−nで処理中の部分問合せの個数は、ある一定個数以下に保たれる。従って、多数の部分問合せが発生するような状況では、各計算機ノードで処理中の部分問合せの個数は、常にある一定個数に保たれる。これによって各計算機ノードの負荷が均衡化される。
【0052】
次に、各計算機ノード2−1〜2−nで独立に動作する部分問合せ処理手段21の実施例を図8に示す。図8(a)に示す実施例では、配布された部分問合せを溜めておくキューを持ち、そこから1つずつ部分問合せ処理部に取り出して順番に処理する。処理された部分問合せの結果は、部分問合せ処理部から配布元の計算機ノードに返却する。
【0053】
これに対し、図8(b)は、複数の部分問合せを多重的に処理する実施例を示す。マルチスレッドもしくは、マルチプロセスを利用することにより、部分問合せ処理部を複数同時に動作させ、配布された各部分問合せを各部分問合せ処理部に割り付ける。各部分問合せ処理部は、計算機ノードのOSのスケジューリングに従い、多重的に動作する。例えば、部分問合せ処理部が、部分データベースを一定サイズのブロック単位で二次記憶装置3−1〜3−jから読み出す処理と、読み出したブロックのデータに対し検索・演算を施す処理で構成される場合、複数の部分問合せ処理部は、互いに二次記憶装置3−1〜3−jの入出力処理と計算機ノードにおけるCPU 処理とが時間的に重ねられて処理される。
【0054】
部分問合せ処理手段21は、図8(a)におけるキューを図8(b)に組み合わせたものも考えられる。
【0055】
次に、部分問合せ処理用の計算機ノード2−1〜2−nに障害が発生した場合の動作を説明する。
【0056】
問合せ処理用の計算機ノード1−k内の障害検出手段12は、部分問合せ処理用の計算機ノード2−1〜2−nに障害が発生したことを検出するために、図9に流れ図に示すように、各計算機ノード2−1〜2−nの状態を監視している(D1)。この監視は、例えば、通信網4を介して各計算機ノード2−1〜2−nと定期的に小さなデータを交換することにより行う。つまり、データ交換を正常に行うことができた場合は、障害が発生していないと判断し、データ交換が不能になった場合は、障害が発生していると判断する。また、計算機ノード2−1〜2−nにハードウェアによって構成される専用の障害診断機構を設け、障害が発生した場合、計算機2−1〜2−nの障害診断機構が通信網4を介して障害発生を計算機ノード1−1〜1−nに通知するようにしても良い。
【0057】
計算機ノード1−k内の障害検出手段12は、例えば、計算機ノード2−1に障害が発生したことを検出すると、先ず、計算機ノード2−1のノード番号「0」を入手する(D2)。その後、障害検出手段12は、進捗管理表からノード番号「0」の計算機ノード2−1に配布済みの部分問合せであって、結果が返却されていない部分問合せのIDを取得し(D3)、更に、進捗管理表から障害の発生した計算機ノードのノード番号「0」の行を削除し、計算機ノード2−1を部分問合せの配布対象から除外する(D4)。例えば、進捗管理表の内容が図6に示すものであった場合、障害検出手段12は、部分問合せのIDとして「ID1,ID2」を取得し(D3)、進捗管理表の第1行目を削除する(D4)。その後、障害検出手段13は、問合せ統合処理手段14に対してD3で取得した部分問合せのIDを通知する(D5)。尚、図9の流れ図では、進捗管理表から障害の発生した計算機ノードのノード番号の行を削除することにより、障害の発生した計算機ノードを部分問合せの配布対象から除外するようにしたが、除外を示すマークを付けるような方法をとることもできる。
【0058】
問合せ統合処理手段14は、障害検出手段12から部分問合せのIDが通知されると、その部分問合せを未配布の部分問合せとして認識する。このように、障害の発生した計算機ノードに配布済みの部分問合せであって、結果が返却されていない部分問合せを未配布の部分問合せとして認識することにより、図4のB20においてそれらが障害の発生していない部分問合せ処理用の計算機ノードの何れかに配布される。二次記憶装置3−1〜3−jが記憶装置共有網6で接続された共有型クラスタシステムでは、各計算機ノード2−1〜2−nは、記憶装置共有網6を介して何れの部分データベース31にもアクセス可能なので、ある計算機ノードに配布することになっていた部分問合せを別の計算機ノードでも処理できる。従って、障害の起きている計算機ノードに配布している部分問合せを他の正常な計算機ノードに配布することによって、全ての部分問合せを処理することができる。
【0059】
次に、本発明の第2の実施の形態の例について説明する。第2の実施の形態は、複数の計算機ノードそれぞれにその計算機ノードだけがアクセスできる二次記憶装置が接続された無共有型クラスタシステムの上で、二次記憶装置に記録されたデータベースに対する問合せを並列に処理する問合せ並列処理システムに関するもので、その構成例を図10に示す。
【0060】
本実施の形態と図1に示した第1の実施の形態との相違点は、計算機ノード1−1〜1−mの代わりに計算機ノード10−1〜10−mを備えた点と、記憶装置共有網がなく各計算機ノード2−1〜2−nのそれぞれに二次記憶装置30−1〜30−nが直接接続されている点と、記録媒体K1の代わりに記録媒体K3を備えている点である。
【0061】
問合せの対象となるデータベースは、複数の部分データベース31に分割され、複数の二次記憶装置30−1〜30−nに分散して格納される。更に、各部分データベースの複製が、原本と異なる二次記憶装置に分散して格納される。
【0062】
計算機ノード10−1〜10−mは、問合せ統合処理手段14の代わりに問合せ統合処理手段14aを備えている点と、格納状況管理手段15を備えている点が図1に示した計算機ノード1−1〜1−mと相違している。
【0063】
格納状況管理手段15は、部分問合せ処理用の計算機ノード2−1〜2−nがアクセス可能な部分データベースのIDを管理し、問合せ統合処理手段14aから計算機ノード2−1〜2−nのノード番号が通知された場合、通知されたノード番号の計算機ノードがアクセス可能な部分データベースのIDのリストを返却する機能を有する。各計算機ノード2−1〜2−nがアクセス可能な部分データベース31のIDの管理は、例えば、図11に示すような格納状況管理表を使用して行う。格納状況管理表には、計算機ノード2−1〜2−nのノード番号「0」〜「n−1」に対応付けてそのノード番号の計算機ノードがアクセス可能な部分データベースのIDが登録されている。図11の例は、ノード番号「0」の計算機ノード2−1は、ID「A−0,A−4,A−8,B−1,B−5,…」によって示される部分データベースの原本と、ID「A−2,A−6,A−10,B−0,B−4,…」によって示される部分データベースの複製をアクセスできること示している。この複製は、ノード番号「1」の計算機ノード2−2がアクセスできる部分データベースの原本の複製である。また、部分データベースのIDは、A,B等のデータベースのIDと、その中での部分データベースの順番とを組み合わせたものになっている。
【0064】
問合せ統合処理手段14aは、図1に示した問合せ統合処理手段14が備えている機能に加え、格納状況管理手段15に部分問合せ処理用の計算機ノードのノード番号を通知する機能や、この通知に応答して格納状況管理手段15から返却された部分データベースのIDのリストに基づいて配布する部分問合せを決定する機能を備えている。
【0065】
記録媒体K3は、ディスク,半導体メモリ,その他の記録媒体であり、計算機ノード10−1〜10−mを問合せ処理用の計算機ノードとして機能させるためのプログラムが記録されている。このプログラムは、計算機ノード10−1〜10−mによって読み取られ、計算機ノード10−1〜10−mの動作を制御することで、計算機ノード10−1〜10−m上に、問合せ解析手段11,障害検出手段12,配布数決定手段13,問合せ統合処理手段14a,格納状況管理手段15を実現する。
【0066】
図12は、問合せ統合処理手段14aで行われる処理の内の、図1の問合せ統合処理手段14で行われる処理と異なる部分のみを示した流れ図であり、ステップB7,B8の間およびステップB18,B19の間でそれぞれステップE1,E2を行う点、およびステップB10,B20の代わりにステップE3,E4を行う点が図4に示した処理と異なっている。また、図13は格納状況管理手段15の処理例を示す流れ図である。以下、各図を参照して本実施の形態の動作を説明する。
【0067】
問合せ処理用の計算機ノード10−k内の問合せ解析手段11は、外部通信網5を介して自計算機ノード宛の問合せを受け付けると、図2のA1,A2に示す処理を行い、図3(c)に示すような処理手順を導出する。
【0068】
問合せ統合処理手段14aは、問合せ解析手段11が処理手順を導出すると、図4のB1〜B7と同様の処理を行い、ノード番号「0」の計算機ノード2−1へ配布する部分問合せの数を決定する。その後、問合せ統合処理手段14aは、図12の流れ図に示すように、格納状況管理手段15を利用して計算機ノード2−1へ配布する部分問い合わせを1個決定する(E1)。このE1の処理を詳しく説明すると、次のようになる。
【0069】
問合せ統合処理手段14aは、部分問合せの配布対象にしている計算機ノード2−1のノード番号「0」を格納状況管理手段15に通知する。
【0070】
ノード番号「0」が通知されると、格納状況管理手段15は、図13に示すように格納状況管理表を参照し、ノード番号「0」の計算機ノード2−1がアクセス可能な部分データベースのIDのリストを取得し(F1)、取得したリストを問合せ統合処理手段14aに返却する(F2)。
【0071】
問合せ統合処理手段14aは、リストが返却されると、配布可能と認識している部分問合せであって、且つ上記リストにIDが登録されている部分データベースに対する部分問合せの内の1つを選択し、それを配布する部分問合せとする。尚、そのような部分問合せが存在しない場合は、配布可能な部分問合せがないと判断する。以上が、E1で行う処理の詳細である。
【0072】
E1で配布する部分問合せが決定され、B8の判断結果がyesとなると、問合せ統合処理手段14aは、E1で決定した部分問合せを計算機ノード2−1に配布すると共に、配布した部分問合せを配布可能と認識している部分問合せから除外する(E3)。その後、図4に示したB11と同様の処理が行われる。
【0073】
また、部分問合せ処理用の計算機ノード2−iから部分問合せの結果が送られてきた場合は、図4のB13〜B18と同様の処理を行い、計算機ノード2−iに配布する部分問合せの数を決定する。その後、問合せ統合処理手段14aは、格納状況管理手段15を使用して計算機ノード2−iに配布する部分問合せを1個決定し(E2)、その部分問合せを計算機ノード2−iに配布すると共に、配布した部分問合せを配布可能と認識している部分問合せから除外する(E4)。その後、図4に示したB21と同様の処理が行われる。
【0074】
次に、障害検出手段12によって計算機ノード2−iに障害が発生したことが検出された時の動作を説明する。
【0075】
障害検出手段12は、図9の流れ図に示すように、計算機ノード2−iに障害が発生したことを検出すると、計算機ノード2−iに配布済みで、且つ結果が返却されていない部分問合せのIDを進捗管理表から取得し、それを問合せ統合処理手段14aに通知する。問合せ統合処理手段14aは、IDが通知された部分問合せを未配布の部分問合せとして認識する。このように、障害の発生した計算機ノードに配布済みの部分問合せであって、結果が返却されていない部分問合せを未配布の部分問合せとして認識することにより、図12のE4において上記した部分問合せが、正常に動作している部分問合せ処理用の計算機ノードであって、且つ上記した部分問合せに対応する部分データベースをアクセス可能な計算機ノードに配布される。
【0076】
【発明の効果】
以上説明したように、本発明の問合せ並列処理システムは、複数の部分問合せ処理用の計算機ノードから構成されるクラスタシステム上で問合せを並列処理する際、各計算機ノードの負荷に応じて動的に配布すべき部分問合せの数を決定するようにしているので、各計算機ノードの負荷を動的に均衡化させることができる。その結果、問合せ並列処理システム全体の処理効率を高め、性能改善を図ることが可能になる。
【0077】
また、本発明の問合せ並列処理システムは、部分問合せ処理用の計算機ノードに障害が発生した場合、障害が発生した計算機以外の計算機ノードについて、その負荷に応じて動的に配布すべき部分問合せの数を決定するようにしているので、部分問合せ処理用の計算機ノードに障害が発生した場合であっても、問合せの結果を完全なものにすることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の構成例を示すブロック図である。
【図2】問合せ解析手段11の処理例を示す流れ図である。
【図3】問合せ解析手段11の動作を説明するための図である。
【図4】問合せ統合処理手段14の処理例を示す流れ図である。
【図5】配布数決定手段13の処理例を示す流れ図である。
【図6】進捗管理表の構成例を示す図である。
【図7】問合せ統合処理手段14の処理例を示す流れ図である。
【図8】部分問合せ処理手段21の実施例を示すブロック図である。
【図9】障害検出手段12の処理例を示す流れ図である。
【図10】本発明の第2の実施の形態の構成例を示すブロック図である。
【図11】格納状況管理表の構成例を示す図である。
【図12】問合せ統合処理手段14aの処理例の一部を示す流れ図である。
【図13】格納状況管理手段15の処理例を示す流れ図である。
【符号の説明】
1−1〜1−m,10−1〜10−m…問合せ処理用の計算機ノード
11…問合せ解析手段
12…障害検出手段
13…配布数決定手段
14,14a…問合せ統合処理手段
15…格納状況管理手段
2−1〜2−n…部分問合せ処理用の計算機ノード
21…部分問合せ処理手段
3−1〜3−j,30−1〜30−n…二次記憶装置
31…部分データベース
4…通信網
5…外部通信網
6…記憶装置共有網
K1〜K3…記録媒体
Claims (14)
- データベースを複数の部分に分割することによって作成された複数の部分データベースが分散して格納された複数の二次記憶装置を、複数の部分問合せ処理用の計算機ノードが共有する共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムであって、
前記データベースに対する問合せを受け付ける1台の問合せ処理用の計算機ノードを備え、
該問合せ処理用の計算機ノードが、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段と、
前記各部分問合せ処理用の計算機ノードについて、その負荷に応じて動的に配布すべき部分問合せの数を決定する配布数決定手段と、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、各部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段とを備え、
前記複数の部分問合せ処理用の計算機ノードが、それぞれ、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段を備えたことを特徴とする問合せ並列処理システム。 - 請求項1記載の問合せ並列処理システムにおいて、
前記配布数決定手段は、前記各部分問合せ処理用の計算機ノードで処理中となっている部分問合せの数がそれぞれ所定数となるように、部分問合せの配布数を決定する構成を有することを特徴とする問合せ並列処理システム。 - 請求項1記載の問合せ並列処理システムにおいて、
前記問合せ処理用の計算機ノードを複数備えたことを特徴とする問合せ並列処理システム。 - データベースを複数の部分に分割することによって作成された複数の部分データベースが分散して格納された複数の二次記憶装置を、複数の部分問合せ処理用の計算機ノードが共有する共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムであって、
前記データベースに対する問合せを受け付ける1台の問合せ処理用の計算機ノードを備え、
該問合せ処理用の計算機ノードが、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段と、
前記部分問合せ処理用の計算機ノードに障害が発生したことを検出する障害検出手段と、
前記部分問合せ処理用の計算機ノードの内の、前記障害検出手段で障害発生が検出された計算機ノード以外の計算機ノードについて、その負荷に応じて動的に配布すべき部分問合せの数を決定する配布数決定手段と、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、各部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段とを備え、
前記複数の部分問合せ処理用の計算機ノードが、それぞれ、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段を備えたことを特徴とする問合せ並列処理システム。 - 請求項4記載の問合せ並列処理システムにおいて、
前記配布数決定手段は、前記部分問合せ処理用の計算機ノードの内の、前記障害検出手段で障害発生が検出された計算機ノード以外の計算機ノードで処理中になっている部分問合せの数がそれぞれ所定数となるように、部分問合せの配布数を決定する構成を有することを特徴とする問合せ並列処理システム。 - 請求項4記載の問合せ並列処理システムにおいて、
前記問合せ処理用の計算機ノードを複数備えたことを特徴とする問合せ並列処理システム。 - 複数の部分問合せ処理用の計算機ノードそれぞれにその計算機ノードだけがアクセスできる二次記憶装置が接続され、データベースを複数の部分に分割することによって作成された複数の部分データベースが前記複数の二次記憶装置に分散して格納された無共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムであって、
前記データベースに対する問合せを受け付ける1台の問合せ処理用の計算機ノードを備え、
該問合せ処理用の計算機ノードが、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段と、
前記各部分問合せ処理用の計算機ノードと、その計算機ノードからアクセス可能な部分データベースとの対応関係を管理する格納状況管理手段と、
前記各部分問合せ処理用の計算機ノードについて、その負荷に応じて動的に配布すべき部分問合せの数を決定する配布数決定手段と、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、その計算機ノードがアクセス可能な部分データベースの全てを前記格納状況管理手段を用いて認識し、それら部分データベースに対する部分問合せの中から、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段とを備え、
前記各部分問合せ処理用の計算機ノードが、それぞれ、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段を備えたことを特徴とする問合せ並列処理システム。 - 請求項7記載の問合せ並列処理システムにおいて、
前記配布数決定手段は、前記各部分問合せ処理用の計算機ノードで処理中の部分問合せの数がそれぞれ所定数となるように、部分問合せの配布数を決定する構成を有することを特徴とする問合せ並列処理システム。 - 請求項7記載の問合せ並列処理システムにおいて、
前記問合せ処理用の計算機ノードを複数備えたことを特徴とする問合せ並列処理システム。 - 複数の部分問合せ処理用の計算機ノードそれぞれにその計算機ノードだけがアクセスできる二次記憶装置が接続され、データベースを複数の部分に分割することによって作成された複数の部分データベースが前記複数の二次記憶装置に分散して格納され、更に前記各部分データベースの複製がその原本とは異なる二次記憶装置に格納された無共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムであって、
前記データベースに対する問合せを受け付ける1台の問合せ処理用の計算機ノードを備え、
該問合せ処理用の計算機ノードが、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段と、
前記部分問合せ処理用の計算機ノードに障害が発生したことを検出する障害検出手段と、
前記部分問合せ処理用の計算機ノードの内の、前記障害検出手段で障害発生が検出された計算機ノード以外の計算機ノードについて、その負荷に応じて動的に配布すべき部分問合せの数を決定する配布数決定手段と、
前記各部分問合せ処理用の計算機ノードと、その計算機ノードからアクセス可能な部分データベースの原本,複製との対応関係を管理する格納状況管理手段と、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、その計算機ノードがアクセス可能な部分データベースの全てを前記格納状況管理手段を用いて認識し、それら部分データベースに対する部分問合せの中から、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段とを備え、
前記部分問合せ処理用の計算機ノードが、それぞれ、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段を備えたことを特徴とする問合せ並列処理システム。 - 請求項10記載の問合せ並列処理システムにおいて、
前記配布数決定手段は、前記各部分問合せ処理用の計算機ノードの内の、前記障害検出手段によって障害発生が検出された計算機ノード以外の計算機ノードで処理中の部分問合せの数がそれぞれ所定数となるように、部分問合せの配布数を決定する構成を有することを特徴とする問合せ並列処理システム。 - 請求項10記載の問合せ並列処理システムにおいて、
前記問合せ処理用の計算機ノードを複数備えたことを特徴とする問合せ並列処理システム。 - データベースを複数の部分に分割することによって作成された複数の部分データベースが分散して格納された複数の二次記憶装置を、複数の部分問合せ処理用の計算機ノードが共有する共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムを、複数台の部分問合せ処理用の計算機ノードと1台の問合せ処理用の計算機ノードとによって実現するためのプログラムを記録した機械読み取り可能な記録媒体であって、
前記問合せ処理用の計算機ノードを、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段、
前記各部分問合せ処理用の計算機ノードについて、その負荷に応じて動的に配布すべき部分問合せの数を決定する配布数決定手段、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、各部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段として機能させるためのプログラムと、
前記各部分問合せ処理用の計算機ノードを、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段として機能させるためのプログラムとを記録した、プログラムを記録した機械読み取り可能な記録媒体。 - 複数の部分問合せ処理用の計算機ノードそれぞれにその計算機ノードだけがアクセスできる二次記憶装置が接続され、データベースを複数の部分に分割することによって作成された複数の部分データベースが前記複数の二次記憶装置に分散して格納された無共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムを、複数の部分問合せ処理用の計算機ノードと1台の問合せ処理用の計算機ノードとによって実現するためのプログラムを記録した機械読み取り可能な記録媒体であって、
前記問合せ処理用の計算機ノードを、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段、
前記各部分問合せ処理用の計算機ノードと、その計算機ノードからアクセス可能な部分データベースとの対応関係を管理する格納状況管理手段、
前記各部分問合せ処理用の計算機ノードについて、その負荷に応じて配布するべき部分問合せの数を決定する配布数決定手段、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、各部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、各計算機ノードがアクセス可能な部分データベースの全てを前記格納状況管理手段を用いて認識し、それら部分データベースに対する部分問合せの中から、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段として機能させるためのプログラムと、
前記各部分問合せ処理用の計算機ノードを、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段として機能させるためのプログラムとを記録した、プログラムを記録した機械読み取り可能な記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13674299A JP3777872B2 (ja) | 1999-05-18 | 1999-05-18 | 問合せ並列処理システム及びプログラムを記録した機械読み取り可能な記録媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13674299A JP3777872B2 (ja) | 1999-05-18 | 1999-05-18 | 問合せ並列処理システム及びプログラムを記録した機械読み取り可能な記録媒体 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000330959A JP2000330959A (ja) | 2000-11-30 |
| JP3777872B2 true JP3777872B2 (ja) | 2006-05-24 |
Family
ID=15182453
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13674299A Expired - Fee Related JP3777872B2 (ja) | 1999-05-18 | 1999-05-18 | 問合せ並列処理システム及びプログラムを記録した機械読み取り可能な記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3777872B2 (ja) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060155543A1 (en) * | 2005-01-13 | 2006-07-13 | Korg, Inc. | Dynamic voice allocation in a vector processor based audio processor |
| JP4725150B2 (ja) * | 2005-03-22 | 2011-07-13 | 日本電気株式会社 | 指紋照合システム、指紋照合処理装置および指紋照合処理方法 |
| JP2007199804A (ja) * | 2006-01-24 | 2007-08-09 | Hitachi Ltd | データベース管理方法、データベース管理プログラム、データベース管理装置、および、データベース管理システム |
| JP2009086741A (ja) * | 2007-09-27 | 2009-04-23 | Hitachi Ltd | 異種ノード混在の分散環境における分散処理制御方法、そのシステム及びそのプログラム |
| WO2011151852A1 (en) | 2010-05-31 | 2011-12-08 | Hitachi, Ltd. | Data processing method and computer system |
| JP5681781B2 (ja) * | 2013-12-24 | 2015-03-11 | 株式会社野村総合研究所 | データ利用システム |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3023441B2 (ja) * | 1993-11-16 | 2000-03-21 | 株式会社日立製作所 | データベース分割管理方法および並列データベースシステム |
| JP3350838B2 (ja) * | 1995-05-26 | 2002-11-25 | 日本電信電話株式会社 | 分散システム制御方法 |
| JP3732655B2 (ja) * | 1998-06-22 | 2006-01-05 | 株式会社日立製作所 | データベース管理システム、データベース管理装置および問い合わせ処理方法 |
-
1999
- 1999-05-18 JP JP13674299A patent/JP3777872B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000330959A (ja) | 2000-11-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12105703B1 (en) | System and method for interacting with a plurality of data sources | |
| US8386473B2 (en) | Process architecture for elastic stateful shared nothing system | |
| US20240394260A1 (en) | Joining large database tables | |
| US20090254523A1 (en) | Hybrid term and document-based indexing for search query resolution | |
| US7792809B2 (en) | Database system | |
| US7457835B2 (en) | Movement of data in a distributed database system to a storage location closest to a center of activity for the data | |
| CN104657459B (zh) | 一种基于文件粒度的海量数据存储方法 | |
| US20070100873A1 (en) | Information retrieving system | |
| KR20100070968A (ko) | 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법 | |
| EP2419845A2 (en) | Policy-based storage structure distribution | |
| EP3108385A1 (en) | Implementaton of semi-structured data as a first-class database element | |
| US8311989B1 (en) | Query logging in a multi-database system | |
| US10929401B2 (en) | Policy-based storage structure distribution | |
| Vogt et al. | Icarus: Towards a multistore database system | |
| Fang et al. | Integrating workload balancing and fault tolerance in distributed stream processing system | |
| JP3777872B2 (ja) | 問合せ並列処理システム及びプログラムを記録した機械読み取り可能な記録媒体 | |
| US20010027467A1 (en) | Massively distributed database system and associated method | |
| Siachamis et al. | Adaptive distributed streaming similarity joins | |
| JP5464017B2 (ja) | 分散メモリデータベースシステム、データベースサーバ、データ処理方法およびそのプログラム | |
| Chiu et al. | Design and evaluation of distributed smart disk architecture for I/O-intensive workloads | |
| CN117609181A (zh) | 一种用于TChouse数据库迁移方法和系统 | |
| Zhang et al. | Esdb: Processing extremely skewed workloads in real-time | |
| Cho et al. | Moolle: Fan-out control for scalable distributed data stores | |
| Mohamed et al. | Hash semi join map reduce to join billion records in a reasonable time | |
| Soni et al. | Quantitative Analysis of Document Stored Databases |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031224 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041130 |
|
| 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: 20060207 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060220 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100310 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100310 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110310 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110310 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120310 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120310 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130310 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130310 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140310 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |