JP3777872B2 - Query parallel processing system and machine-readable recording medium recording program - Google Patents

Query parallel processing system and machine-readable recording medium recording program Download PDF

Info

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
Application number
JP13674299A
Other languages
Japanese (ja)
Other versions
JP2000330959A (en
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 JP13674299A priority Critical patent/JP3777872B2/en
Publication of JP2000330959A publication Critical patent/JP2000330959A/en
Application granted granted Critical
Publication of JP3777872B2 publication Critical patent/JP3777872B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、データベースに対するデータ検索,グループ化,集計演算などを記述した問合せ文を、複数の計算機ノードを用いて並列処理する技術に関し、特に、複数の計算機ノードの処理負荷を均衡化させることによってシステム全体の性能を向上させる問合せ並列処理システムに関する。
【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…記録媒体
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for processing in parallel a query statement describing data retrieval, grouping, and aggregation operations for a database using a plurality of computer nodes, and in particular, by balancing the processing load of the plurality of computer nodes. The present invention relates to a query parallel processing system that improves the performance of the entire system.
[0002]
[Prior art]
A number of researchers have proposed a method for processing database queries in parallel ("Query Evaluation Techiniques for Large Databases", Goetz Graefe, ACM Computing Surveys, Vol. 25, No. 2 June 1993, etc.) . The query processing for a huge database is a bottleneck in reading data from the secondary storage device. For this reason, a method is basically used in which a database is divided and stored in a plurality of secondary storage devices, and read and processed in parallel.
[0003]
A process for retrieving a record by specifying a condition for one database and retrieving the record is called a selection process. For example, the selection process is a process in which an account number is designated with respect to a bank account database and a balance is inquired, or a fingerprint image is given to a fingerprint database and collated. The database selection process can be easily parallelized by dividing the database into a plurality of secondary storage devices and storing them. In this case, each partial database divided and stored in each secondary storage device is parallelized by reading in parallel from each computer node and performing a search process. In the selection process, an access path such as an index may be used. By creating an index independently for each partial database, the selection process using the index can be easily parallelized. These parallelization techniques are also incorporated in commercial relational database systems. Examples include Oracle (“Application of partitioning technology to VLDB”, IEICE Technical Report AI97-40, DE97-73, 1997-12).
[0004]
The classification of records in the database by the value of a certain attribute (column) is called classification processing. For example, a process of classifying records in a bank account database by branch. Processing such as counting the number of records or calculating an average value or maximum value of a certain column is called aggregation processing, and processing for sorting record groups by a certain column value is called sorting processing.
[0005]
A technique for parallelizing these processes is described in JP-A-10-97544. In this technique, a database is stored in a plurality of secondary storage devices under a plurality of input / output servers, and records in the database are read in parallel from the plurality of input / output servers. The read records are classified by the input / output server and distributed to a plurality of aggregation processing servers. The aggregation processing server performs aggregation processing on the records from each input / output server to obtain partial aggregation results, and finally merges the partial aggregation results. The processing so far is performed in parallel by a plurality of input / output servers and a plurality of aggregation processing servers.
[0006]
In this way, the parallel processing of queries to the database is performed by dividing the database into a plurality of partial databases and distributedly storing them in a plurality of secondary storage devices, and a plurality of computer nodes read data from each secondary storage device in parallel. It is based on processing. However, when the database is distributedly stored in the secondary storage device and the search processing is performed in parallel for each partial database, even if the partial database is stored evenly in each secondary storage device, each of them is read and processed. The load on the computer node is not equalized, which may deteriorate the processing efficiency of the entire system.
[0007]
If there is a load imbalance in this way, a shared memory type parallel computer can prevent the processing efficiency of the entire system from deteriorating by generating more processes than the number of CPUs. This is because even if the load on each process becomes unbalanced, the process is switched by the scheduling of the OS, and the query processing can proceed without the CPU playing. However, in a parallel computer using a plurality of computer nodes, a process cannot be moved between computer nodes. Since the processing of the entire system finally waits for the end of processing of the computer node with the heaviest load, the computer node with the light load is idle, and the processing efficiency of the entire system deteriorates.
[0008]
On the other hand, JP-A-10-301822 discloses the following technique. A query to the database is analyzed to generate an access path, and the access path is further decomposed into a plurality of partial access paths. After that, for each group of partial access paths that can be executed simultaneously, some of the partial access paths belonging to that group are grouped into one group according to the processing cost. Here, the processing cost is calculated from statistical information such as the number of table rows, column distribution status, index hit rate, and the like, and is a numerical value of the degree of load required to execute a partial access path. . When several partial access paths belonging to a partial access path group are grouped into one group according to the processing cost, the total processing cost of the partial access paths to which the group belongs is the maximum processing of the partial access path group. Do not exceed costs.
[0009]
[Problems to be solved by the invention]
According to the technique described in Japanese Patent Laid-Open No. 10-301822 described above, the processing costs of the groups to which the partial access path groups that can be executed simultaneously can be made substantially equal. Therefore, by assigning processes to a plurality of computer nodes in units of groups, the load on each computer node can be balanced to some extent. However, since the technique described in Japanese Patent Application Laid-Open No. 10-301822 uses static information called statistical information, it cannot cope with dynamic load fluctuations of each computer node. There was a problem that the overall processing efficiency could not be made sufficiently high.
[0010]
Accordingly, an object of the present invention is to increase the processing efficiency of the entire system by dynamically balancing the processing load on each computer node when a query is processed in parallel on a cluster system composed of a plurality of computer nodes. There is.
[0011]
[Means for Solving the Problems]
The query parallel processing system of the present invention is a computer node for query processing, analyzes a query and decomposes it into partial queries, distributes partial queries to a plurality of computer nodes for partial query processing, and performs parallel processing. Merge the returned partial query results into the query results. This configuration is a basic configuration for parallel processing of queries.
[0012]
In the query parallel processing system of the present invention, when distributing a partial query to computer nodes for partial query processing, the number of distribution to each computer node is determined and distributed as needed. At this time, in order to keep the load on each computer node equal, for example, the number of distributions is determined so that the number of partial queries being processed in each computer node is always equal. An undistributed partial query exceeding the number of distributions is processed by the computer node when any computer node returns a result later. That is, the remaining partial query is processed for the computer node that has returned the result so that the computer node does not play. The above is the basic concept of load balancing in the present invention.
[0013]
In the query parallel processing system of the present invention, a plurality of computer nodes for query processing are provided to prevent the computer nodes from becoming a bottleneck. In this case, separate queries are received by a plurality of computer nodes, and partial query distribution processing for each query is performed independently. The distribution strategy at this time is exactly the same as when a query is received by a single computer node.
[0014]
Further, when a failure occurs in a computer node for partial query processing, the computer node is detected, and a partial query to be distributed to the computer node is distributed to another computer node for partial query processing for processing. As a result, even if a failure occurs in a computer node for partial query processing, all partial queries can be processed and the query result can be completed.
[0015]
In the non-sharing cluster system, each partial query processing computer node can access only the secondary storage device connected to itself. Therefore, only a partial database stored in the secondary storage device can be accessed. Therefore, the correspondence between each computer node and the partial database that it can access is managed. Thereby, a partial query that can be processed by each node can be distributed to each computer node.
[0016]
In the non-sharing cluster system, the original and replica of the partial database are stored in a secondary storage device under separate computer nodes. Thereby, the same partial database can be accessed from a plurality of computer nodes. That is, the same partial query can be processed by a plurality of computer nodes. By utilizing this, it is possible to cause the computer node on the lighter load side to process a partial query, thereby balancing the load on the computer node. At the same time, even when a computer node fails, another computer node can process a query to be distributed to that node.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described in detail with reference to the drawings.
[0018]
An example of the first embodiment of the present invention will be described. The first embodiment relates to a query parallel processing system that processes a query for a database recorded in a secondary storage device in parallel on a shared cluster system in which a plurality of computer nodes share the secondary storage device. An example of the configuration is shown in FIG.
[0019]
Referring to FIG. 1, a plurality of computer nodes 1-1 to 1-m for query processing and a plurality of computer nodes 2-1 to 2-n for partial query processing are connected by a communication network 4, and between computer nodes Data can be exchanged. As the communication network 4, an Ether or ATM HUB, a switch, or other dedicated connection network can be used.
[0020]
The query processing computer nodes 1-1 to 1-m are connected to the external communication network 5 and can receive a query via the external communication network 5. As the external communication network 5, a LAN or WAN is used. As a query, a request to extract a part of data from a database that is a set of data, a request to perform aggregation such as the average or maximum value of data values, or a value of a certain data There is a request for grouping and sorting with a focus on. These requests are described and passed using a query language SQL or the like, or are combined with only a special keyword.
[0021]
Further, the computer nodes 2-1 to 2-n for partial inquiry processing are connected to the storage device shared network 6 that shares the secondary storage devices 3-1 to 3-j. -1 to 2-n can also access the secondary storage devices 3-1 to 3-j. As the storage device sharing network 6, a SCSI or FibreChanel hub or switch, or a dedicated network for peripheral devices is used. The database to be queried is divided into a plurality of partial databases 31, and is distributed and stored in a plurality of secondary storage devices 3-1 to 3-j. Database division methods include round-robin distributed arrangement, hash division, key value division, and the like.
[0022]
Each of the query processing computer nodes 1-1 to 1-m includes a query analysis unit 11, a failure detection unit 12, a distribution number determination unit 13, a query integration processing unit 14, and a recording medium K1. .
[0023]
The query analysis means 11 analyzes a query addressed to its own computer node sent via the external communication network 5, and is a processing procedure for processing this query, and each part constituting the database to be queried It has a function of deriving a processing procedure including a partial query for a database (a search request for a partial database).
[0024]
The failure detection means 12 has a function of detecting that a failure has occurred in the computer nodes 2-1 to 2-n for partial inquiry processing.
[0025]
The distribution number determination means 13 has a function of dynamically determining the number of partial queries distributed to the computer nodes 2-1 to 2-n according to the load of each computer node 2-1 to 2-n.
[0026]
The query integration processing means 14 advances the query processing according to the processing procedure derived by the query analysis means 11, and when distributing partial queries to the computer nodes 2-1 to 2-n, the distribution number determination means 13 is used. It distributes undistributed partial queries as many as the number of distributions determined by use, and when partial query results are returned, it has a function of deriving query results while merging related results.
[0027]
The recording medium K1 included in the computer nodes 1-1 to 1-m is a disk, a semiconductor memory, or other recording medium, and causes the computer nodes 1-1 to 1-m to function as computer nodes for inquiry processing. Programs are recorded. This program is read by the computer nodes 1-1 to 1-m, and the operation of the computer nodes 1-1 to 1-m is controlled, so that the query analysis unit 11 is placed on the computer nodes 1-1 to 1-m. , Failure detection means 12, distribution number determination means 13, and query integration processing means 14 are realized.
[0028]
The computer nodes 2-1 to 2-n for partial inquiry processing are each provided with partial inquiry processing means 21 and a recording medium K2.
[0029]
The partial query processing means 21 has a function of receiving a partial query distributed from the query processing computer nodes 1-1 to 1-m, processing the partial query, and returning the result to the distribution source computer node.
[0030]
The recording media K2 included in the computer nodes 2-1 to 2-n are disks, semiconductor memories, and other recording media, and cause the computer nodes 2-1 to 2-n to function as computer nodes for partial inquiry processing. A program for recording is recorded. This program is read by the computer nodes 2-1 to 2-n and controls the operations of the computer nodes 2-1 to 2-n, so that the partial inquiry processing means 21 on the computer nodes 2-1 to 2-n. Is realized.
[0031]
Next, the operation of the present embodiment will be described.
[0032]
When the query analysis means 11 operating in the computer node 1-k (1 ≦ k ≦ m) connected to the external communication network 5 accepts a query addressed to its own computer node input via the external communication network 5, FIG. As shown in the flowchart of FIG. 2, the meaning is analyzed, and a processing procedure for obtaining a query result including processing steps for the database to be processed is derived (A1). For example, for a query as shown in FIG. 3A, a tree-like processing procedure composed of a plurality of steps as shown in FIG. In this example, since there are two databases to be processed, two processing steps for the database are included. FIG. 5B is merely an example, and the processing procedure derived in A1 is in response to the inquiry. For example, when the data extracted from the databases 1 and 2 are combined and grouped, a processing procedure for performing the grouping process is derived instead of the sort process shown in FIG.
[0033]
Next, the query analysis means 11 divides the processing steps for each database into processing steps (partial queries) for each partial database constituting the database, and the partial query results for each set of partial queries for the same database. A processing step for merging is added (A2). Here, a set of partial queries for one database is referred to as a partial query set. If there are multiple databases to be processed, one partial query set is created for each database. For example, the processing procedure as shown in FIG. 3C is created from the processing procedure as shown in FIG. In this example, since two databases are targeted by one query, two sets of partial queries are created. In addition, the number of partial queries included in one partial query set is the same as the number of partial databases constituting a corresponding database because a partial query is created for each database constituting the database.
[0034]
When the query analysis means 11 derives a processing procedure for the query, the query integration processing means 14 obtains and stores the processing procedure from the query analysis means 11 as shown in the flowchart of FIG. It is determined whether a partial query set exists in (B1, B2). When the processing procedure is obtained from the query analysis means 11, there is a set of partial queries and the determination result of B2 is yes, so the query integration processing means 14 performs the process of B3.
[0035]
In B3, the query integration processing means 14 analyzes the dependency relationship between the sets of partial queries included in the processing procedure, and recognizes a partial query that can be distributed. For example, if there are two sets of partial queries and they are independent sets having no processing dependency, all partial queries included in the two sets are recognized as distributable partial queries. Further, for example, when there are two partial query sets S1 and S2, and there is a dependency relationship that the processing result of the set S1 is necessary for the processing of the set S2, only the partial query included in the set S1 is present. Is recognized as a distributable partial query.
[0036]
Thereafter, the query integration processing means 14 sets the computer node assigned with the node number “0” among the computer nodes 2-1 to 2-n for partial query processing as the computer node to which the partial query is distributed. (B4). In this embodiment, it is assumed that node numbers “0” to “n−1” are assigned to the computer nodes 2-1 to 2-n, respectively.
[0037]
Next, the query integration processing means 14 uses the distribution number determination means 13 to determine the number of partial queries distributed to the computer node 2-1 having the node number “0” (B6). At that time, the number of distributions is determined so that the number of partial queries being processed in each of the computer nodes 2-1 to 2-n is equal among the computer nodes.
[0038]
The process of B6 will be described in detail. When determining the number of partial queries distributed to the computer node 2-1, the query integration processing unit 14 passes the node number “0” of the computer node 2-1 to be distributed to the distribution number determination unit 13. .
[0039]
When the node number “0” is passed from the query integration processing means 14 (FIG. 5, C1), the distribution number determination means 13 refers to the progress management table and the partial query whose result is not returned from the computer node 2-1. (Number of results not returned) is acquired (C2).
[0040]
The progress management table manages the number of unreturned results of the computer nodes 2-1 to 2-n and the distributed partial queries in which the results are not returned from the computer nodes 2-1 to 2-n. For example, the configuration shown in FIG. The progress management table shown in FIG. 6 is associated with the node numbers “0” to “n−1” of the computer nodes 2-1 to 2-n for partial inquiry processing, and the computer nodes 2-1 to 2- The number n of unreturned results and the IDs of partial queries whose results are not returned from the computer nodes 2-1 to 2-n are registered. The number of result returns and the partial query ID are changed by the query integration processing means 14.
[0041]
In C2, when the number of unreturned results of the computer node 2-1 is acquired, the distribution number determining means 13 determines whether or not the condition “result unreturned number <target distribution number” is satisfied (C3). Here, the target distribution number is set in the computer node 1-k so that the number of partial queries from the computer node 1-k being processed in each of the computer nodes 2-1 to 2-n is equal to a predetermined number. For example, when the number of partial queries is set to two, the target distribution number is “2”. When it is determined that the condition is satisfied in C3 (the determination result is yes), the calculation “target distribution number−result unreturned number” is performed to obtain the distribution number, and the obtained distribution number is subjected to the query integration process The means 14 is notified (C4). On the other hand, if it is determined that the condition is not satisfied (C3 is no), the number of distributions = “0” is notified to the query integration processing means 14 (C5). When the number of distributions is notified from the distribution number determination unit 13, the query integration processing unit 14 determines the value as the number of partial queries distributed to the computer node 2-1. The above is the process performed in B6.
[0042]
If the distribution number of partial queries to the computer node 2-1 determined in B6 is larger than “0” and there are undistributable partial queries that can be distributed (B7 and B8 are both yes), TCP, Using a general-purpose communication protocol such as UDP / IP or various dedicated communication protocols, one of undistributable partial queries that are not distributed is distributed to the computer node 2-1, and the distributed partial query is distributed. From the partial query that is recognized as being distributable (B10), the distribution number is decremented by 1, and the management information for the computer node 2-1 in the progress management table is updated (B11). For example, when the progress management table has the configuration shown in FIG. 6, the number of unreturned results of the computer node 2-1 registered in association with the node number “0” is incremented by 1 and the current computer node 2-1 The ID of the partial query distributed to is registered in association with the node number “0”. The query integration processing means 14 distributes the number of partial queries determined in B6 to the computer node 2-1, or until there is no undistributed partial query (B7 becomes no or B8 becomes no. The above-described processes B7 to B11 are repeated.
[0043]
When B7 or B8 becomes no, the query integration processing means 14 increments the node number by 1 and makes the computer node 2-2 a computer node to which partial queries are distributed (B9). Thereafter, the query target integration processing means 14 repeats the above-described processes B5 to B11 until “node number <number of nodes” (until B5 becomes no). When the result of determination at B5 is no, the query integration processing means 14 enters a waiting state. Through the above processing, the number of partial queries indicated by the target distribution number is distributed from the computer node 1-k to each of the computer nodes 2-1 to 2-n. However, when the number of partial queries that can be distributed is smaller than “target distribution number × number of computer nodes 2-1 to 2-n”, some of the computer nodes 2-1 to 2-n The number of partial queries indicated by the target distribution number is distributed only to the computer nodes.
[0044]
On the other hand, when a partial query is sent from the computer node 1-k, the partial query processing means 21 in the computer nodes 2-1 to 2-n receives a partial query from the partial database 31 indicated by the partial query. Data that satisfies the specified condition is extracted, and the extracted data is returned to the computer node 1-k as the inquiry source. At that time, the ID of the processed partial inquiry and the node number of the local computer node are also returned.
[0045]
The query integration processing means 14 in the computer node 1-k returns the partial query result, partial query ID and node number from the computer node 2-i (1 ≦ i ≦ n) (FIG. 4, B13). Based on the result returned this time, it is checked whether there is a set of partial queries for which all the results have been obtained (B14).
[0046]
If it is determined that such a partial query set does not exist (B14 is no), the node number of the computer node 2-i that has returned the result is acquired, and the distribution number determining means 13 uses the computer node 2- The number of partial queries distributed to i is determined (B16, B17). The process of B17 is the same process as B6.
[0047]
When the number of partial queries distributed to the computer node 2-i is determined, the query integration processing means 14 distributes the partial query of the number of distributions determined in B17 to the computer node 2-i, or undistributable distribution is possible. A partial query that is recognized as being able to be distributed until the partial query does not exist (until B18 becomes no or B19 becomes no) and the partial query is distributed to the computer node 2-i. The process (B20) to be excluded from the process and the process (B21) for updating the progress management table by decrementing the number of distribution by −1 are repeated. Here, for example, when the progress management table has the configuration shown in FIG. 6, a process of decrementing the result unreturned number registered in association with the node number “i−1” of the computer node 2-i. In addition, a process of deleting the ID returned from the computer 2-i among the IDs of the partial queries registered in association with the node number “i-1” is performed. When the determination result of B18 or B19 is no, the query integration processing means 14 enters a waiting state.
[0048]
Also, in B14, if it is determined that there is a set of partial queries for which all the results have been obtained based on the results returned this time (judgment result is yes), all the results are obtained from the stored processing procedure. The set of partial queries is removed (B15), and then the process of B2 is performed.
[0049]
If it is determined in B2 that a partial query set exists in the stored processing procedure (the determination result is yes), the process of B3 is performed and it is determined that the partial query set does not exist (determination) If the result is no), processing on the root side from the partial query is sequentially performed toward the root, and the result of the query is returned to the query source via the external communication network 5 (B12). For example, if the processing procedure obtained in B1 is as shown in FIG. 3 (c), as shown in FIG. 7, when all the results are obtained for two sets of partial queries, the results are obtained for each partial query set. Processing for merging is performed, and further processing for combining the merged results and processing for sorting the combined results are sequentially performed. In this embodiment, the merge is performed after obtaining all the partial query results. However, there is a method of merging one by one each time the results are returned. For example, when an average value, a total value, or the like is obtained as a result for a query, the result is added for each set each time the partial query result is returned. Thereby, each step of the processing procedure is processed in a pipeline manner.
[0050]
As described above, when the query integration processing unit 14 obtains the processing procedure from the query analysis unit 11 (FIG. 4, B1), the query integration processing unit 14 sends a partial query of a predetermined target distribution number to each of the computer nodes 2-1 to 2-1. -N is distributed (B5 to B11), and the remaining partial queries are left undistributed. An undistributed partial query is later thrown to a computer node that has returned the result of the partial query early (B16 to B21). In other words, undistributed partial queries are distributed to computer nodes that have been processed early and the load has been reduced.
[0051]
As described above, the number of partial queries being processed in each of the computer nodes 2-1 to 2-n is kept below a certain number. Therefore, in a situation where a large number of partial queries are generated, the number of partial queries being processed in each computer node is always kept at a certain fixed number. This balances the load on each computer node.
[0052]
Next, FIG. 8 shows an embodiment of the partial inquiry processing means 21 that operates independently at each of the computer nodes 2-1 to 2-n. In the embodiment shown in FIG. 8A, there is a queue for storing distributed partial queries, which are taken out one by one to the partial query processing unit and processed in order. The processed partial query result is returned from the partial query processing unit to the distribution source computer node.
[0053]
In contrast, FIG. 8B shows an embodiment in which a plurality of partial queries are processed in a multiplexed manner. By using multiple threads or multiple processes, a plurality of partial query processing units are operated simultaneously, and each distributed partial query is assigned to each partial query processing unit. Each partial inquiry processing unit operates in a multiple manner according to the scheduling of the OS of the computer node. For example, the partial query processing unit includes a process of reading a partial database from the secondary storage devices 3-1 to 3-j in units of a certain size block, and a process of performing search / calculation on the read block data. In this case, the plurality of partial inquiry processing units process the input / output processing of the secondary storage devices 3-1 to 3-j and the CPU processing in the computer node in a temporally overlapping manner.
[0054]
The partial inquiry processing means 21 may be a combination of the queues in FIG. 8A and FIG. 8B.
[0055]
Next, an operation when a failure occurs in the computer nodes 2-1 to 2-n for partial inquiry processing will be described.
[0056]
As shown in the flowchart of FIG. 9, the failure detection means 12 in the query processing computer node 1-k detects that a failure has occurred in the partial query processing computer nodes 2-1 to 2-n. The state of each of the computer nodes 2-1 to 2-n is monitored (D1). This monitoring is performed, for example, by periodically exchanging small data with each of the computer nodes 2-1 to 2-n via the communication network 4. That is, when data exchange can be performed normally, it is determined that no failure has occurred, and when data exchange becomes impossible, it is determined that a failure has occurred. Further, a dedicated failure diagnosis mechanism configured by hardware is provided in the computer nodes 2-1 to 2 -n, and when a failure occurs, the failure diagnosis mechanism of the computers 2-1 to 2 -n is connected via the communication network 4. Then, the occurrence of the failure may be notified to the computer nodes 1-1 to 1-n.
[0057]
For example, when detecting that a failure has occurred in the computer node 2-1, the failure detection means 12 in the computer node 1-k first obtains the node number “0” of the computer node 2-1 (D2). Thereafter, the failure detection means 12 acquires the ID of the partial query that has already been distributed to the computer node 2-1 of the node number “0” from the progress management table and for which the result has not been returned (D3). Further, the row of the node number “0” of the computer node in which the failure has occurred is deleted from the progress management table, and the computer node 2-1 is excluded from the distribution target of the partial inquiry (D4). For example, when the content of the progress management table is as shown in FIG. 6, the failure detection means 12 acquires “ID1, ID2” as the ID of the partial inquiry (D3), and the first row of the progress management table is displayed. Delete (D4). Thereafter, the failure detection means 13 notifies the inquiry integration processing means 14 of the ID of the partial inquiry acquired in D3 (D5). In the flowchart of FIG. 9, the faulty computer node is excluded from the partial query distribution target by deleting the row of the node number of the faulty computer node from the progress management table. It is also possible to take a method of attaching a mark indicating.
[0058]
When the partial query ID is notified from the failure detection unit 12, the query integration processing unit 14 recognizes the partial query as an undistributed partial query. In this way, by recognizing a partial query that has been distributed to a failed computer node and has not returned a result as an undistributed partial query, in B20 in FIG. It is distributed to any computer node for partial query processing that has not been performed. In the shared cluster system in which the secondary storage devices 3-1 to 3-j are connected by the storage device shared network 6, each computer node 2-1 to 2-n is connected to any part via the storage device shared network 6. Since the database 31 is also accessible, a partial query that was to be distributed to a certain computer node can be processed by another computer node. Therefore, all partial queries can be processed by distributing the partial query distributed to the faulty computer node to other normal computer nodes.
[0059]
Next, an example of the second embodiment of the present invention will be described. In the second embodiment, an inquiry to a database recorded in a secondary storage device is performed on a non-shared cluster system in which a secondary storage device that can be accessed only by the computer node is connected to each of a plurality of computer nodes. FIG. 10 shows an example of the configuration of a query parallel processing system that processes in parallel.
[0060]
The difference between the present embodiment and the first embodiment shown in FIG. 1 is that the computer nodes 10-1 to 10-m are provided instead of the computer nodes 1-1 to 1-m, and the memory is stored. There is no device sharing network, and secondary storage devices 30-1 to 30-n are directly connected to the respective computer nodes 2-1 to 2-n, and a recording medium K3 is provided instead of the recording medium K1. It is a point.
[0061]
A database to be queried is divided into a plurality of partial databases 31 and distributed and stored in a plurality of secondary storage devices 30-1 to 30-n. Further, a copy of each partial database is distributed and stored in a secondary storage device different from the original.
[0062]
The computer nodes 10-1 to 10-m include the query integration processing unit 14a instead of the query integration processing unit 14, and the computer node 1 shown in FIG. -1 to 1-m.
[0063]
The storage status management means 15 manages the IDs of the partial databases accessible to the computer nodes 2-1 to 2-n for partial query processing, and the nodes of the computer nodes 2-1 to 2-n from the query integration processing means 14a. When the number is notified, it has a function of returning a list of partial database IDs accessible to the computer node of the notified node number. The management of the ID of the partial database 31 accessible by each of the computer nodes 2-1 to 2-n is performed using, for example, a storage status management table as shown in FIG. In the storage status management table, IDs of partial databases that can be accessed by the computer nodes corresponding to the node numbers “0” to “n−1” of the computer nodes 2-1 to 2-n are registered. Yes. In the example of FIG. 11, the computer node 2-1 with the node number “0” is the original partial database indicated by the ID “A-0, A-4, A-8, B-1, B-5,. And a copy of the partial database indicated by the ID “A-2, A-6, A-10, B-0, B-4,...” Can be accessed. This copy is a copy of the original partial database that can be accessed by the computer node 2-2 with the node number “1”. The ID of the partial database is a combination of the IDs of databases such as A and B and the order of the partial databases therein.
[0064]
In addition to the functions provided in the query integration processing means 14 shown in FIG. 1, the query integration processing means 14a includes a function for notifying the storage status management means 15 of the node number of the computer node for partial inquiry processing, It has a function of determining a partial query to be distributed based on a list of partial database IDs returned from the storage status management means 15 in response.
[0065]
The recording medium K3 is a disk, semiconductor memory, or other recording medium, and stores a program for causing the computer nodes 10-1 to 10-m to function as computer nodes for inquiry processing. This program is read by the computer nodes 10-1 to 10-m, and by controlling the operations of the computer nodes 10-1 to 10-m, the query analysis means 11 is placed on the computer nodes 10-1 to 10-m. , Failure detection means 12, distribution number determination means 13, inquiry integration processing means 14a, and storage status management means 15 are realized.
[0066]
FIG. 12 is a flowchart showing only the part of the processing performed by the query integration processing means 14a that is different from the processing performed by the query integration processing means 14 of FIG. 1, between steps B7 and B8 and step B18, 4 is different from the process shown in FIG. 4 in that steps E1 and E2 are performed between B19 and steps E3 and E4 are performed instead of steps B10 and B20. FIG. 13 is a flowchart showing a processing example of the storage status management means 15. Hereinafter, the operation of the present embodiment will be described with reference to the drawings.
[0067]
When the query analyzing means 11 in the computer node 10-k for query processing receives a query addressed to its own computer node via the external communication network 5, it performs the processing shown in A1 and A2 in FIG. ) Is derived.
[0068]
When the query analysis unit 11 derives the processing procedure, the query integration processing unit 14a performs the same processing as B1 to B7 in FIG. 4 and determines the number of partial queries to be distributed to the computer node 2-1 having the node number “0”. decide. Thereafter, the query integration processing unit 14a determines one partial query to be distributed to the computer node 2-1 using the storage status management unit 15 as shown in the flowchart of FIG. 12 (E1). The process of E1 will be described in detail as follows.
[0069]
The query integration processing unit 14a notifies the storage status management unit 15 of the node number “0” of the computer node 2-1 that is the distribution target of the partial query.
[0070]
When the node number “0” is notified, the storage status management means 15 refers to the storage status management table as shown in FIG. 13 and stores the partial database accessible to the computer node 2-1 with the node number “0”. A list of IDs is acquired (F1), and the acquired list is returned to the query integration processing means 14a (F2).
[0071]
When the list is returned, the query integration processing means 14a selects one of the partial queries for which the partial database is recognized as distributable and the ID is registered in the list. , And let it be a partial query to distribute. If no such partial query exists, it is determined that there is no partial query that can be distributed. The above is the details of the processing performed in E1.
[0072]
When the partial query to be distributed is determined in E1, and the determination result in B8 is yes, the query integration processing means 14a distributes the partial query determined in E1 to the computer node 2-1, and can distribute the distributed partial query. (E3). Thereafter, the same processing as B11 shown in FIG. 4 is performed.
[0073]
When a partial query result is sent from the computer node 2-i for partial query processing, the same processing as B13 to B18 in FIG. 4 is performed, and the number of partial queries distributed to the computer node 2-i. To decide. Thereafter, the query integration processing means 14a uses the storage status management means 15 to determine one partial query to be distributed to the computer node 2-i (E2), and distribute the partial query to the computer node 2-i. Then, the distributed partial query is excluded from the partial queries recognized as distributable (E4). Thereafter, processing similar to B21 shown in FIG. 4 is performed.
[0074]
Next, the operation when the failure detection means 12 detects that a failure has occurred in the computer node 2-i will be described.
[0075]
As shown in the flowchart of FIG. 9, when the failure detection means 12 detects that a failure has occurred in the computer node 2-i, the failure detection means 12 distributes the partial query that has already been distributed to the computer node 2-i and for which no result has been returned. The ID is acquired from the progress management table and notified to the query integration processing means 14a. The query integration processing unit 14a recognizes the partial query notified of the ID as an undistributed partial query. In this way, by recognizing a partial query that has already been distributed to a failed computer node and has not returned a result as an undistributed partial query, the partial query described above at E4 in FIG. The computer nodes for partial query processing that are operating normally and distributed to the computer nodes that can access the partial database corresponding to the partial query described above.
[0076]
【The invention's effect】
As described above, the query parallel processing system according to the present invention dynamically executes a query in parallel on a cluster system composed of a plurality of computer nodes for partial query processing according to the load on each computer node. Since the number of partial queries to be distributed is determined, the load on each computer node can be dynamically balanced. As a result, it is possible to improve the processing efficiency of the entire query parallel processing system and improve the performance.
[0077]
Further, the query parallel processing system of the present invention, when a failure occurs in a computer node for partial query processing, for a computer node other than the failed computer, a partial query to be dynamically distributed according to its load. Since the number is determined, even if a failure occurs in the computer node for partial query processing, the result of the query can be completed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration example of a first exemplary embodiment of the present invention.
FIG. 2 is a flowchart showing a processing example of an inquiry analysis unit 11;
FIG. 3 is a diagram for explaining the operation of inquiry analysis means 11;
FIG. 4 is a flowchart showing a processing example of the query integration processing means 14;
FIG. 5 is a flowchart showing a processing example of the distribution number determining means 13;
FIG. 6 is a diagram illustrating a configuration example of a progress management table.
FIG. 7 is a flowchart showing a processing example of the query integration processing means 14;
8 is a block diagram showing an embodiment of partial inquiry processing means 21. FIG.
FIG. 9 is a flowchart showing a processing example of the failure detection means 12;
FIG. 10 is a block diagram illustrating a configuration example of a second exemplary embodiment of the present invention.
FIG. 11 is a diagram showing a configuration example of a storage status management table.
FIG. 12 is a flowchart showing a part of a processing example of the query integration processing means 14a.
13 is a flowchart showing a processing example of the storage status management means 15. FIG.
[Explanation of symbols]
1-1 to 1-m, 10-1 to 10-m: Computer nodes for query processing
11: Query analysis means
12 ... Fault detection means
13… Distribution number determination means
14, 14a ... Query integration processing means
15 ... Storage status management means
2-1 to 2-n: Computer nodes for partial query processing
21 ... Partial query processing means
3-1 to 3-j, 30-1 to 30-n ... secondary storage device
31 ... Partial database
4. Communication network
5 ... External communication network
6 ... Storage device shared network
K1 to K3 ... Recording medium

