JP5238219B2 - 情報処理システム及びパイプライン処理制御方法 - Google Patents

情報処理システム及びパイプライン処理制御方法 Download PDF

Info

Publication number
JP5238219B2
JP5238219B2 JP2007280649A JP2007280649A JP5238219B2 JP 5238219 B2 JP5238219 B2 JP 5238219B2 JP 2007280649 A JP2007280649 A JP 2007280649A JP 2007280649 A JP2007280649 A JP 2007280649A JP 5238219 B2 JP5238219 B2 JP 5238219B2
Authority
JP
Japan
Prior art keywords
data set
data
transmission
server
buffered
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.)
Active
Application number
JP2007280649A
Other languages
English (en)
Other versions
JP2009110193A (ja
Inventor
雅一 服部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007280649A priority Critical patent/JP5238219B2/ja
Priority to EP08016631A priority patent/EP2056224A1/en
Priority to US12/234,727 priority patent/US8112438B2/en
Priority to CN200810175923.5A priority patent/CN101425077B/zh
Publication of JP2009110193A publication Critical patent/JP2009110193A/ja
Application granted granted Critical
Publication of JP5238219B2 publication Critical patent/JP5238219B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、並列データベースを構成するコーディネータサーバ及び複数のデータベースサーバと、並列データベースで行うパイプライン処理制御方法とに関する。
従来より、命令の読み込み、解釈、実行、結果の書き込みなどを行うプロセッサの高速化技術として、例えば、パイプライン処理技術がある。パイプライン処理とは、各フェーズの処理を独立動作させることで、前のフェーズの処理サイクルが終わる前に次のフェーズの処理を開始し、これを繰り返す処理である。これにより、流れ作業が実現し、処理全体の性能が改善する。
一方、大量のデータを管理する技術として、並列データベース技術がある。並列データベースでは、大量のデータに対応するため、複数台のサーバからなるシステムが構築されている。均一のデータ形式を持つ大量のデータ集合を複数のデータベースに分割配置する。また、データ集合を複数のデータベースに分割配置するのではなく、複数のデータベースに重複して配置するケースもある。データ集合をこのように配置することで、同一のデータに対する同時アクセス数が高いケースでは、スループットの向上が期待できる。
このような並列データベースにおいてデータを管理する方式は、複数のサーバがディスクを共有しない方式(ディスク非共有方式)と、複数のサーバがディスクを共有する方式(ディスク共有方式)と、複数のサーバがディスクとメモリとを共有する方式(メモリ共有方式)との3方式に大別される。
ここで、ディスク非共有方式を中心に説明する。データ集合を複数のデータベースに分割配置する場合、データ集合の垂直分割とデータ集合の水平分割との2通りが考えられる(フラグメンテーション)。データ集合の水平分割は、データ集合の部分集合を作り出すことであり、後述のデータパーティショニングの手法が重要になる。データの垂直分割は、データを属性やカラムなどの単位で分割することである。各分割には、個々のアクセスパターンによりメリット及びデメリットが存在する。例えば、データの垂直分割では、問合せが少ないサイズのデータスキャンで済む場合は高速だが、オリジナルのデータが必要なときはサーバ間でのデータ結合が必要になり、大幅に性能は悪化する。
ディスク非共有方式の並列データベースで用いられる各サーバは、データ集合が分割配置された複数のデータベースに個々にアクセスすることで並列アクセスが可能となり、データベース数に応じた性能向上が期待される。これにより、処理効率や応答時間の改善が図られている(パーティション並列化)。
データパーティショニング手法としては、キーレンジパーティショニング、ハッシュパーティショニングなどが知られている。例えば、大量のデータ集合がリレーションで表現されているとする。キーレンジパーティショニングやハッシュパーティショニングでは、テーブルの 1カラム値を使用する場合と、リレーションの複数のカラム値を使用する場合とがある。このようなデータパーティショニングを行うと、負荷は集中するものの、対象カラムに対する範囲条件つきの検索では無関係なデータベースにアクセスする非効率を回避できる。さらに、対象カラムでの自然結合を含む検索は、異なるデータベース間の結合が不要となるので、大幅に性能を改善することができる。
ただし、並列データベースでは、均衡がとれたデータパーティショニングを行わないと、検索時に特定のデータベースに負荷が集中するため、並列化の効果を発揮することが困難である。しかし、入力データの傾向の変化により、各データサイズは不均衡になる可能性があり、事前に決められたデータ分割ルールではそれを回避することが困難である。そのため、動的にキーレンジを変更する、ハッシュ値を変更するなどの改善手法が提案されてきたが、このような手法では、変更にともなうデータ移動などの負担が大きくなる。
ところで、並列データベースは、1台のコーディネータサーバと複数台のデータベースサーバとから構成されることが多い。このような構成において、並列データベースでは以下のような処理が行われる。クライアントからの要求を受け付けたコーディネータサーバは、その要求を解析してプランを生成して、複数台のデータベースサーバに各プランを振り分ける。各データベースサーバは振り分けられたプランを実行して、その処理結果のデータ集合をコーディネータサーバに送信する。コーディネータサーバは送信されたデータ集合に対してマージなど集計処理を施して、クライアントに送信する。サーバ間で受け渡されるデータはLAN(Local Area Network )などのネットワーク上でストリーム送信される。そのため、並列データベースは、ネットワークも高速サーバ間インターコネクトなど分散並列プラットフォーム上で実現されることが多い。
以上のような処理を高速化するために、並列データベースにおいては、SQLの内部処理のスキャン、ソート、ジョインといったフェーズ処理を複数のプロセスや複数台のサーバで並列化するメカニズムが組み込まれている。一部のデータベース製品には、各フェーズの処理を独立に動作させて前のフェーズ処理が終わる前に次のフェーズ処理を始める、といったパイプライン方式も採用されている(パイプライン並列化)。
パイプライン並列化については、例えば、特許文献1に、並列データベースシステムを構成する各ノードで実行するデータベース演算に対応して各ノード数を決定し、また、データの分割にバラツキが存在する場合、各ノードへデータを均等に分割させる方式が記載されている。この特許文献1の技術では、各ノードで実行する各データベース演算をパラメタ化し、期待する処理時間を均等化させるので、各ノード間で処理時間の偏りがなく、パイプライン処理において円滑に動作させることが可能となる。
特開2001−147847号公報
しかし、特許文献1の技術は、並列データベースでソートやマージなどDISK I/O処理以外のCPU処理を複数のノードに分配することにより均等化することを目的としている。このため、クライアントからのデータ取得要求に連動した、フェッチなどのパイプライン処理について、以下のような問題が発生する恐れがあった。DBサーバの処理にコーディネータサーバの処理が追いつかない場合、コーディネータサーバ側にデータ集合が溜まり過ぎる可能性があり、コーディネータサーバのメモリなどリソースを圧迫するという問題である。
本発明は、上記に鑑みてなされたものであって、コーディネータサーバのメモリなどのリソースを圧迫することなく、並列データベースにおいてパイプライン処理を実現可能なコーディネータサーバ、データベースサーバ及びパイプライン処理制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、データを各々記憶する複数の並列化されたデータベースサーバと、前記データベースサーバに接続されパイプライン処理可能なコーディネータサーバとを備える情報処理システムであって、前記コーディネータサーバは、クライアントからのデータ取得を要求する問合せ要求に応じて複数の前記データベースサーバに対して処理命令を送信する第1送信手段と、前記処理命令に応じて処理された結果前記データベースサーバから送信されたデータ集合を集約して前記クライアントに送信する第2送信手段と、前記データベースサーバから送信されたデータ集合をバッファリングするバッファ手段と、前記バッファ手段にバッファリングされたデータ集合を集約する集約手段と、前記バッファ手段にバッファリングされた前記データ集合のデータ量に基づいて、前記データベースサーバからの前記データ集合の送信開始又は送信停止を決定する第1決定手段と、前記第1決定手段の決定結果に基づいて、前記データ集合の送信開始又は送信停止を命令する制御命令を前記データベースサーバに対して送信する第3送信手段と、を備え、前記データベースサーバは、前記コーディネータサーバに対して処理結果として送信するデータ集合の1回あたりの送信量を、回数を重ねる毎に増加させるよう設定する設定手段と、設定された送信量のデータ集合を前記コーディネータサーバに対して送信する第4送信手段と、前記データ集合の送信開始又は送信停止を命令する制御命令を前記コーディネータサーバから受信する受信手段と、を備え、前記受信手段が、前記データ集合の送信停止を命令する制御コマンドを受信した後、前記データ集合の送信開始を命令する制御コマンドを受信した場合、前記設定手段は、前記送信量の設定を初期値に戻すことを特徴とする。
また、本発明は、第1送信手段と、第2送信手段と、集約手段と、決定手段と、第3送信手段とを有し、データベースサーバに接続されパイプライン処理可能なコーディネータサーバと、設定手段と、第4送信手段とを有するデータを各々記憶する複数の並列化されたデータベースサーバと、を備える情報処理システムで実行されるパイプライン処理制御方法であって、前記第1送信手段が、クライアントからのデータの取得を要求する問合せ要求に応じて複数の前記データベースサーバに対して処理命令を送信するステップと、前記第2送信手段が、前記処理命令に応じて処理された結果前記データベースサーバから送信されたデータ集合を集約して前記クライアントに送信するステップと、前記集約手段が、前記データベースサーバから送信されバッファ手段にバッファリングされたデータ集合を集約するステップと、前記決定手段が、前記バッファ手段にバッファリングされた前記データ集合のデータ量に基づいて、前記データベースサーバからの前記データ集合の送信開始又は送信停止を決定するステップと、前記第3送信手段が、前記決定手段の決定結果に基づいて、前記データ集合の送信開始又は送信停止を命令する制御命令を前記データベースサーバに対して送信するステップと前記設定手段が、前記コーディネータサーバに対して処理結果として送信するデータ集合の1回あたりの送信量を、回数を重ねる毎に増加させるよう設定するステップと、前記第4送信手段が、設定された送信量のデータ集合を前記コーディネータサーバに対して送信するステップとを含むことを特徴とする。
本発明によれば、コーディネータサーバのメモリなどのリソースを圧迫することなく、並列データベースにおいてパイプライン処理を実現することができる。
以下に添付図面を参照して、この発明にかかる、コーディネータサーバ、データベースサーバ及びパイプライン処理制御方法の最良な実施の形態を詳細に説明する。
[第1の実施の形態]
(1)構成
図1は、本の実施の形態にかかる並列データベースシステムの構成を例示する図である。並列データベースシステムは、アプリケーションプログラムが実行されるクライアントコンピュータ(以下、クライアントという)50と、並列データベース51とを有し、これらがネットワーク52を介して接続されて構成される。並列データベース51は1台のコーディネータサーバ60と複数台のDBサーバ70A〜70Bとを有する。ネットワーク52は、例えば、LAN(Local Area Network)、イントラネット、イーサネット(登録商標)又はインターネットなどである。コーディネータサーバ60は、クライアント50と複数のDBサーバ70A〜70Bと接続され、クライアント50からの問合せ要求を受け付けて、当該要求に応じてDBサーバ70A〜70Bに対してコマンドや実行プランなどの処理要求を送信し、その処理結果をDBサーバ70A〜70Bから受け取り、問い合わせ要求に応じた処理結果をクライアント50に送信する。DBサーバ70A〜70Bは、並列化されたリレーショナルデータベースなどのデータベースを各々有し、当該データベースへの記憶やアクセスを各々制御する。DBサーバ70A〜70Bは各々、コーディネータサーバ60から送信されたコマンドや実行プランなどの処理要求を受け付けて、その要求に応じた処理結果をコーディネータサーバ60に送信する。
尚、クライアント50、コーディネータサーバ60及びDBサーバ70A〜70Bは各々、装置全体の制御を行うCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、情報を表示するディスプレイ装置等の表示装置と、ユーザが各種処理要求を入力するためのキーボードやマウス等の入力装置と、ネットワーク52を介して外部のコンピュータと通信を行う通信制御装置と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。
このようなハードウェア構成において、コーディネータサーバ60が、記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される機能について説明する。以下に、コーディネータサーバ60において実現される各種機能の実体となる各部について説明する。コーディネータサーバ60は、受信部600及び送信部601と、問合せ解析部602と、分散プラン生成部603と、分散プラン実行部604と、送信部605及び受信部606と、フェッチ制御部607と、データマージ部608とを有する。
受信部600は、クライアント50から問合せ要求などのデータを受信する。送信部601は、クライアント50へ処理結果などのデータを送信する。問合せ解析部602は、クライアント50からの問合せ要求を解析する。分散プラン生成部603は、解析された問合せ要求に基づいてDBサーバ70A〜70Bに処理を行わせるための各分散プランを生成する。分散プラン実行部604は、生成された分散プランを実行する。受信部606は、DBサーバ70A〜70Bから送信された処理結果などのデータを受信する。送信部605は、DBサーバ70A〜70Bへ分散プランなどのデータを送信する。
データマージ部608は、各DBサーバ70A〜70Bから処理結果として得られる2つのデータ集合をマージすることにより当該データ集合を集約する。また、データマージ部608は、クライアント50から、処理結果の送信に関する処理要求としてカーソルのフェッチ要求などの処理要求が受信部600を介して受信された場合、当該要求に応じた処理を行う。フェッチ制御部607は、各DBサーバ70A〜70Bから処理結果のデータ集合を取得(GET)時に、データ集合のデータサイズに基づいて、DBサーバ70A〜70Bからのデータ集合の送信開始又は送信停止を決定し、その決定内容を示す制御コマンドをDBサーバ70A〜70Bに対して適宜送信することにより、DBサーバ70A〜70Bからのデータ集合の送信を制御する。また、フェッチ制御部607は、データマージ部608がマージしたデータ集合を処理結果として送信部601を介してクライアント50に送信する。
次に、DBサーバ70Aが、記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される機能について説明する。以下に、DBサーバ70Aにおいて実現される各種機能の実体となる各部について説明する。DBサーバ70Aは、受信部700A及び送信部701Aと、問合せ解析部702Aと、単体プラン生成部703Aと、単体プラン実行部704Aと、フェッチ制御部705Aとを有する。この他、DBサーバ70Aは、例えば、外部記憶装置に記憶されるDB706Aを有する。受信部700Aは、コーディネータサーバ60からの処理要求などのデータを受信する。送信部701Aは、コーディネータサーバ60へ処理結果などのデータを送信する。問合せ解析部702Aは、コーディネータサーバ60から送信されたコマンドなどの処理要求やプランを解析する。単体プラン生成部703Aは、解析された問合せからDB706Aにアクセスするための単体プランを生成する。単体プランには、例えば、索引スキャン、データ取得、データ比較などDBアクセスオペレータが含まれる。単体プラン実行部704Aは、生成された単体プランを実行する。フェッチ制御部705Aは、単体プランの実行の結果得られたデータ集合を処理結果としてコーディネータサーバ60に送信部701Aを介して送信する。ここで、フェッチ制御部705Aは、コーディネータサーバ60から送信される後述の制御コマンドに応じて、データ集合の送信を制御する。
DBサーバ70Bは、受信部700B及び送信部701Bと、問合せ解析部702Bと、単体プラン生成部703Bと、単体プラン実行部704Bと、フェッチ制御部705Bとを有する。これらの各部の構成については、上述の受信部700A及び送信部701Aと、問合せ解析部702Aと、単体プラン生成部703Aと、単体プラン実行部704Aと、フェッチ制御部705Aと各々略同様であるため、その説明を省略する。また、DBサーバ70Bは、例えば、外部記憶装置に記憶されるDB706Bを有する。このDB706B及びDBサーバ70Aが有するDB706Aは、同一リレーショナルスキーマを持つ複数のレコードからなるリレーショナルデータベースになっており、上述した水平分割によりデータベースが2つに分割された状態であるものとする。
図2は、DB706A及びDB706Bに各々記憶されたデータのイメージを例示する図である。ここでは、DB706A及びDB706Bには、書籍に関する書籍データが記憶されており、書籍DBとして機能するものとする。例えば、DB706Aには、100件の書籍データR1_1〜R1_100が記憶されており、DB706Bには、200件の書籍データR2_1〜R1_200が記憶されているものとする。各書籍データは、タイトル、筆頭筆者、出版社名及び出版年という4つのカラムを有している。尚、出版社名というカラムには文字列索引が付いているおり、書籍データの各レコードにはレコードIDが付与されているものとする。
図3は、クライアント50からコーディネータサーバ60に対して送信される問合せ要求を例示する図である。問合せ要求とは、データの取得を要求するものであり、問合せ要求には、例えばSQL言語が用いられる。同図に示される「select タイトルfrom 書籍DB where 出版年 > 1996 order by 出版社名」という問い合わせ要求は、「出版年が1996年以降の出版物のデータのうち、タイトルと出版社名とを含むデータを出版社名で昇順にして返す」ことを要求している。
図4は、図3に示した問合せ要求に対して、コーディネータサーバ60が生成した分散プランを例示する図である。この分散プランは、コーディネータサーバ60の問合せ解析部602が、クライアント50から送信された問合せを解析し、分散プラン生成部602が生成したものである。尚、プランは実際にはバイナリデータなどのデータとして生成されるが、ここでは簡単化して示している。同図に示された分散プランは、以下の(a),(b)を意味している。
(a)各DBサーバ70A〜70Bは、「出版年が1996年以降の出版物で、タイトルを出版社名で昇順にした」データ集合をコーディネータサーバ60に返す。
(b)コーディネータサーバ60は、DBサーバ70A〜70Bから得られた2つのデータ集合を出版社カラムで昇順にしてマージする。
このような分散プランが実行された結果が、図3に示した問合せ要求に応じたデータ集合となる。
図5は、DBサーバ70Aが生成する単体プランを模式的に例示した図である。この単体プランは、DBサーバ70Aの問合せ解析部702Aが、コーディネータサーバ60から送信された分散プランを解析し、単体プラン生成部703Aが生成するものである。同図に示された単体プランは、以下の(c),(d),(e)を意味している。
(c)索引スキャン:書籍データの出版社名に付いている文字列索引により索引スキャンを行い、昇順になった各レコードに付与されているレコードIDの集合を得る。
(d)データ取得:索引スキャンの結果得られた各レコードIDを基に、書籍データの各レコードに含まれるカラムのうちタイトル、出版社名及び出版年の3つのカラムのカラム値を取得する。
(e)データ比較:取得した出版年のカラム値が「1996」を超えたレコードだけをフィルタリングする。
このような単体プランをDBサーバ70Aの単体プラン実行部704Aが実行し、上記(e)のフィルタリングの結果得られたデータ集合を示す結果リストを生成する。そして、フェッチ制御部705Aが、結果リストを基にデータ集合を取得してこれを処理結果として送信部701Aを介してコーディネータサーバ60に送信する。尚、DBサーバ70Bも、DBサーバ70Aと同様の処理を行う。
次に、DBサーバ70A〜70Bから処理結果として送信されたデータ集合をコーディネータサーバ60のデータマージ部608がマージする処理の概要について説明する。図6は、データマージ部608が行うマージ処理の概念を示す図である。ここでは、DBサーバ70Aから得られたデータ集合が入力ライン608Aにバッファリングされ、DBサーバ70Bから得られたデータ集合が入力ライン608Bにバッファリングされる。データマージ部608は、入力ライン608A〜608Bにバッファリングされたデータ集合を出版社名で昇順にしてマージして出力ライン608Dにバッファリングする。また、制御ライン608Cには、クライアント50から送信される、カーソルのフェッチ要求などの要求が入力される。データマージ部608は、制御ライン608Cに入力されたフェッチ要求などの要求に基づいて、出力ライン608Dにバッファリングされたデータ集合のクライアント50への送信の可否を判断する。
入力ライン608A〜608B、出力ライン608D及び制御ライン608Cは各々、所定の配列構造をなしている。例えば、その配列構造は、リングバッファなどキュー構造であり、tailとtopというカーソルが各々付与された構造である。図7は、入力ライン608A〜608B及び出力ライン608Dのデータ構造を模式的に示す図である。例えば、入力ライン608Aには、データ集合のうち最後のデータを指定する入力ラインA.tailと、データ集合のうち先頭のデータを指定する入力ラインA.topとが付与されている。入力ライン608Bについても同様に、入力ラインB.tailと、入力ラインB.topとが付与されている。出力ライン608Dには、クライアント50に未送信のデータ集合のうち最後のデータを指定する出力ライン.tailと、クライアント50に未送信のデータ集合のうち先頭のデータを指定する出力ライン.topとが付与されている。
そして、このような出力ライン608D及び入力ライン608A〜608Bにバッファリングされたデータ集合のデータサイズに基づいて、コーディネータサーバ60のフェッチ制御部607が、上述したように、DBサーバ70A〜70Bからのデータ集合の送信開始又は送信停止を決定する。この処理の詳細については以下の動作欄で説明する。
一方、DBサーバ70Aのフェッチ制御部705A及びDBサーバ70Bのフェッチ制御部705Bは、本実施の形態においては、コーディネータサーバ60に送信するデータ集合の送信ブロックサイズを段階的に増加させると共に、コーディネータサーバ60から送信された制御コマンドに応じて、データ集合の送信を停止したり再開したりする。フェッチ制御部705A〜705Bが行うこのような処理の詳細についても以下の動作欄で説明する。
(2)動作
次に、本実施の形態にかかる並列データベースシステムの動作について説明する。まず、コーディネータサーバ60の行う処理の手順について図8を参照しながら説明する。ここでは、上述したように、コーディネータサーバ60の問合せ解析部602が、クライアント50から送信された問合せを解析し、分散プラン生成部602が各分散プランを生成して送信部605を介して各DBサーバ70A〜70Bに対して送信する。そして、その結果、各DBサーバ70A〜70Bから送信された各データ集合が入力ライン608A〜608Bに各々バッファリングされ、これらがマージされて出力ライン608Dにバッファリングされているものとする。このとき、コーディネータサーバ60は、出力ライン608Dにバッファリングされているデータ集合のデータサイズが、条件1を満たすか否かを判断する(ステップS1)。条件1とは、当該データサイズが第1最低水位線(LWM:Low Watermark)以下であることである。当該判断結果が肯定的である場合、出力ラインにおけるデータ集合は不足している又は不足気味であると判断される。
次いで、コーディネータサーバ60は、全ての入力ライン608A〜608Bについて処理したか否かを判断し(ステップS2)、当該判断結果が否定的である場合、次いで、各入力ライン608A〜608Bにバッファリングされているデータ集合の各データサイズが、条件3を満たすか否かを判断する(ステップS3)。条件3とは、当該データサイズが第2最低水位線(LWM[x]:Low Watermark) 以下であることである。入力ライン608A〜608Bのうち少なくとも一方におけるデータ集合のデータサイズが条件3を満たす場合、条件3を満たす入力ライン(不足入力ラインという)におけるデータ集合は不足している又は不足気味であると判断される。次いで、コーディネータサーバ60は、その不足入力ラインにデータ集合をバッファリングさせるDBサーバ(DBサーバ70A〜70Bのうち少なくとも一方である)が停止(SUSPEND)状態であるか否かを判断する(ステップS4)。当該判断結果が肯定的である場合、コーディネータサーバ60は、不足入力ラインにおけるデータ集合を増やすべく、不足入力ラインにデータ集合をバッファリングさせるDBサーバに対して、データ集合を送信するよう命令する制御コマンド(RESTART コマンド)を送信する(ステップS5)。
尚、ステップS1の判断結果が否定的である場合、コーディネータサーバ60は、出力ラインにバッファリングされているデータ集合のデータサイズが条件2を満たすか否かを判断する(ステップS6)。条件2とは、当該データサイズが、第1最高水位線(HWM:High Watermark)以上であることである。当該判断結果が肯定的である場合、出力ライン608Dにおけるデータ集合は余剰気味であると判断される。次いで、コーディネータサーバ60は、全ての入力ライン608A〜608Bを処理したか否かを判断し(ステップS7)、当該判断結果が否定的である場合、次いで、各入力ライン608A〜608Bにバッファリングされているデータ集合のデータサイズが、条件4を満たすか否かを判断する(ステップS8)。条件4とは、当該データサイズが、第2最高水位線(HWM[x]:High Watermark)以上か否かを判断する。入力ライン608A〜608Bのうち少なくとも一方におけるデータ集合のデータサイズが条件4を満たす場合、条件4を満たす入力ライン(余剰入力ラインという)におけるデータ集合は余剰気味であると判断される。次いで、コーディネータサーバ60は、その余剰入力ラインにデータ集合をバッファリングさせるDBサーバ(DBサーバ70A〜70Bのうち少なくとも一方である)が開始(START)状態であるか否かを判断する(ステップS9)。当該判断結果が肯定的である場合、コーディネータサーバ60は、余剰入力ラインのデータ集合を減らすべく、余剰入力ラインにデータ集合をバッファリングさせるDBサーバに対して、データ集合を送信しないよう命令する制御コマンド(SUSPEND コマンド)を送信する(ステップS10)。
また、ステップS6の判断結果が否定的である場合又はステップS7の判断結果が肯定的である場合、ステップS11に進む。ステップS11では、コーディネータサーバ60は、クライアント50からデータ取得(GET)の要求があったか否かを判断し、当該判断結果が肯定的である場合、出力ライン.tailを進める(ステップS12)。次いで、コーディネータサーバ60は、出力ライン.tailが出力ライン.top以上か否かを判断する(ステップS13)。当該判断結果が肯定的である場合、送信可能且つ未送信のデータ集合が出力ラインにバッファリング済であるので、コーディネータサーバ60は、当該データ集合を処理結果としてクライアント50に送信して(ステップS14)、ステップS15に進む。ステップS11の判断結果が否定的である場合も、ステップS15に進む。
ステップS15では、コーディネータサーバ60は、DBサーバ70A〜70Bのうち少なくとも一方からデータ集合を受信したか否かを判断する。当該判断結果が肯定的である場合、当該データ集合を対応する入力ライン(入力ライン608A〜608Bのうち少なくとも一方)にバッファリングして、対応する入力ライン.tail(入力ラインA.tail〜入力ラインB.tailのうち少なくとも一方)を進める。
ステップS15の判断結果が否定的である場合、コーディネータサーバ60は、入力ライン608A〜608Bのうち少なくとも一方にバッファリングされたデータ集合を出力ライン608Dへ出力可能か否かを判断する(ステップS16)。当該判断結果が肯定的である場合、コーディネータサーバ60は、最小値のデータをバッファリングしている入力ライン(入力ライン[y]とする)からデータをポップし、入力ライン[y].top を戻して、そのデータを出力ライン608Dにプッシュし、出力ライン.topを進める(ステップS17)。
次いで、コーディネータサーバ60は、出力ライン.tailが出力ライン.top以上か否かを判断する(ステップS18)。当該判断結果が肯定的である場合、送信可能且つ未送信のデータ集合が出力ライン608Dにバッファリング済であるので、当該データ集合を処理結果としてクライアント50に送信する(ステップS19)。
尚、第1最高水位線(HWM:High Watermark)、第2最高水位線(HWM[x]:High Watermark)、第1最低水位線(LWM:Low Watermark) 及び第2最低水位線(LWM[x]:Low Watermark)の各値は予め設定し記憶装置や外部記憶装置に記憶させておく。また、各値は、例えば、各フェーズ処理で入力のデータサイズと出力のデータサイズと統計を採取することにより、適正な値に設定することができる。又は、問合せ要求(SQL)による事前解析で判断できることもある。例えば、第1最高水位線(HWM)及び第1最低水位線(LWM)の各値の設定例は以下の通りである。
HWM=2W
LWM=W
W:入力のデータサイズと出力のデータサイズとをブロックサイズで割った値
尚、フェーズ処理は1ブロック(例えば、4KB)を1単位としてパイプライン処理を行うものとする。
次に、DBサーバ70Aの行うフェッチ制御部705Aが行う処理の手順について図9を参照しながら説明する。ここでは、上述したように、DBサーバ70Aの問合せ解析部702Aが、コーディネータサーバ60から送信された分散プランを解析し、単体プラン生成部703Aが生成した単体プランを単体プラン実行部704Aが実行した結果得られたデータ集合を結果リストとしてRAMなどの記憶装置にバッファリングしているものとする。そして、ステップS30では、フェッチ制御部705Aは、コーディネータサーバ60から制御コマンドを受信したか否かを判断する。当該判断結果が肯定的である場合、フェッチ制御部705Aは、受信した制御コマンドがRESTARTコマンドか否かを判断し(ステップS31)、当該判断結果が肯定的である場合、停止(SUSPEND)状態であれば開始(START)状態となって(ステップS32)、送信ブロックサイズを初期値に戻して(ステップS33)、ステップS36に進む。尚、送信ブロックサイズの初期値は、記憶装置や外部記憶装置に予め記憶されている。
ステップS31の判断結果が否定的である場合、次いで、フェッチ制御部705Aは、受信した制御コマンドがSUSPENDコマンドか否かを判断し(ステップS34)、当該判断結果が肯定的である場合、停止(SUSPEND)状態となって(ステップS35)、ステップS36に進む。また、ステップS34の判断結果が否定的である場合、ステップS36に進む。
ステップS36では、フェッチ制御部705Aは、自身が停止(SUSPEND)状態であるか否かを判断し、当該判断結果が否定的である場合、送信ブロックサイズを増加させる(ステップS37)。例えば以下の式(1)により、フェッチ制御部705Aは送信部ブロックサイズを算出する。
y = C×x×2・・・(1)
送信ブロックサイズ:y
送信回数:x
定数:C(ブロックサイズなど)
このような式(1)によって送信ブロックサイズを算出することにより、送信回数に応じて送信ブロックサイズを単調増加させることができる。この場合、上述のステップS33で戻した送信ブロックサイズの上述の初期値は、「2C」となる。
その後、フェッチ制御部705Aは、送信ブロックサイズ分だけ結果リストからデータ集合を取り出し(ステップS38)、結果リストにあるデータ集合の全てを処理済であるか否かを判断し(ステップS39)、当該判断結果が否定的である場合、送信対象のデータ集合のデータサイズの合計が送信ブロックサイズを超えるか否かを判断する(ステップS40)。当該判断結果が肯定的である場合、フェッチ制御部705Aは、コーディネータサーバ60にデータ集合を送信する(ステップS41)。結果リストにあるデータ集合を全て送信した場合は(ステップS39:YES)、フェッチ制御部705Aは、コーディネータサーバ60に完了ステータス(TERM)を送信する(ステップS42)。
以上のようにして、フェッチ制御部705Aは、コーディネータサーバ60からの制御コマンドに応じて、処理結果のデータ集合を送信する。尚、DBサーバ70Bの行うフェッチ制御部705Bが行う処理の手順についても同様であるためその説明を省略する。
図10は、図2に示したデータを各々記憶するDBサーバ70A〜70Bから各々送信されるデータ集合と、これらがコーディネータサーバ60でマージされるデータ集合とを示すイメージ図である。同図に示されるように、DBサーバ70A〜70Bから各々送信されたデータ集合がコーディネータサーバ60でマージされてクライアント50に送信されることになる。
ここで、DBサーバ70Aが送信するデータ集合の送信ブロックサイズの変化について説明する。図11は、DBサーバ70Aが送信するデータ集合の送信ブロックサイズの単調増加に関する特性を説明するための図である。同図においては、1回目の送信においては小さい送信ブロックサイズであり、2回目以降の送信においては、送信ブロックサイズが一定値になるまで段階的に増加していることが示されている。また、DBサーバ70Aが一旦SUSPEND状態になると、送信ブロックサイズは「0」となり、再び開始(START)状態になったときに、1回目の送信時と同様の送信ブロックサイズから段階的に増加していることが示されている。
図12は、パイプライン処理の流れとして、コーディネータサーバ60の行う処理及びDBサーバ70A〜70Bの行う処理を時系列的に簡略化して示した図である。同図においては、DBサーバ70A〜70Bから各々送信されるデータ集合の送信ブロックサイズが段階的に増加していることが示されており、DBサーバ70Aでは、SUSPEND状態からSTART状態に復帰したときに送信ブロックサイズが初期化されていることが示されている。また、コーディネータサーバ60では、DBサーバ70A〜70Bから送信されるデータ集合をマージするデータマージ処理が滞りなく行われていることが同図において示されている。
一方、図13は、従来のパイプライン処理において、DBサーバ70A〜70Bの処理にコーディネータサーバ60の処理が追いつかない場合のパイプライン処理の流れを時系列的に簡略化して示した図である。このような場合、DBサーバ70A〜70Bから送信されたデータ集合がコーディネータサーバ60側に溜まり過ぎており、コーディネータサーバ60のメモリなどのリソースを圧迫する可能性がある。本実施の形態においては、コーディネータサーバ60側に溜まっているデータ集合のデータサイズを適宜判断して、DBサーバ70A〜70Bに対して、データ集合の送信をしないように命令する制御コマンド(SUSPENDコマンド)を適宜送信することにより、リソースの圧迫を回避することができる。
図14は、図13とは逆にコーディネータサーバ60の処理にDBサーバ70A〜70Bの処理が追いつかない場合のパイプラインの処理の流れを時系列的に簡略化して示した図である。このような場合、コーディネータサーバ60の待ちが多くなり、またクライアント50からのデータ取得の要求にもすぐ応えられず、初期応答性が悪化する恐れがある。本実施の形態においては、DBサーバ70A〜70Bから送信するデータ集合の送信ブロックサイズを小さい値から段階的に増加させることにより、初期応答性の悪化を抑制することができる。
図15は、DBサーバ70A〜70Bから送信するデータ集合の送信ブロックデータサイズを小さな値(例えば1ブロック)で固定的にした場合のパイプラインの処理の流れを時系列的に簡略化して示した図である。このような場合、コーディネータサーバ60とDBサーバ70A〜70Bとの間では、問合せ要求に応じた処理結果のデータ集合を生成する本来の処理以外においてオーバヘッドが増大する恐れがある。オーバヘッドとしては、データ送信時の初期化、終了処理に要するコスト、条件分岐でのチェックに要するコストなどの処理が挙げられる。このような場合においては、並列データベースシステム全体のスループットが低下する恐れがある。
以上のような構成によれば、コーディネータサーバのメモリなどのリソースを圧迫することなく、並列データベースにおいてパイプライン処理をスムーズに実現させることができる。
また、コーディネータサーバ60の処理にDBサーバ70A〜70B側の処理が追いつかない場合、コーディネータサーバ60の待ちが多くなったり、またクライアントからのデータ取得の要求にもすぐ応えられなかったりするなどの初期応答性の悪化を抑制することができる。
また、DBサーバ70A〜70Bからコーディネータサーバ60へ送信するデータサイズを段階的に増大させることにより、オーバヘッドの増大を抑制することができる。従って初期応答性の改善とオーバヘッドの縮小とを両立させることができる。
また、クライアント50からのコマンドに応じて必要な入力ラインについて処理を行うため、必ずしも全ての入力データを処理することなく、不要なデータ処理を抑制することができる。特に、データ検索では、検索条件に該当するデータが大量にヒットしても最初の数件のみ参照される場合が多い。このような場合にも、パイプライン方式における、各フェーズ処理は全ての入力データを処理するまで継続されるが、各フェーズ処理を緩やかな制御のままにしておくと、全ての入力データを処理してしまうため、不要なデータ処理が発生するからである。
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
<変形例1>
上述した実施の形態において、コーディネータサーバ60で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、当該プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。DBサーバ70A〜70Bで各々実行される各種プログラムについても同様である。
<変形例2>
上述した実施の形態においては、コーディネータサーバ60は、データマージ部608を有したが、この他に又はこれの代わりに各種の方法(ユニオンやジョインなど)によりデータを集約する手段を有するように構成しても良い。
一実施の形態にかかる並列データベースシステムの構成を例示する図である。 DB706A及びDB706Bに各々記憶されたデータのイメージを例示する図である。 クライアント50からコーディネータサーバ60に対して送信される問合せ要求を例示する図である。 図3に示した問合せ要求に対して、コーディネータサーバ60が生成した分散プランを例示する図である。 DBサーバ70Aが生成する単体プランを模式的に例示した図である。 データマージ部608が行うマージ処理の概念を示す図である。 入力ライン608A〜608B及び出力ライン608Dのデータ構造を模式的に示す図である。 コーディネータサーバ60の行う処理の手順を示すフローチャートである。 DBサーバ70Aの行うフェッチ制御部705Aが行う処理の手順を示すフローチャートである。 DBサーバ70A〜70Bから送信されるデータ集合と、これらがコーディネータサーバ60でマージされるデータ集合とを示すイメージ図である。 DBサーバ70Aが送信するデータ集合の送信ブロックサイズの単調増加に関する特性を説明するための図である。 パイプライン処理の流れとして、コーディネータサーバ60の行う処理及びDBサーバ70A〜70Bの行う処理を時系列的に簡略化して示した図である。 従来のパイプライン処理において、DBサーバ70A〜70Bの処理にコーディネータサーバ60の処理が追いつかない場合のパイプライン処理の流れを時系列的に簡略化して示した図である。 コーディネータサーバ60の処理にDBサーバ70A〜70Bの処理が追いつかない場合のパイプラインの処理の流れを時系列的に簡略化して示した図である。 DBサーバ70A〜70Bから送信するデータ集合の送信ブロックデータサイズを小さな値(例えば1ブロック)で固定的にした場合のパイプラインの処理の流れを時系列的に簡略化して示した図である。
符号の説明
50 クライアント
51 並列データベース
52 ネットワーク
60 コーディネータサーバ
70A DBサーバ
70B DBサーバ
600 受信部
601 送信部
602 問合せ解析部
603 分散プラン生成部
604 分散プラン実行部
604 分散プラン生成部
605 送信部
606 受信部
607 フェッチ制御部
608 データマージ部
608A 入力ライン
608B 入力ライン
608C 制御ライン
608D 出力ライン
700A,700B 受信部
701A,701B 送信部
702A,702B 問合せ解析部
703A,703B 単体プラン生成部
704A,704B 単体プラン実行部
705A,705B フェッチ制御部

Claims (8)

  1. データを各々記憶する複数の並列化されたデータベースサーバと、前記データベースサーバに接続されパイプライン処理可能なコーディネータサーバとを備える情報処理システムであって、
    前記コーディネータサーバは、
    クライアントからのデータ取得を要求する問合せ要求に応じて複数の前記データベースサーバに対して処理命令を送信する第1送信手段と、
    前記処理命令に応じて処理された結果前記データベースサーバから送信されたデータ集合を集約して前記クライアントに送信する第2送信手段と、
    前記データベースサーバから送信されたデータ集合をバッファリングするバッファ手段と、
    前記バッファ手段にバッファリングされたデータ集合を集約する集約手段と、
    前記バッファ手段にバッファリングされた前記データ集合のデータ量に基づいて、前記データベースサーバからの前記データ集合の送信開始又は送信停止を決定する第1決定手段と、
    前記第1決定手段の決定結果に基づいて、前記データ集合の送信開始又は送信停止を命令する制御命令を前記データベースサーバに対して送信する第3送信手段と、
    を備え、
    前記データベースサーバは、
    前記コーディネータサーバに対して処理結果として送信するデータ集合の1回あたりの送信量を、回数を重ねる毎に増加させるよう設定する設定手段と、
    設定された送信量のデータ集合を前記コーディネータサーバに対して送信する第4送信手段と、
    前記データ集合の送信開始又は送信停止を命令する制御命令を前記コーディネータサーバから受信する受信手段と、を備え、
    前記受信手段が、前記データ集合の送信停止を命令する制御コマンドを受信した後、前記データ集合の送信開始を命令する制御コマンドを受信した場合、前記設定手段は、前記送信量の設定を初期値に戻す
    ことを特徴とする情報処理システム。
  2. 前記バッファ手段は、複数の前記データベースサーバから各々送信されたデータ集合を各々バッファリングする複数の第1バッファ手段と、複数の前記第1バッファ手段にバッファリングされたデータ集合が集約された結果のデータ集合をバッファリングする第2バッファ手段とを有し、
    前記集約手段は、複数の前記第1バッファ手段にバッファリングされたデータ集合を集約して前記第2バッファ手段にバッファリングし、
    前記第1決定手段は、前記第1バッファ手段にバッファリングされた前記データ集合のデータ量又は前記第2バッファ手段にバッファリングされた前記データ集合のデータ量のうち少なくとも一方を用いて、前記データベースサーバからの前記データ集合の送信開始及び送信停止を決定する
    ことを特徴とする請求項1に記載の情報処理システム。
  3. 前記第1決定手段は、前記第1バッファ手段にバッファリングされた前記データ集合のデータ量が第1閾値以下である場合且つ前記第2バッファ手段にバッファリングされた前記データ集合のデータ量が第2閾値以下である場合、前記データベースサーバからの前記データ集合の送信開始を決定する
    ことを特徴とする請求項に記載の情報処理システム。
  4. 前記第1決定手段は、前記第1バッファ手段にバッファリングされた前記データ集合のデータ量が第3閾値以上である場合且つ前記第2バッファ手段にバッファリングされた前記データ集合のデータ量が第4閾値以上である場合、前記データベースサーバからの前記データ集合の送信停止を決定する
    ことを特徴とする請求項に記載の情報処理システム。
  5. 前記バッファ手段は、前記クライアントから送信された、前記処理結果の送信に関する処理要求をバッファリングする第3バッファ手段を更に有し、
    前記第3バッファ手段にバッファリングされた処理要求に応じて、前記第2バッファ手段にバッファリングされた前記データ集合を前記クライアントに送信するか否かを決定する第2決定手段と、
    前記第2決定手段の決定結果に応じて、前記第2バッファ手段にバッファリングされた前記データ集合を前記クライアントに送信する第2送信手段とを更に備える
    ことを特徴とする請求項に記載の情報処理システム。
  6. 前記集約手段は、前記データベースサーバから送信されたデータ集合をマージする
    ことを特徴とする請求項1乃至請求項5に記載の情報処理システム。
  7. 前記集約手段は、前記データベースサーバから送信されたデータ集合をマージする
    ことを特徴とする請求項1乃至請求項6に記載の情報処理システム。
  8. 第1送信手段と、第2送信手段と、集約手段と、決定手段と、第3送信手段とを有し、データベースサーバに接続されパイプライン処理可能なコーディネータサーバと、設定手段と、第4送信手段とを有するデータを各々記憶する複数の並列化されたデータベースサーバと、を備える情報処理システムで実行されるパイプライン処理制御方法であって、
    前記第1送信手段が、クライアントからのデータの取得を要求する問合せ要求に応じて複数の前記データベースサーバに対して処理命令を送信するステップと、
    前記第2送信手段が、前記処理命令に応じて処理された結果前記データベースサーバから送信されたデータ集合を集約して前記クライアントに送信するステップと、
    前記集約手段が、前記データベースサーバから送信されバッファ手段にバッファリングされたデータ集合を集約するステップと、
    前記決定手段が、前記バッファ手段にバッファリングされた前記データ集合のデータ量に基づいて、前記データベースサーバからの前記データ集合の送信開始又は送信停止を決定するステップと、
    前記第3送信手段が、前記決定手段の決定結果に基づいて、前記データ集合の送信開始又は送信停止を命令する制御命令を前記データベースサーバに対して送信するステップと
    前記設定手段が、前記コーディネータサーバに対して処理結果として送信するデータ集合の1回あたりの送信量を、回数を重ねる毎に増加させるよう設定するステップと、
    前記第4送信手段が、設定された送信量のデータ集合を前記コーディネータサーバに対して送信するステップとを含む
    ことを特徴とするパイプライン処理制御方法。
JP2007280649A 2007-10-29 2007-10-29 情報処理システム及びパイプライン処理制御方法 Active JP5238219B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007280649A JP5238219B2 (ja) 2007-10-29 2007-10-29 情報処理システム及びパイプライン処理制御方法
EP08016631A EP2056224A1 (en) 2007-10-29 2008-09-22 Coordinator server, database server, and pipeline processing control method
US12/234,727 US8112438B2 (en) 2007-10-29 2008-09-22 Coordinator server, database server, and pipeline processing control method
CN200810175923.5A CN101425077B (zh) 2007-10-29 2008-10-29 协调服务器、数据库服务器、及流水线处理控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007280649A JP5238219B2 (ja) 2007-10-29 2007-10-29 情報処理システム及びパイプライン処理制御方法

Publications (2)

Publication Number Publication Date
JP2009110193A JP2009110193A (ja) 2009-05-21
JP5238219B2 true JP5238219B2 (ja) 2013-07-17

Family

ID=40239779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007280649A Active JP5238219B2 (ja) 2007-10-29 2007-10-29 情報処理システム及びパイプライン処理制御方法

Country Status (4)

Country Link
US (1) US8112438B2 (ja)
EP (1) EP2056224A1 (ja)
JP (1) JP5238219B2 (ja)
CN (1) CN101425077B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110289070A1 (en) * 2010-05-20 2011-11-24 Lockheed Martin Corporation Dynamic resource orchestration system for data retrieval and output generation
JP5342087B2 (ja) * 2011-03-30 2013-11-13 株式会社日立製作所 計算機システム及びデータ管理方法
CN102957622B (zh) * 2011-08-16 2015-05-27 阿里巴巴集团控股有限公司 一种数据处理的方法、装置及***
CN107066509B (zh) * 2012-04-26 2020-12-04 阿里巴巴集团控股有限公司 信息提供方法、处理服务器及合并服务器
US9342557B2 (en) * 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
US9767149B2 (en) * 2014-10-10 2017-09-19 International Business Machines Corporation Joining data across a parallel database and a distributed processing system
US20230040834A1 (en) * 2021-08-03 2023-02-09 Data Culpa, Inc. Elastic data sampling in a data pipeline
CN115167317B (zh) * 2022-08-04 2024-05-14 中国核动力研究设计院 一种用于核电厂安全级dcs的维护方法、***及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3004102B2 (ja) * 1991-10-04 2000-01-31 株式会社東芝 データベース演算処理装置
JP3266351B2 (ja) * 1993-01-20 2002-03-18 株式会社日立製作所 データベース管理システムおよび問合せの処理方法
US6556988B2 (en) * 1993-01-20 2003-04-29 Hitachi, Ltd. Database management apparatus and query operation therefor, including processing plural database operation requests based on key range of hash code
JPH06348554A (ja) 1993-06-07 1994-12-22 Toshiba Corp データ処理装置
JP2933486B2 (ja) 1994-06-17 1999-08-16 株式会社日立製作所 データベースの同時全件検索方法
US6594651B2 (en) 1999-12-22 2003-07-15 Ncr Corporation Method and apparatus for parallel execution of SQL-from within user defined functions
US6507834B1 (en) * 1999-12-22 2003-01-14 Ncr Corporation Method and apparatus for parallel execution of SQL from stored procedures
JP2001147847A (ja) 2000-10-10 2001-05-29 Hitachi Ltd データベース管理システムおよび問合せの処理方法
US6961728B2 (en) * 2000-11-28 2005-11-01 Centerboard, Inc. System and methods for highly distributed wide-area data management of a network of data sources through a database interface
US7418441B2 (en) * 2001-02-28 2008-08-26 International Business Machines Corporation Data loading from a remote data source record by record
US6691109B2 (en) * 2001-03-22 2004-02-10 Turbo Worx, Inc. Method and apparatus for high-performance sequence comparison
US7519577B2 (en) 2003-06-23 2009-04-14 Microsoft Corporation Query intermediate language method and system
US7565370B2 (en) * 2003-08-29 2009-07-21 Oracle International Corporation Support Vector Machines in a relational database management system
JP2005101936A (ja) * 2003-09-25 2005-04-14 Canon Inc 通信装置及び通信装置の制御方法
JP4227033B2 (ja) 2004-01-20 2009-02-18 富士通株式会社 データベース統合参照装置、データベース統合参照方法およびデータベース統合参照プログラム
US7761406B2 (en) * 2004-03-16 2010-07-20 International Business Machines Corporation Regenerating data integration functions for transfer from a data integration platform
JP2007280649A (ja) 2006-04-03 2007-10-25 Sumitomo Wiring Syst Ltd コネクタ接続部の補強カバー
US9112808B2 (en) * 2007-02-06 2015-08-18 At&T Intellectual Property Ii, L.P. Devices, systems, and methods for providing data

Also Published As

Publication number Publication date
US8112438B2 (en) 2012-02-07
CN101425077B (zh) 2015-07-15
US20090113188A1 (en) 2009-04-30
CN101425077A (zh) 2009-05-06
EP2056224A1 (en) 2009-05-06
JP2009110193A (ja) 2009-05-21

Similar Documents

Publication Publication Date Title
JP5238219B2 (ja) 情報処理システム及びパイプライン処理制御方法
US11188562B2 (en) Adaptive distribution for hash operations
US8799267B2 (en) Optimizing storage allocation
US20170344539A1 (en) System and method for improved scalability of database exports
WO2015029187A1 (ja) データベース管理システム及び計算機システム
CN103353901B (zh) 基于Hadoop分布式文件***的表数据的有序管理方法以及***
US11669505B2 (en) Partitioning, processing, and protecting data
WO2013139379A1 (en) Replicated data storage system and methods
JP6262505B2 (ja) 分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム
Richard et al. Digital forensic tools: the next generation
US20170337253A1 (en) In-memory db connection support type scheduling method and system for real-time big data analysis in distributed computing environment
US20080082516A1 (en) System for and method of searching distributed data base, and information management device
CN106649847A (zh) 一种基于Hadoop的大数据实时处理***
CN106503038B (zh) 一种自动缓存网络请求返回数据的方法及***
KR20160145250A (ko) 가상 머지를 지원하는 셔플 내장형 분산 스토리지 시스템 및 그 방법
JP7211255B2 (ja) 検索処理プログラム、検索処理方法及び情報処理装置
O'Gorman et al. Multiple query optimization in middleware using query teamwork
KR20030065684A (ko) 색인 기반의 동영상 컨텐츠 관리 시스템 및 그 서비스 방법
US20220164349A1 (en) Distributed queries through dynamic views
JP4238318B2 (ja) データ管理装置
CN113157736B (zh) 分布式数据库中的查询计划优化方法及***
KR20240068982A (ko) 다수의 연산 스토리지 기반 dbms 스토리지 엔진에서의 연산 모델 적용 방법
Marcu et al. Kera: A Unified Storage and Ingestion Architecture for Efficient Stream Processing
CN113742346A (zh) 资产大数据平台架构优化方法
Imasaki Parallel query processing on a cluster-based database system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130206

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: 20130305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130401

R151 Written notification of patent or utility model registration

Ref document number: 5238219

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350