JP2013025425A - 分散データ管理システム、分散データ管理方法、および分散データ管理プログラム - Google Patents

分散データ管理システム、分散データ管理方法、および分散データ管理プログラム Download PDF

Info

Publication number
JP2013025425A
JP2013025425A JP2011157349A JP2011157349A JP2013025425A JP 2013025425 A JP2013025425 A JP 2013025425A JP 2011157349 A JP2011157349 A JP 2011157349A JP 2011157349 A JP2011157349 A JP 2011157349A JP 2013025425 A JP2013025425 A JP 2013025425A
Authority
JP
Japan
Prior art keywords
processing
node
request
data
server
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.)
Withdrawn
Application number
JP2011157349A
Other languages
English (en)
Inventor
Kosuke Oki
恒甫 大喜
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 JP2011157349A priority Critical patent/JP2013025425A/ja
Publication of JP2013025425A publication Critical patent/JP2013025425A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】メモリを共有する異なるノードのメモリ資源および通信資源の使用効率を高める。
【解決手段】ノード#11〜#1Nにおけるデータ処理に係る負荷情報および処理時間を取得するデータ採取部106と、クライアント端末からのリクエストから処理手順を示す処理構成情報を生成する問合せ最適化器103と、この処理構成情報に基づき処理対象データを取得すると共に、この処理対象データをノードにおける処理負荷が平均化されるように前記各ノードに分配するデータ分配決定部108を備えたマネージャ装置100と、処理要求に対する処理を行い、その処理結果を処理構成情報に基づき他のノードに転送することにより処理応答を生成する異なる複数のノードを備える。
【選択図】図1

Description