Claims (14)

データベースを複数の部分に分割することによって作成された複数の部分データベースが分散して格納された複数の二次記憶装置を、複数の部分問合せ処理用の計算機ノードが共有する共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムであって、
前記データベースに対する問合せを受け付ける1台の問合せ処理用の計算機ノードを備え、
該問合せ処理用の計算機ノードが、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段と、
前記各部分問合せ処理用の計算機ノードについて、その負荷に応じて動的に配布すべき部分問合せの数を決定する配布数決定手段と、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、各部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段とを備え、
前記複数の部分問合せ処理用の計算機ノードが、それぞれ、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段を備えたことを特徴とする問合せ並列処理システム。
A shared cluster system in which multiple secondary query devices that share multiple partial databases created by dividing a database into multiple parts are shared by multiple partial query processing computer nodes A query parallel processing system for processing a query for the database in parallel,
A computer node for query processing that accepts queries to the database;
The computer node for the query processing is
A procedure for analyzing a query to the database and processing the query, and for deriving a processing procedure including a partial query for each partial database constituting the database to be queried and a merge process of the partial query results Analysis means;
Distribution number determination means for determining the number of partial queries to be dynamically distributed according to the load for each of the partial query processing computer nodes;
When processing the query according to the processing procedure derived by the query analysis means and distributing the partial query to the computer nodes for each partial query processing, only the number of distributions determined by the distribution number determination means is not yet determined. When the partial query of distribution is distributed and the result of the partial query is returned, a query integration processing means for deriving the result of the query while merging the related results is provided,
The plurality of computer nodes for partial query processing are respectively
A parallel query processing system comprising: partial query processing means for receiving a distributed partial query, processing the partial query, and returning a result to a distribution source computer node.
請求項1記載の問合せ並列処理システムにおいて、
前記配布数決定手段は、前記各部分問合せ処理用の計算機ノードで処理中となっている部分問合せの数がそれぞれ所定数となるように、部分問合せの配布数を決定する構成を有することを特徴とする問合せ並列処理システム。
The query parallel processing system according to claim 1,
The distribution number determining means has a configuration for determining the distribution number of partial queries so that the number of partial queries being processed in each of the partial query processing computer nodes is a predetermined number. A query parallel processing system.
請求項1記載の問合せ並列処理システムにおいて、
前記問合せ処理用の計算機ノードを複数備えたことを特徴とする問合せ並列処理システム。
The query parallel processing system according to claim 1,
A query parallel processing system comprising a plurality of computer nodes for query processing.
データベースを複数の部分に分割することによって作成された複数の部分データベースが分散して格納された複数の二次記憶装置を、複数の部分問合せ処理用の計算機ノードが共有する共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムであって、
前記データベースに対する問合せを受け付ける1台の問合せ処理用の計算機ノードを備え、
該問合せ処理用の計算機ノードが、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段と、
前記部分問合せ処理用の計算機ノードに障害が発生したことを検出する障害検出手段と、
前記部分問合せ処理用の計算機ノードの内の、前記障害検出手段で障害発生が検出された計算機ノード以外の計算機ノードについて、その負荷に応じて動的に配布すべき部分問合せの数を決定する配布数決定手段と、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、各部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段とを備え、
前記複数の部分問合せ処理用の計算機ノードが、それぞれ、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段を備えたことを特徴とする問合せ並列処理システム。
A shared cluster system in which multiple secondary query devices that share multiple partial databases created by dividing a database into multiple parts are shared by multiple partial query processing computer nodes A query parallel processing system for processing a query for the database in parallel,
A computer node for query processing that accepts queries to the database;
The computer node for the query processing is
A procedure for analyzing a query to the database and processing the query, and for deriving a processing procedure including a partial query for each partial database constituting the database to be queried and a merge process of the partial query results Analysis means;
Failure detection means for detecting that a failure has occurred in the computer node for partial query processing;
Distribution that determines the number of partial queries to be dynamically distributed according to the load of computer nodes other than the computer node in which the failure detection is detected by the failure detection means among the computer nodes for partial query processing Number determining means;
When processing the query according to the processing procedure derived by the query analysis means and distributing the partial query to the computer nodes for each partial query processing, only the number of distributions determined by the distribution number determination means is not yet determined. When the partial query of distribution is distributed and the result of the partial query is returned, a query integration processing means for deriving the result of the query while merging the related results is provided,
The plurality of computer nodes for partial query processing are respectively
A parallel query processing system comprising: partial query processing means for receiving a distributed partial query, processing the partial query, and returning a result to a distribution source computer node.
請求項4記載の問合せ並列処理システムにおいて、
前記配布数決定手段は、前記部分問合せ処理用の計算機ノードの内の、前記障害検出手段で障害発生が検出された計算機ノード以外の計算機ノードで処理中になっている部分問合せの数がそれぞれ所定数となるように、部分問合せの配布数を決定する構成を有することを特徴とする問合せ並列処理システム。
The query parallel processing system according to claim 4,
The number-of-distribution determination means has a predetermined number of partial queries being processed in a computer node other than the computer node in which the failure detection is detected by the failure detection means among the computer nodes for the partial inquiry processing. A query parallel processing system having a configuration for determining a distribution number of partial queries so as to be a number.
請求項4記載の問合せ並列処理システムにおいて、
前記問合せ処理用の計算機ノードを複数備えたことを特徴とする問合せ並列処理システム。
The query parallel processing system according to claim 4,
A query parallel processing system comprising a plurality of computer nodes for query processing.
複数の部分問合せ処理用の計算機ノードそれぞれにその計算機ノードだけがアクセスできる二次記憶装置が接続され、データベースを複数の部分に分割することによって作成された複数の部分データベースが前記複数の二次記憶装置に分散して格納された無共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムであって、
前記データベースに対する問合せを受け付ける1台の問合せ処理用の計算機ノードを備え、
該問合せ処理用の計算機ノードが、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段と、
前記各部分問合せ処理用の計算機ノードと、その計算機ノードからアクセス可能な部分データベースとの対応関係を管理する格納状況管理手段と、
前記各部分問合せ処理用の計算機ノードについて、その負荷に応じて動的に配布すべき部分問合せの数を決定する配布数決定手段と、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、その計算機ノードがアクセス可能な部分データベースの全てを前記格納状況管理手段を用いて認識し、それら部分データベースに対する部分問合せの中から、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段とを備え、
前記各部分問合せ処理用の計算機ノードが、それぞれ、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段を備えたことを特徴とする問合せ並列処理システム。
A plurality of partial databases created by dividing a database into a plurality of parts are connected to a secondary storage device that can be accessed only by the computer node for each of the plurality of partial query processing computer nodes. A query parallel processing system for processing a query for the database in parallel on a non-shared cluster system distributed and stored in a device,
A computer node for query processing that accepts queries to the database;
The computer node for the query processing is
A procedure for analyzing a query to the database and processing the query, and for deriving a processing procedure including a partial query for each partial database constituting the database to be queried and a merge process of the partial query results Analysis means;
Storage status management means for managing the correspondence between the computer nodes for each partial query processing and the partial database accessible from the computer nodes;
Distribution number determination means for determining the number of partial queries to be dynamically distributed according to the load for each of the partial query processing computer nodes;
When processing the query according to the processing procedure derived by the query analysis means and distributing the partial query to the computer node for the partial query processing, the storage status management is performed for all the partial databases accessible to the computer node. When undistributed partial queries of the number of distributions determined using the distribution number determination means are distributed from the partial queries to those partial databases, and the partial query results are returned Comprises a query integration processing means for deriving a query result while merging related results,
The computer nodes for processing each partial query are respectively
A parallel query processing system comprising: partial query processing means for receiving a distributed partial query, processing the partial query, and returning a result to a distribution source computer node.
請求項7記載の問合せ並列処理システムにおいて、
前記配布数決定手段は、前記各部分問合せ処理用の計算機ノードで処理中の部分問合せの数がそれぞれ所定数となるように、部分問合せの配布数を決定する構成を有することを特徴とする問合せ並列処理システム。
The query parallel processing system according to claim 7,
The distribution number determining means is configured to determine the distribution number of partial queries so that the number of partial queries being processed in each of the partial query processing computer nodes is a predetermined number. Parallel processing system.
請求項7記載の問合せ並列処理システムにおいて、
前記問合せ処理用の計算機ノードを複数備えたことを特徴とする問合せ並列処理システム。
The query parallel processing system according to claim 7,
A query parallel processing system comprising a plurality of computer nodes for query processing.
複数の部分問合せ処理用の計算機ノードそれぞれにその計算機ノードだけがアクセスできる二次記憶装置が接続され、データベースを複数の部分に分割することによって作成された複数の部分データベースが前記複数の二次記憶装置に分散して格納され、更に前記各部分データベースの複製がその原本とは異なる二次記憶装置に格納された無共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムであって、
前記データベースに対する問合せを受け付ける1台の問合せ処理用の計算機ノードを備え、
該問合せ処理用の計算機ノードが、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段と、
前記部分問合せ処理用の計算機ノードに障害が発生したことを検出する障害検出手段と、
前記部分問合せ処理用の計算機ノードの内の、前記障害検出手段で障害発生が検出された計算機ノード以外の計算機ノードについて、その負荷に応じて動的に配布すべき部分問合せの数を決定する配布数決定手段と、
前記各部分問合せ処理用の計算機ノードと、その計算機ノードからアクセス可能な部分データベースの原本,複製との対応関係を管理する格納状況管理手段と、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、その計算機ノードがアクセス可能な部分データベースの全てを前記格納状況管理手段を用いて認識し、それら部分データベースに対する部分問合せの中から、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段とを備え、
前記部分問合せ処理用の計算機ノードが、それぞれ、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段を備えたことを特徴とする問合せ並列処理システム。
A plurality of partial databases created by dividing a database into a plurality of parts are connected to a secondary storage device that can be accessed only by the computer node for each of the plurality of partial query processing computer nodes. Query parallel processing for processing queries to the database in parallel on a non-shared cluster system that is distributed and stored in a device, and in which a copy of each partial database is stored in a secondary storage device different from the original A system,
A computer node for query processing that accepts queries to the database;
The computer node for the query processing is
A procedure for analyzing a query to the database and processing the query, and for deriving a processing procedure including a partial query for each partial database constituting the database to be queried and a merge process of the partial query results Analysis means;
Failure detection means for detecting that a failure has occurred in the computer node for partial query processing;
Distribution that determines the number of partial queries to be dynamically distributed according to the load of computer nodes other than the computer node in which the failure detection is detected by the failure detection means among the computer nodes for partial query processing Number determining means;
A storage status management means for managing a correspondence relationship between the computer node for each partial query process and the original and duplicated partial database accessible from the computer node;
When processing the query according to the processing procedure derived by the query analysis means and distributing the partial query to the computer node for the partial query processing, the storage status management is performed for all the partial databases accessible to the computer node. When undistributed partial queries of the number of distributions determined using the distribution number determination means are distributed from the partial queries to those partial databases, and the partial query results are returned Comprises a query integration processing means for deriving a query result while merging related results,
The computer nodes for the partial query processing are respectively
A parallel query processing system comprising: partial query processing means for receiving a distributed partial query, processing the partial query, and returning a result to a distribution source computer node.
請求項10記載の問合せ並列処理システムにおいて、
前記配布数決定手段は、前記各部分問合せ処理用の計算機ノードの内の、前記障害検出手段によって障害発生が検出された計算機ノード以外の計算機ノードで処理中の部分問合せの数がそれぞれ所定数となるように、部分問合せの配布数を決定する構成を有することを特徴とする問合せ並列処理システム。
The query parallel processing system according to claim 10,
The number-of-distribution determination means includes a predetermined number of partial queries being processed in a computer node other than the computer node in which the failure detection is detected by the failure detection means among the computer nodes for each partial inquiry processing. Thus, a query parallel processing system having a configuration for determining the number of partial queries distributed.
請求項10記載の問合せ並列処理システムにおいて、
前記問合せ処理用の計算機ノードを複数備えたことを特徴とする問合せ並列処理システム。
The query parallel processing system according to claim 10,
A query parallel processing system comprising a plurality of computer nodes for query processing.
データベースを複数の部分に分割することによって作成された複数の部分データベースが分散して格納された複数の二次記憶装置を、複数の部分問合せ処理用の計算機ノードが共有する共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムを、複数台の部分問合せ処理用の計算機ノードと1台の問合せ処理用の計算機ノードとによって実現するためのプログラムを記録した機械読み取り可能な記録媒体であって、
前記問合せ処理用の計算機ノードを、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段、
前記各部分問合せ処理用の計算機ノードについて、その負荷に応じて動的に配布すべき部分問合せの数を決定する配布数決定手段、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、各部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段として機能させるためのプログラムと、
前記各部分問合せ処理用の計算機ノードを、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段として機能させるためのプログラムとを記録した、プログラムを記録した機械読み取り可能な記録媒体。
A shared cluster system in which multiple secondary query devices that share multiple partial databases created by dividing a database into multiple parts are shared by multiple partial query processing computer nodes Thus, a machine readable recording of a program for realizing a query parallel processing system for processing a query for the database in parallel with a plurality of computer nodes for partial query processing and one computer node for query processing. Recording medium,
The computer node for the query processing is
A procedure for analyzing a query to the database and processing the query, and for deriving a processing procedure including a partial query for each partial database constituting the database to be queried and a merge process of the partial query results Analysis means,
Distribution number determination means for determining the number of partial queries to be dynamically distributed according to the load for each of the partial query processing computer nodes,
When processing the query according to the processing procedure derived by the query analysis means and distributing the partial query to the computer nodes for each partial query processing, only the number of distributions determined by the distribution number determination means is not yet determined. A program for distributing a partial query of distribution and functioning as a query integration processing means for deriving a query result while merging related results when a partial query result is returned,
The computer node for each partial query process is
A machine-readable recording medium on which a program is recorded, which receives a distributed partial query, processes the partial query, and records a program for functioning as a partial query processing unit that returns a result to a distribution source computer node .
複数の部分問合せ処理用の計算機ノードそれぞれにその計算機ノードだけがアクセスできる二次記憶装置が接続され、データベースを複数の部分に分割することによって作成された複数の部分データベースが前記複数の二次記憶装置に分散して格納された無共有型クラスタシステムの上で、前記データベースに対する問合せを並列に処理する問合せ並列処理システムを、複数の部分問合せ処理用の計算機ノードと1台の問合せ処理用の計算機ノードとによって実現するためのプログラムを記録した機械読み取り可能な記録媒体であって、
前記問合せ処理用の計算機ノードを、
前記データベースに対する問合せを解析し、この問合せを処理する手順であって、問合せ対象となるデータベースを構成する各部分データベースに対する部分問合せと、部分問合せの結果のマージ処理とを含む処理手順を導出する問合せ解析手段、
前記各部分問合せ処理用の計算機ノードと、その計算機ノードからアクセス可能な部分データベースとの対応関係を管理する格納状況管理手段、
前記各部分問合せ処理用の計算機ノードについて、その負荷に応じて配布するべき部分問合せの数を決定する配布数決定手段、
前記問合せ解析手段で導出した処理手順に従って問合せの処理を進め、各部分問合せ処理用の計算機ノードに対し部分問合せを配布する際には、各計算機ノードがアクセス可能な部分データベースの全てを前記格納状況管理手段を用いて認識し、それら部分データベースに対する部分問合せの中から、前記配布数決定手段を用いて決定した配布数だけの未配布の部分問合せを配布し、部分問合せの結果が返却された際には、関連する結果をマージしながら問合せの結果を導出する問合せ統合処理手段として機能させるためのプログラムと、
前記各部分問合せ処理用の計算機ノードを、
配布された部分問合せを受け、その部分問合せの処理を行い、配布元の計算機ノードに結果を返す部分問合せ処理手段として機能させるためのプログラムとを記録した、プログラムを記録した機械読み取り可能な記録媒体。
A plurality of partial databases created by dividing a database into a plurality of parts are connected to a secondary storage device that can be accessed only by the computer node for each of the plurality of partial query processing computer nodes. A query parallel processing system for processing a query to the database in parallel on a non-shared cluster system distributed and stored in a device, comprising a plurality of computer nodes for partial query processing and one computer for query processing A machine-readable recording medium recording a program to be realized by a node,
The computer node for the query processing is
A procedure for analyzing a query to the database and processing the query, and for deriving a processing procedure including a partial query for each partial database constituting the database to be queried and a merge process of the partial query results Analysis means,
A storage status management means for managing a correspondence relationship between the computer nodes for each partial query processing and a partial database accessible from the computer nodes;
Distribution number determination means for determining the number of partial queries to be distributed according to the load for each of the partial query processing computer nodes;
When processing the query according to the processing procedure derived by the query analysis means and distributing the partial query to the computer nodes for each partial query processing, all the partial databases accessible to each computer node are stored in the storage status. Recognized using the management means, and from the partial queries to those partial databases, the undistributed partial queries corresponding to the number of distributions determined using the distribution number determining means are distributed, and the partial query results are returned. Includes a program for functioning as a query integration processing means for deriving a query result while merging related results,
The computer node for each partial query process is
A machine-readable recording medium on which a program is recorded, which receives a distributed partial query, processes the partial query, and records a program for functioning as a partial query processing unit that returns a result to a distribution source computer node .
JP13674299A 1999-05-18 1999-05-18 Query parallel processing system and machine-readable recording medium recording program Expired - Fee Related JP3777872B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13674299A JP3777872B2 (en) 1999-05-18 1999-05-18 Query parallel processing system and machine-readable recording medium recording program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13674299A JP3777872B2 (en) 1999-05-18 1999-05-18 Query parallel processing system and machine-readable recording medium recording program