本発明は、異なる計算機ノード上のメモリ資源を共有メモリとして利用するデータベースシステムに関し、特に、計算機ノード間のデータ通信量を管理する分散共有メモリ管理システムに関する。
複数の計算機ノードが相互に接続されたネットワークシステムで、各計算機ノード上のメモリ領域に大規模データを分散して格納し、これらのメモリ領域をひとつの大規模記憶領域として管理する分散データ管理システムが利用されている。こうした大規模データを管理する分散処理環境ではデータベースの役割は重要になる。
例えば、SQLデータベースシステムが利用状態にあるSQLデータベースノードを上記分散データ管理システムの一ノードとして追加する場合に、SQLデータベースノードで予め記憶管理しているデータを分散データ管理システムにおける共有可能なデータとして組み込むことが求められる。
しかしながら、既存のデータベース管理システム(DBMS)を有するSQLデータベースノードを他の大規模データベース管理システムに組み込む(追加する)ことや稼働中のSQLデータベースノードを既存のデータベース管理システムから除外する処理は、処理コストが膨大となってしまう不都合があった。
また、例えば、SQL構造をベースとした分散対応のデータベースシステムであるVoltDBでは、問合せ方式がトランザクション方式であることからアプリケーション処理に係る処理負担が高くなる。
このため、SQLデータベースノードを他の大規模データベース管理システムに追加した場合、または、大規模データベース管理システムから稼働中のSQLデータベースノードを除外した場合には、各ノード上におけるアプリケーション処理に係る処理負荷が更に高まり、各ノード上におけるリクエストに対するデータベース処理速度が著しく低下してしまったり、ノード間における通信トラフィックに輻輳が生じたりする不都合が生じ得る。
これに対する関連技術として、サーバにおける処理負荷を検知し、この処理負荷から優先度の高いパスを選択することにより、トランザクションのスループットの低下を抑制するシステムが開示されている(特許文献1)。
また、この関連技術として、異なる複数の処理手順を示す情報を生成し、これらのコスト評価のための不可を算出して最適な処理手順を決定するシステムが開示されている(特許文献2)。
この関連技術として、ハッシュパーティショニングによるデータ分割を行う技術が開示されている(特許文献3)。
特開2000−200253号公報 特開2006−228254号公報 特開2009−110193号公報
しかしながら、上記非特許文献1〜3を組み合わせたシステムにおいても、既存のデータベース管理システムに対して他のデータベース環境を備えたノードを組み込む場合や、稼働中のデータベースノードを既存のデータベース管理システムから除外する場合には、各ノードにおける処理負荷が極端に高まってしまったり、異なるノード間における通信トラフィックが膨大に増えてしまうといった不都合が生じ得る。
[発明の目的]
本発明は、上記関連技術の有する不都合を改善し、メモリ資源を共有する異なる計算機ノード間で行われるデータ通信量を有効に軽減し得る分散データ管理システム、分散データ管理方法、および分散データ管理プログラムを提供することを、その目的とする。
上記目的を達成するために、本発明に係る分散データ管理システムは、クライアント端末からのリクエストに対して予め保持するデータベースに格納されたデータを利用した処理を行い当該処理結果であるリクエスト応答を前記クライアント端末に返信するDBサーバと、前記DBサーバから転送された処理要求に基づく処理を行う異なる複数のノードとを備えた分散データベース管理システムであって、前記DBサーバは、前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得する処理負荷統計情報取得部と、前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す前記処理構成情報を生成するリクエスト解析部と、前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配部とを備え、前記各ノードは、自己内に保持するデータおよび前記DBサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記DBサーバに前記処理結果を転送する部分処理実行部と、を備えた構成をとっている。
また、本発明にかかる分散共有メモリ管理方法は、クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いDBサーバと、前記DBサーバから転送された処理要求に対する処理をそれぞれが行う複数のノードとを備えた分散DB処理システムにあって、前記リクエストに対するリクエスト応答を前記クライアント端末に返信するための分散データベース管理方法であって、前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得し、前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成し、前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する、これら動作工程を前記DBサーバが実行し、次いで、前記各ノードが自己内に保持するデータおよび前記DBサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記DBサーバに前記処理結果を転送することを特徴としたている。
また、本発明にかかる分散共有メモリ管理プログラムは、クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いDBサーバと、前記DBサーバから分配された処理要求に対する処理を行うと共にこの処理結果を処理手順情報に基づき他のノードに転送する異なる複数のノードとを備えた分散DB処理システムにあって、前記クライアント端末に前記リクエストに対するリクエスト応答を返信するための分散DB処理プログラムであって、前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータと取得する処理負荷統計情報取得機能と、前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成するリクエスト解析機能と、前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配機能と、を前記DBサーバのコンピュータにより実現することを特徴としている。
本発明は、以上のように構成され機能するので、これによると、異なるノード上に設定された共有メモリ内におけるデータの一貫性を保ちつつノード間通信を有効に軽減し得る分散共有メモリ管理システム、分散共有メモリ管理方法、分散共有メモリ管理プログラムを提供することができる。
本発明による分散共有メモリ管理システムにおける一実施形態を示す概略ブロック図である。 図1に開示した分散共有メモリ管理システムにおけるクライアント端末の内部構成を示す概略ブロック図である。 図1に開示した分散データ管理システムにおける分散環境情報データベースの概略ブロック図を示す。 図1に開示した分散データ管理システムにおけるノードのスケールアウト時の動作処理ステップを示すフローチャートである。 図1に開示した分散データ管理システムにおける処理対象データの分配先を決定する動作処理ステップを示すフローチャートである。 図1に開示した分散データ管理システムにおけるノードが分散環境から外れる場合の動作処理ステップを示すフローチャートである。 図1に開示した分散データ管理システムにおける問合せ解析処理の動作処理ステップを示すフローチャートである。 図1に開示した分散データ管理システムにおける問合せ実行処理の動作処理ステップを示すフローチャートである。 図1に開示した分散データ管理システムの問合せ処理の内容を示す動作処理ステップのフローチャートである。 図1に開示した分散データ管理システムにおける処理手順候補を生成する動作処理ステップを示すフローチャートである。 図1に開示した分散データ管理システムにおけるノード側でトランザクション障害が発生したときの全体的な動作処理ステップを示すフローチャートである。 図1に開示した分散データ管理システムにおけるノード側でシステム障害が発生したときの全体的な動作処理ステップを示すフローチャートである。 図1に開示した分散データ管理システムにおける分散環境情報DBで管理される統計情報のスキーマの一例を示す説明図である。 図1に開示した分散データ管理システムにおけるノード情報の一例を示す説明図である。
[実施形態]
次に、本発明の実施形態について、その基本的構成内容を説明する。
本実施形態である分散データベース管理システム(分散データ管理システム)1は、クライアント端末からのSQL問合せ要求を受け付け、この問合せ要求に応じてデータベースを利用した実行処理を行い、この処理結果である問合せ応答をクライアント端末(51〜5n)に返す処理を行うマネージャ装置100と、マネージャ装置100に対してネットワークを介して接続し、マネージャ装置100との情報連携を行い上記問合せ要求に応じたデータベース検索処理を行う異なる複数ノード(#11〜#1N)を備えている。
クライアント端末51,52,・・・,5nはそれぞれ演算装置31、メモリ(メインメモリ)33、データ記憶装置(補助記憶装置)32を有する通常のコンピュータであり、通信インタフェース34からマネージャ装置100に対してSQL要求を送信し、また、この通信インタフェース34でマネージャ装置100から送り込まれたSQL応答を受信する。
尚、クライアント端末52,・・・,5nはそれぞれ同一の内部構成を有するものとする(図2)。このため、以下の説明においては、クライアント端末52について説明するが、その他のクライアント端末それぞれにおいても同様の動作機能を備えているため置き換え可能である。
ノード#11は、自己が備えたデータベースシステム(DBMS)に格納されたデータを検索し取得するデータ収集部111と、DBMS114に記憶された統計情報を収集する統計情報収集部112と、データ収集部111により取得したデータと上記統計情報をマネージャ装置100に送信すると共に、他のノードにおけるDBMSとのデータ連携を行う連携部113を備えている。
尚、ノードを新規に分散環境に追加する際(スケールアウト)には、ネットワーク越しにマネージャ装置100のアドレスと認証を受ける必要があるものとする。マネージャ装置100への
アクセスが認証された場合に(つまり、参加可能であると認証された場合に)、各ノード(#11〜#1N)は、データと統計情報をマネージャ装置100に対して定期的に送信するものとする。
マネージャ装置100は、クライアント端末51〜5Nそれぞれからの問合せ(SQL問合せ)の受け付けと問合せ応答の返却を行うAPI(Application Program Interface)部と、受け付けた問合せ内容に基づき一連の処理フローを生成する問合せ解析器102と、問合せ解析器102で作成した異なる複数の処理フローの中で最もデータ転送量が少ない処理フローを選び出す最適化器103と、選出された処理フローを、分散環境を構成する各ノードに部分問い合わせ(部分要求)としてとして送信する問合せ配布部104を備えている。
また、マネージャ装置100は、ネットワークを介して各ノード内のDBMSに格納されたデータ、および統計情報を収集するデータ採取部106と、データ採取部106で取得したデータを一時的に保持する一時データ保持DB107と、ノードから収集したデータおよび統計情報を記憶すると共に当該データの更新、および読み出しを管理する分散環境情報DB105と、分散環境情報DB105に格納された統計情報に基づき分散環境としての各ノードに分配するデータを決定するデータ分配決定部108と、上記決定に応じて各ノードに対しデータの配布を行うデータ配布部109を備えている。
データ採取部106は、各ノードから取得した統計情報を含むノード情報(統計情報、接続情報、アクセス時間(図14))を一時データ保管DBと分散環境情報DB105に格納する。
データ分配決定部108は、分散環境を構成する各ノードのノード情報に基づいて分散環境のノードそれぞれにおける処理負荷、およびノード間の通信負荷(アクセス時間に基づき算出)が平均化するように、各ノードに対して、分散環境情報DB105に格納されたデータの配布先を決定する(データ分配決定部)。
また、データ採取部106は、分散環境を構成するノードが除去されるとき(スケールイン)に、削除対象のノードが有するデータを取得し、テーブル情報として分散環境情報DB105に格納する。
更に、データ採取部106は、分散環境に対して新たにノードが組み込まれるときに(スケールアウト)、組み込み対象のノードが有するDBMSのデータを取得し、テーブル情報として分散環境情報DB105に格納する。
これにより、分散環境情報DB105におけるデータベース40(図3)が更新される。
データ分配決定部108は、データベース内容が更新された分散環境情報DB105における格納データについて、上述のように、分散環境を構成する各ノードのノード情報に基づいて分散環境のノードそれぞれにおける処理負荷、およびノード間の通信負荷(アクセス時間に基づき算出)が平均化するように、各ノードに対して、分散環境情報DB105に格納されたデータの配布先を決定する。
問合わせ配布部104は、クライアント端末(51〜5n)からの問合せを受け取った場合に(API部101)、解析処理と部分問合せ(一部)を分散情報として各ノードに対して配布する。
問合わせ最適化器103は、クライアント端末(51〜5n)それぞれからの問合せ要求の内容をログ(問合せ要求ログ)として分散環境情報DB105に格納する(要求ログ保存機能)。尚、この問合せ要求ログは、分散環境のノードにおいて障害が発生した時に、ノードの動作状態の復旧のために利用される。
また、分散環境の各ノードは、マネージャ装置100から送り込まれた部分問合せに対する処理を行うと共に、その処理結果を予め設定された処理フローである処理木に基づき他のノードに転送し、処理結果を生成する。また、各ノードは要求に対する最終的な処理結果をマネージャ装置100に送信する。
マネージャ装置100のAPI部101は、ノードから処理結果を取得した場合に、これを問合せ応答として対応するクライアント端末(51〜5n)へ送る。
これにより、本実施形態では、予め形成された分散データベース管理システムの分散環境(既存DBMS)に対して、新たに別のデータベース管理システムを有するノードが組み込まれる場合でも、分散環境の各ノードにおける処理負荷を有効に抑制し、且つSQL要求に対する分散環境におけるデータベース検索処理を迅速化することを可能とする。
ここで、分散環境情報DB内で管理される統計情報のスキーマの一例を図13に示す。図13のテーブル情報には、ノードの識別情報(nodeA)カラム、マネージャ装置100〜送り込まれた部分問合せ内容を示す問合せカラム、および部分問合せが送り込まれた時刻を示す時刻カラムを含み構成される。
また、図14は、データ取得部106が各ノードから取得したデータ(テーブルデータ)の一例を示す。ここでは、一時データ保持DB107に一時的に格納されたテーブル情報を示す。
一時データ保持DB107には、分散環境の各ノードに係るノードの動作状態を示す統計情報、ノードにおける利用者の情報を示す接続情報、および異なるノード間、およびノードとマネージャ装置間におけるアクセス時間を示すテーブル情報として格納されているものとする。
分散環境情報DB105は、一時データ保持DB107に格納された上記テーブル情報が格納された場合、これらのデータを既存のデータベースのテーブル情報に対して値の加減算、組み合わせや結合する処理を行う。
クライアント端末51は、図2に示すように、通信インタフェース34を介してメモリ33上に予め配置された問合せ要求をマネージャ装置100に送信する。また、クライアント端末51は、マネージャ装置100からの問合せ応答を通信インタフェース34を介して取得し、データ記憶装置32に格納する。
分散環境情報DB105は、図3に示すように、異なる複数のアプリケーションプログラム実行部(61,62,・・・)と、データ制御・管理を行う管理部4と、データベース処理対象となるデータを格納する分散環境管理用データベース40を備えている。
また、管理部4は、図3に示すように、入出力処理対象となるデータを分散環境管理用データベース40に対してノードから取得したデータの書き込みおよび読み出しを行うファイルマネジャ41と、分散環境情報DB105のデータアクセス処理手段42は、予め設定された排他制御プログラムに基づき複数トランザクションの同時実行制御機能と、ノードにおける障害回復を実現するためのログ情報(トランザクションログ46)を保持管理するトランザクションログ記憶機能を有する。
更に、管理部4は、各ノードに分配された部分問合せにかかる解析を行う問合せ解析手段44と、問合せ最適化器103と同等の処理として、データベースの定義情報を管理するディクショナリ47を備え上記解析結果から最適なデータ処理を決定する問合わせ最適化処理手段43を備えた構成であってもよい。
また、分散環境DBMS105は、当該分散環境DBMS105全体の管理・制御に加えて、入出力の管理等を行うシステム制御手段と、分散環境DBMS105における処理対象となるデータを格納するデータベースバッファを備えている。
問合せ解析手段44は、図7に示すように、各ノードから取得した部分問合せの構文解析および意味解析を行う(ステップS311:解析機能(図9))と共に、適切な処理手順を示す手順情報を生成する(ステップS312:静的最適化処理機能)。
尚、この静的最適化処理は、図10に示すように、アプリケーション(61,62,・・・)の実行結果として、部分問合せに含まれる述語選択推定を行う(ステップS401)と共に、抽出された述語から処理手順候補となる処理木を生成する(ステップS402)。
また、最適化処理手段43は、図8に示すように、静的最適化処理で生成された処理手順候補から最適なものを選択し(動的最適化処理機能:ステップS315)、上記処理手順に対応したコードの生成およびコードの解釈実行を行うコード解釈実行機能を有する(コード生成機能:ステップS316)。
また、最適化処理手段43は、ディクショナリ47内でアクセスしたデータの条件判定、編集、レコード追加等を行う(ディクショナリデータ制御機能)。
排他制御手段45は、データアクセス処理手段42におけるデータベースレコードの読み書きを制御し、データアクセス処理手段42とのデータベースバッファ制御を共用するリソースの排他制御を実現する。
これにより、本実施形態では、既存のSQL型データベースシステム(本実施形態ではマネージャ装置100およびノード#11〜#1Nからなる分散環境)へのノード組み込み、および分散環境における構成ノードの着脱にかかる、各ノードにおける処理負荷を抑制することが可能となる。
尚、本実施形態では、分散データベース管理システム1をリレーショナル型として記載しているが、データベース管理システム1は、XMLデータベース、オブジェクトデータベース、Key−Value型データベースでも、分散環境へと移行する際にそれぞれのノードが同じデータベース型であれば、分散環境への導入・移行が可能であるものとする。
尚、各ノードのデータベース型が異なる場合には、データを統一的に扱うために,エージェント部分にマッパーが必要になる。このマッパーがそれぞれのデータベース型の異なりを吸収し、データ配置を透過的に行えるようにすることが可能となる。
[実施形態の動作説明]
次に、上記実施形態における全体的な動作内容について説明する。
マネージャ装置(DBサーバ)100は、各ノード(#11〜#1N)におけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報を取得する(処理負荷統計情報取得工程)。
また、問合せ解析器102は、クライアント端末51からのリクエストを解析し、このリクエストに対する処理内容および処理手順を示す情報としての処理木情報を生成する(リクエスト解析工程)。
データ採取部106は、各ノードのデータベースから処理負荷統計情報および処理対象データを取得し、処理木情報および処理負荷統計情報に基づいて、各ノードにおける処理負荷が平均化されるように処理対象データを各ノードに分配する(部分要求分配工程)。
ノード(計算ノード)がマネージャ装置100から送り込まれた部分処理要求の実行処理を行い、その処理結果を処理木情報(処理構成情報)に基づき他のノードに転送する(部分処理結果転送工程)。
ノードから取得した前記部分処理要求の処理結果をクライアント端末のリクエストに対するリクエスト応答として返信する(処理結果返信工程)。
ここで、上記処理負荷統計情報取得工程、リクエスト解析工程、部分要求分配工程、部分処理結果転送工程、および処理結果返信工程については、その実行内容をプログラム化し、コンピュータに実行させるように構成してもよい。
また、本プログラムは、非一時的な記憶媒体、例えば、DVD、CD、フラッシュメモリなどに記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
次に、本実施形態である分散データベース管理システム1の動作について、フローチャートに基づき具体的に説明する。
ここでは、まず、分散データベース管理システム1のスケールイン時、およびスケールアウト時における動作内容である管理フェーズ(管理面)について説明し、次いで、クライアント端末からの問合せを処理する動作内容である業務フェーズ(業務面)について説明する。
[管理フェーズ:スケールアウト時の動作説明]
はじめに、分散環境としての分散DB管理システム1にノードを組み込む、つまり、分散環境のノード数を増やす場合を示すスケールアウト時の動作について、図4のフローチャートに基づき説明する。
尚、マネージャ装置100に分散環境へ導入されるノードに係るノード情報はデータベース管理者により予め登録されているものとする。
まず、分散環境に参加するノード(分散環境参加ノード#15とする)が、マネージャ装置100に対して認証要求を送信する(開始:ステップS100)。
マネージャ装置100の分散環境情報DB105は、認証要求をデータ採取部106を介して認証要求を受け取り、この認証要求に対する認証処理を行う(ステップS101)。
ここで、認証不可である場合は、スケールアウト処理は終了する(ステップS107)。
認証可であった場合(イエス:ステップS102)、マネージャ装置100のデータ採取部106が、管理データ、および統計情報を収集する(ステップS103)。このとき、認証可能となったノードの連携部113は、管理データおよび統計情報をマネージャ装置100へ送信する。
次いで、データ採取部106は、ノード#15から収集した管理データおよび統計情報を一時データ保持DB107と分散環境情報DB105とに格納し、格納データを更新する(ステップS104)。
尚、分散環境情報DB105には、予めアクセス可能に設定されているノードやそのアカウントが登録されているものとする。
次に、データ分配決定部108が、分散環境情報DB105に格納された統計情報に基づきデータ配布先を決定し(ステップS105)、データ配布部109が、各ノード#11,#12,・・・,#Nそれぞれに対して分散データを配布する(ステップS106)。
これにより、各ノードにおけるDBMSにおける格納データが更新される(ステップS107)。
[管理フェーズ:スケールイン時の動作説明]
次に、分散データベース管理システム(分散環境)1の特定のノード(除外対象ノード)が分散環境から除外されるスケールイン(スケールドロップ)時の動作内容について、図6のフローチャートに基づき説明する。
まず、分散環境である分散データベース管理システムから退避する(ここでは、マネージャ装置100に対する通信接続を解除するものとする)ノード(退避対象ノード)が、マネージャ装置100に対して退避要求を送信する(ステップS301)。
次に,この退避要求を受信したAPI部101が、分散環境情報DB40中に格納された退避対象ノードのノード情報を削除する(ステップS302)。
次いで、データ分配決定部108が、分散環境情報DB105の分散データベース40における保存データの更新を検知し(ステップS303)、更新された分散データベース40に格納されたデータについて、退避対象のノードを除いた分散環境におけるデータ配布先を新たに決定する(ステップS304)。
次いで、データ配布部109が上記決定されたデータ配布先である各ノードに対してデータ配布を行う。これにより、各ノードにおける記憶容量に格納されたデータが更新される。
[業務フェーズ]
次いで、クライアント端末からの問合せに対して、マネージャ装置100およびノード#11〜”1Nからなる分散環境で問合せ応答を生成する処理を行う動作内容としての業務フェーズ(業務面)について説明する。
まず、マネージャ装置100のAPI101が、クライアント端末(51〜5n)それぞれからネットワークを介して送り込まれたSQL問合せを受け付ける。
次いで、問合せ解析器102が、受け付けた問合せ内容に基づき一連の処理フローを示すツリー構造の処理木(処理木図)を生成する。
また、問い合わせ解析器は、生成された異なる複数の処理木のうち、各ノードの統計情報に基づき処理負荷、およびデータ転送負荷を算出し、データ転送負荷が最も低い処理木を選択する。
次に、問合せ配布部104が、選出された処理木を部分木に分割し、分割した処理木情報としての部分問合せ要求を、該当するノードに配布を行う。
分散環境のノードはそれぞれ連携部(113に対応)で部分問合せ要求を受け付け、問合せ処理の実行を行う。
また、各ノードは、処理結果(部分処理結果)を部分木で示される次のノードへと転送する。
ここで、ノードは、最終的な処理結果を部分木の内容に基づきマネージャ装置に送信する。マネージャ装置100はこの処理結果を要求応答としてクライアント端末(51に対応)返信する。
[分散データ配布先決定機能]
ここで、分散データベース管理システム1における分散データの配布先を決定する動作内容について、図5のフローチャートに基づき説明する。
まず、マネージャ装置100のデータ採取部106が、ノード(#11,#12,・・・,#N)それぞれのDBMS(114,124,・・・,1N4)に記憶された統計情報と、
各ノードにおけるデータアクセス状況を示す情報を収集する(ステップS201)。
このとき、データ採取部106は各ノードに対して統計情報を要求するリクエスト情報を送信し、各ノードはこのリクエスト情報に応じて自己が保持する統計情報を返す設定であってもよい。
次いで、データ採取部106が、データ分散配置環境である各ノードにおけるレプリケーション機能の有無を確認する(レプリケーション機能有効?:ステップS202)。
ここで、レプリケーションが有効になっていた場合には(YES:ステップS202)別ノードにも情報源が複製されているため、データ採取部106は、各ノードにおけるDBMSに格納されたデータと不一致な部分データを分散環境情報DB105から検索抽出し(ステップS208)、抽出した不一致部分データの複製を各ノードに対して分配送信する(ステップS209)。
一方、レプリケーションが向こうである場合には(NO:ステップS202)、データ採取部106は分散環境情報DB105から一定期間における各ノードの処理時間に係る情報を取得する(ステップ203)と共に、一時保管DB107から一定時間内における各ノード上での演算数とその演算のデータ処理量の平均の値を取得する(ステップ204)。
次いで、データ採取部106は、各ノードの処理時間とデータ処理量の比から各ノードに対する情報源(格納データ)の分配先を決定し(ステップS205)、
次に、上記実施形態における障害復旧時の動作内容について、図11、12のフローチャートに基づき説明する。ここで、ノード側における動作障害の内容としては、トランザクション障害とシステム障害が想定される。
まず、トランザクション障害が生じた場合の動作内容について、図11に基づき説明する。
マネージャ装置100から分散環境(各ノード)へ配布した問合せ処理の中で,1部のノードでトランザクションが異常終了した場合には、その問合せ処理は異常終了となる。
このとき、各ノードにおける連携部(113,123,133,・・・,1N3)は、問合せ処理にかかるデータの送受信が異常となったノードをマネージャ装置に通知をする(ステップS410)。ここで、データの送受信に異常が生じたノードがマネージャ装置100に対して送受信以上の発生を通知できる場合は、このノードがマネージャ装置100にデータの送受信における異常を通知する。
マネージャ装置100のAPI部101が異常状態の通知を受け、異常終了となったノードを特定する(ステップS411)と共に、配布部104が、異常状態になったノードに対して、以上終了した問合せ処理の再実行を要求する(ステップS412)。
ここで、要求が正常に行われた場合(イエス:ステップS413)には、問合せ処理は正常に終了したとみなす(完了:ステップS415)。
一方、要求が異常終了になった(一定時間返ってこない、再び動作異常が通知されるなどした)場合にはシステム障害と判断し、マネージャ装置100に予め設定されたすステム障害対応処理を実行する(ステップS414)。
次に、システム障害発生時における、マネージャ装置50の動作内容について、図12のフローチャートに基づき説明する。
API部101がノードにおけるシステム障害を検出した場合(ステップS420)、
API部101が故障ノードを特定し(ステップS421)、次いで、分散環境情報DB105は、DB40における登録内容に基づき分散環境(故障ノードを含む)におけるレプリケーション機能の有無を確認する(ステップS422)。
ここで、レプリケーションが有効になっていた場合には、別ノードにも情報源が複製されているので、マネージャ装置100側でシステム障害と判断したノードを除いた環境を想定し、問合せ最適化器103が、これに基づき問合せ最適化を再実行し、次いで、算出された問合せプランを問合せ配布部104が各ノードに配布する。
一方、レプリケーションが有効になっていない場合には(NO:ステップS422)、障害時の遅延は,問合せ最適化器103で算出された処理時間となるため、故障ノードに対して故障に係るログ情報を分散環境情報DB105から取得し、ロールバック/ロールフォワードの実行要求としてログを故障ノードへ送る(ステップS423)。
ここで、故障ノードはログ情報およびロールバック/フォワードの実行要求に応じての障害の復旧処理を実行する(ステップS424)。
また、データ配布部109は、故障ノードにおけるロールバック/フォワードの復旧処理が終了した後に(要求を再送することにより)問合せ処理の再実行を要求する。
以上のように、本実施形態では、分散環境下において各ノードにおける処理負荷を考慮したデータ配置を行うことが可能となる。
これにより、処理負荷の低いノードに対して問合せ処理を分配し、各ノードそれぞれにおける問合せ処理にかかる処理負荷が平均化されるように、処理負荷が高いことに起因する動作異常の発生を有効に抑制することができ、更には、問合せ処理を迅速に行うことができ、これにより、問合せ実行時間が短縮される。
また、本実施形態は、既存DBMSにマネージャと連携する機能を有するエージェントを導入することにより実現可能であり、このため、エージェントとマネージャ装置が自律的にやり取りを行うことにより、利用者は煩雑なDBMSの連携を意識することなく、既存DBMSを柔軟に分散環境へと移行することが可能となる。
上述した実施形態については、その新規な技術的内容の要点をまとめると、以下のようになる。
尚、上記の実施形態の一部又は全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1)
クライアント端末からのリクエストに対して予め保持するデータベースに格納されたデータを利用した処理を行い当該処理結果であるリクエスト応答を前記クライアント端末に返信するDBサーバと、前記DBサーバから転送された処理要求に基づく処理を行う異なる複数のノードとを備えた分散データベース管理システムであって、
前記DBサーバは、
前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得する処理負荷統計情報取得部と、
前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す前記処理構成情報を生成するリクエスト解析部と、
前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配部とを備え、
前記各ノードは、
自己内に保持するデータおよび前記DBサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記DBサーバに前記処理結果を転送する部分処理実行部と、を備えたことを特徴とする分散データベース管理システム。
(付記2)
付記1に記載の分散データベース管理システムにおいて、
前記DBサーバに対して前記部分処理要求の処理用に新たに一のノードが接続された場合に、当該ノードを含む前記各ノードの処理負荷統計情報を再取得する統計情報再取得手段と、
前記処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段を備えたことを特徴とする分散データベース管理システム。
(付記3)
付記1に記載の分散データベース管理システムにおいて、
前記一のノードにおける前記DBサーバに対する接続を解除した場合に、前記DBサーバに対して接続された他のノードそれぞれの処理負荷統計情報を再取得する統計情報再取得手段と、当該再取得された処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段を備えたことを特徴とする分散データベース管理システム。
(付記4)
付記1に記載の分散データベース管理システムにおいて、
前記DBサーバに対して前記部分処理要求の処理用に新たに他のノードが接続された場合に、当該ノードを含む前記各ノードの処理負荷統計情報を再取得し、前記DBサーバに対する一のノードの接続を解除した場合に、前記DBサーバに対する接続が維持されている他のノードそれぞれの処理負荷統計情報を再取得する統計情報再取得手段と、
再取得された処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段とを備えたことを特徴とする分散データベース管理システム。
(付記5)
付記1に記載の分散データベース管理システムにおいて、
前記リクエスト解析部が異なる複数の処理構成情報を生成した場合に、前記部分処理要求生成部は、処理構成情報のうちデータ処理量を算出し、当該データ処理量が最小となる処理構成情報を選出する処理構成情報選出手段を備えたことを特徴とした分散データベース管理システム。
(付記6)
付記1、3、または4に記載の分散データベース管理システムにおいて、
前記ノードは他のノードとの通信異常を検知した場合に前記通信異常が検知されたノードを障害ノードとして前記DBサーバに通知する通信障害通知手段を備え
前記DBサーバは、前記障害ノードとして通知されたノードに対して応答要求を行い、当該応答要求に対する正常な応答がない場合に、当該ノードにおける前記DBサーバとの接続を解除する制御を行う接続解除制御手段を備えたことを特徴とする分散データベース管理システム。
(付記7)
クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いDBサーバと、前記DBサーバから転送された処理要求に対する処理をそれぞれが行う複数のノードとを備えた分散DB処理システムにあって、前記リクエストに対するリクエスト応答を前記クライアント端末に返信するための分散データベース管理方法であって、
前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得し、
前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成し、
前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する、
これら動作工程を前記DBサーバが実行し、
次いで、前記各ノードが自己内に保持するデータおよび前記DBサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記DBサーバに前記処理結果を転送することを特徴とした分散データベース管理方法。
(付記8)
クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いDBサーバと、前記DBサーバから分配された処理要求に対する処理を行うと共にこの処理結果を処理手順情報に基づき他のノードに転送する異なる複数のノードとを備えた分散DB処理システムにあって、前記クライアント端末に前記リクエストに対するリクエスト応答を返信するための分散DB処理プログラムであって、
前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータと取得する処理負荷統計情報取得機能と、
前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成するリクエスト解析機能と、
前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配機能と、
を前記DBサーバのコンピュータにより実現することを特徴とした分散DB処理プログラム。
本発明は、ネットワーク回線で相互に接続された異なるノードそれぞれが有するメモリ領域を共有メモリとして利用するネットワークデータベースシステムに対して有効に適用することが可能である。
10 ネットワーク計算機システム
#11,#12,・・・,#1N ノード
31 演算装置
32 データ記憶装置
33 メモリ
34 通信インタフェース
51,52,・・・,5N クライアント端末
100 マネージャ装置
101 API部
102 問合わせ解析器
103 問合わせ最適化器
104 問合わせ配布部
105 分散環境情報DB
106 メインメモリ部
107 一時データ保持DB
108 データ分配決定部
109 データ配布部

Claims (8)

  1. クライアント端末からのリクエストに対して予め保持するデータベースに格納されたデータを利用した処理を行い当該処理結果であるリクエスト応答を前記クライアント端末に返信するDBサーバと、前記DBサーバから転送された処理要求に基づく処理を行う異なる複数のノードとを備えた分散データベース管理システムであって、
    前記DBサーバは、
    前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得する処理負荷統計情報取得部と、
    前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す前記処理構成情報を生成するリクエスト解析部と、
    前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配部とを備え、
    前記各ノードは、
    自己内に保持するデータおよび前記DBサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記DBサーバに前記処理結果を転送する部分処理実行部と、を備えたことを特徴とする分散データベース管理システム。
  2. 請求項1に記載の分散データベース管理システムにおいて、
    前記DBサーバに対して前記部分処理要求の処理用に新たに一のノードが接続された場合に、当該ノードを含む前記各ノードの処理負荷統計情報を再取得する統計情報再取得手段と、
    前記処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段を備えたことを特徴とする分散データベース管理システム。
  3. 請求項1に記載の分散データベース管理システムにおいて、
    前記一のノードにおける前記DBサーバに対する接続を解除した場合に、前記DBサーバに対して接続された他のノードそれぞれの処理負荷統計情報を再取得する統計情報再取得手段と、当該再取得された処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段を備えたことを特徴とする分散データベース管理システム。
  4. 請求項1に記載の分散データベース管理システムにおいて、
    前記DBサーバに対して前記部分処理要求の処理用に新たに他のノードが接続された場合に、当該ノードを含む前記各ノードの処理負荷統計情報を再取得し、前記DBサーバに対する一のノードの接続を解除した場合に、前記DBサーバに対する接続が維持されている他のノードそれぞれの処理負荷統計情報を再取得する統計情報再取得手段と、
    再取得された処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段とを備えたことを特徴とする分散データベース管理システム。
  5. 請求項1に記載の分散データベース管理システムにおいて、
    前記リクエスト解析部が異なる複数の処理構成情報を生成した場合に、前記部分処理要求生成部は、処理構成情報のうちデータ処理量を算出し、当該データ処理量が最小となる処理構成情報を選出する処理構成情報選出手段を備えたことを特徴とした分散データベース管理システム。
  6. 請求項1、3、または4に記載の分散データベース管理システムにおいて、
    前記ノードは他のノードとの通信異常を検知した場合に前記通信異常が検知されたノードを障害ノードとして前記DBサーバに通知する通信障害通知手段を備え
    前記DBサーバは、前記障害ノードとして通知されたノードに対して応答要求を行い、当該応答要求に対する正常な応答がない場合に、当該ノードにおける前記DBサーバとの接続を解除する制御を行う接続解除制御手段を備えたことを特徴とする分散データベース管理システム。
  7. クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いDBサーバと、前記DBサーバから転送された処理要求に対する処理をそれぞれが行う複数のノードとを備えた分散DB処理システムにあって、前記リクエストに対するリクエスト応答を前記クライアント端末に返信するための分散データベース管理方法であって、
    前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得し、
    前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成し、
    前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する、
    これら動作工程を前記DBサーバが実行し、
    次いで、前記各ノードが自己内に保持するデータおよび前記DBサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記DBサーバに前記処理結果を転送することを特徴とした分散データベース管理方法。
  8. クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いDBサーバと、前記DBサーバから分配された処理要求に対する処理を行うと共にこの処理結果を処理手順情報に基づき他のノードに転送する異なる複数のノードとを備えた分散DB処理システムにあって、前記クライアント端末に前記リクエストに対するリクエスト応答を返信するための分散DB処理プログラムであって、
    前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータと取得する処理負荷統計情報取得機能と、
    前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成するリクエスト解析機能と、
    前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配機能と、
    を前記DBサーバのコンピュータにより実現することを特徴とした分散DB処理プログラム。
JP2011157349A 2011-07-19 2011-07-19 分散データ管理システム、分散データ管理方法、および分散データ管理プログラム Withdrawn JP2013025425A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011157349A JP2013025425A (ja) 2011-07-19 2011-07-19 分散データ管理システム、分散データ管理方法、および分散データ管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011157349A JP2013025425A (ja) 2011-07-19 2011-07-19 分散データ管理システム、分散データ管理方法、および分散データ管理プログラム

Publications (1)

Publication Number Publication Date
JP2013025425A true JP2013025425A (ja) 2013-02-04

Family

ID=47783733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011157349A Withdrawn JP2013025425A (ja) 2011-07-19 2011-07-19 分散データ管理システム、分散データ管理方法、および分散データ管理プログラム

Country Status (1)

Country Link
JP (1) JP2013025425A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015106219A (ja) * 2013-11-29 2015-06-08 Kddi株式会社 分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム
JP2016511499A (ja) * 2013-03-15 2016-04-14 アマゾン・テクノロジーズ・インコーポレーテッド 分散型データベースシステムのシステム全体のチェックポイント回避
CN107870813A (zh) * 2016-09-22 2018-04-03 中兴通讯股份有限公司 一种分布式算法处理数据的方法及装置
CN115617279A (zh) * 2022-12-13 2023-01-17 北京中电德瑞电子科技有限公司 分布式云数据的处理方法、装置及存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016511499A (ja) * 2013-03-15 2016-04-14 アマゾン・テクノロジーズ・インコーポレーテッド 分散型データベースシステムのシステム全体のチェックポイント回避
US9672237B2 (en) 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
JP2017216010A (ja) * 2013-03-15 2017-12-07 アマゾン・テクノロジーズ・インコーポレーテッド 分散型データベースシステムのシステム全体のチェックポイント回避
US10331655B2 (en) 2013-03-15 2019-06-25 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
JP2015106219A (ja) * 2013-11-29 2015-06-08 Kddi株式会社 分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム
CN107870813A (zh) * 2016-09-22 2018-04-03 中兴通讯股份有限公司 一种分布式算法处理数据的方法及装置
CN115617279A (zh) * 2022-12-13 2023-01-17 北京中电德瑞电子科技有限公司 分布式云数据的处理方法、装置及存储介质
CN115617279B (zh) * 2022-12-13 2023-03-31 北京中电德瑞电子科技有限公司 分布式云数据的处理方法、装置及存储介质

Similar Documents

Publication Publication Date Title
US11436224B2 (en) Parallel processing database system with a shared metadata store
US20200226147A1 (en) Adaptive Distribution Method For Hash Operation
US20200265017A1 (en) Synchronization of client machines with a content management system repository
US10853242B2 (en) Deduplication and garbage collection across logical databases
US10581957B2 (en) Multi-level data staging for low latency data access
CA2929777C (en) Managed service for acquisition, storage and consumption of large-scale data streams
AU2014346366B2 (en) Partition-based data stream processing framework
US7457835B2 (en) Movement of data in a distributed database system to a storage location closest to a center of activity for the data
US10223431B2 (en) Data stream splitting for low-latency data access
US9477743B2 (en) System and method for load balancing in a distributed system by dynamic migration
CN110071978B (zh) 一种集群管理的方法及装置
US9367261B2 (en) Computer system, data management method and data management program
US11928089B2 (en) Data processing method and device for distributed database, storage medium, and electronic device
Chen et al. Bestpeer++: A peer-to-peer based large-scale data processing platform
US20140372396A1 (en) Database System Lock Operation Method and Device
Mühlbauer et al. ScyPer: a hybrid OLTP&OLAP distributed main memory database system for scalable real-time analytics
JP2013025425A (ja) 分散データ管理システム、分散データ管理方法、および分散データ管理プログラム
CN111221851A (zh) 一种基于Lucene的海量数据查询、存储的方法和装置
KR20130038517A (ko) 분산된 컨테이너들을 사용하여 데이터를 관리하는 시스템 및 방법
EP2765517B1 (en) Data stream splitting for low-latency data access
US20220067006A1 (en) Moving Window Data Deduplication in Distributed Storage
US10963426B1 (en) Method of providing access controls and permissions over relational data stored in a hadoop file system
US20240061494A1 (en) Monitoring energy consumption associated with users of a distributed computing system using tracing
Sukhija et al. Load balancing and fault tolerance mechanisms for scalable and reliable big data analytics
Pandey et al. Persisting the AntidoteDB Cache: Design and Implementation of a Cache for a CRDT Datastore

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141007