Publications (2)

Publication Number Publication Date
JP2000330959A JP2000330959A (en) 2000-11-30
JP3777872B2 true JP3777872B2 (en) 2006-05-24

Family

ID=15182453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13674299A Expired - Fee Related JP3777872B2 (en) 1999-05-18 1999-05-18 Query parallel processing system and machine-readable recording medium recording program

Country Status (1)

Country Link
JP (1) JP3777872B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
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 (en) * 2005-03-22 2011-07-13 日本電気株式会社 Fingerprint verification system, fingerprint verification processing device, and fingerprint verification processing method
JP2007199804A (en) * 2006-01-24 2007-08-09 Hitachi Ltd Database management method, database management program, database management device, and database management system
JP2009086741A (en) * 2007-09-27 2009-04-23 Hitachi Ltd Distributed processing control method in heterogeneous node existing distributed environment and its system and its program
WO2011151852A1 (en) 2010-05-31 2011-12-08 Hitachi, Ltd. Data processing method and computer system
JP5681781B2 (en) * 2013-12-24 2015-03-11 株式会社野村総合研究所 Data utilization system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3023441B2 (en) * 1993-11-16 2000-03-21 株式会社日立製作所 Database division management method and parallel database system
JP3350838B2 (en) * 1995-05-26 2002-11-25 日本電信電話株式会社 Distributed system control method
JP3732655B2 (en) * 1998-06-22 2006-01-05 株式会社日立製作所 Database management system, database management apparatus, and query processing method

Also Published As

Publication number Publication date
JP2000330959A (en) 2000-11-30

Similar Documents

Publication Publication Date Title
US8386473B2 (en) Process architecture for elastic stateful shared nothing system
US20090254523A1 (en) Hybrid term and document-based indexing for search query resolution
KR101259557B1 (en) Cluster data management system and method for data recovery using parallel processing in cluster data management system
CN106233275B (en) Data management system and method
US7761407B1 (en) Use of primary and secondary indexes to facilitate aggregation of records of an OLAP data cube
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
US7558802B2 (en) Information retrieving system
US20190236068A1 (en) Joining large database tables
US10866970B1 (en) Range query capacity allocation
US20130031229A1 (en) Traffic reduction method for distributed key-value store
US20110066591A1 (en) Policy-based storage structure distribution
US20040181523A1 (en) System and method for generating and processing results data in a distributed system
US10929401B2 (en) Policy-based storage structure distribution
JP3584630B2 (en) Classification and aggregation processing method in database processing system
JP3777872B2 (en) Query parallel processing system and machine-readable recording medium recording program
Zhou et al. Data partitioning for parallel spatial join processing
US20010027467A1 (en) Massively distributed database system and associated method
do Carmo Oliveira et al. Set similarity joins with complex expressions on distributed platforms
US8311989B1 (en) Query logging in a multi-database system
JP2011216029A (en) Distributed memory database system, database server, data processing method, and program thereof
Chiu et al. Design and evaluation of distributed smart disk architecture for I/O-intensive workloads
Siachamis et al. Adaptive distributed streaming similarity joins
NR et al. MapReduce‐based storage and indexing for big health data
JP2001160039A (en) Distributed parallel data processor and recording medium with distributed parallel data processing program, and distributed parallel data processing system

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