JP4696043B2 - データベース負荷分散装置,データベース負荷分散方法及びその方法を実装したデータベース負荷分散プログラム - Google Patents

データベース負荷分散装置,データベース負荷分散方法及びその方法を実装したデータベース負荷分散プログラム Download PDF

Info

Publication number
JP4696043B2
JP4696043B2 JP2006279604A JP2006279604A JP4696043B2 JP 4696043 B2 JP4696043 B2 JP 4696043B2 JP 2006279604 A JP2006279604 A JP 2006279604A JP 2006279604 A JP2006279604 A JP 2006279604A JP 4696043 B2 JP4696043 B2 JP 4696043B2
Authority
JP
Japan
Prior art keywords
data
query
database
update
database manager
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
JP2006279604A
Other languages
English (en)
Other versions
JP2008097399A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006279604A priority Critical patent/JP4696043B2/ja
Publication of JP2008097399A publication Critical patent/JP2008097399A/ja
Application granted granted Critical
Publication of JP4696043B2 publication Critical patent/JP4696043B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、データベースの負荷分散技術に関するものである。
複数のデータベースマネージャにデータを重複配置あるいは分散配置し、クエリ文(以下、単にクエリという)の処理内容に応じてクエリの実行を担当するデータベースマネージャを選択することによって、データベースマネージャのクエリの実行負荷を分散する方法として、以下のような方法(例えば、非特許文献1参照)が知られていた。
データが配置されているデータベースマネージャの情報(即ち、配置情報)を予め用意しておき、参照系クエリを受信した場合は、前記配置情報を参照して、参照すべきデータを持つデータベースマネージャを一つ選択して前記の参照系クエリの実行を担当させる。また、更新系クエリを受信した場合は、配置情報を参照して、参照すべきデータと更新すべきデータの両方を持つデータベースマネージャの全てに前記の更新系クエリの実行を担当させる。
なお、前記配置情報は、データの識別子(例えば、データベース名や表名など)とそのデータを有するデータベースマネージャの識別子(例えば、ネットワークアドレスなど)を含む組から構成された一覧表である。
上述の方法によって、データベース負荷分散装置がデータベースマネージャのクエリの実行負荷を分散する動作の一例を図7及び図8に基づいて説明する。なお、図7は装置構成図、図8は動作手順を示すフローチャートである。
図7の装置構成は、クライアント装置C1〜Cn,データベース負荷分散装置1,データベースD111〜D11nの各々が接続されたデータベースマネージャD11〜D1nから構成される。
また、上記データベース負荷分散装置1は、クエリを解析するクエリ解析装置1a,参照系クエリ(例えば、SQL(Structured Query Language)におけるSELECT文)を振り分け処理する参照系クエリ振り分け装置1b,配置情報1c,更新系クエリ(例えば、SQLにおけるUPDATE文)を振り分け処理する更新系クエリ振り分け装置1dを備えている。なお、配置情報1cは、データベース負荷分散装置1に予め備えられた記憶部(例えば、メモリやハードディスク装置)に記憶されているものとする。
図8中の処理の流れとしては、まず、データベース負荷分散装置1の初期化が行われ(S101)、データベース負荷分散装置1にクエリが、例えば、クライアント装置C1から送信される。
次に、クエリ解析装置1aは、クエリの処理内容を解析し(S102)、参照系クエリであれば参照系クエリ振り分け装置1bに引き渡す。更新系クエリであれば更新系クエリ振り分け装置1dに引き渡す(S103)。
そして、参照系クエリ振り分け装置1bは、配置情報1cを参照して、参照すべきデータを持つデータベースマネージャ(例えば、データベースマネージャD11)を一つ選択し、そのデータベースマネージャD11にクエリを発行し、応答をクライアント装置C1に返す(S104)。更新系クエリ振り分け装置1dは、配置情報1cを参照して、参照すべきデータと更新すべきデータの両方を持つデータベースマネージャの全てを選択し、そのデータベースマネージャにクエリを発行(送信)し、応答をクライアントに返す(S105)。
また、上記の動作の一例を図9のシーケンス図を用いて説明する。なお、図9Aは参照系クエリに関する動作、図9Bは更新系クエリに関する動作を示すシーケンス図である。
図9Aでは、クライアント装置Cがデータベース負荷分散装置1にクエリを送信する(M101)。
次に、クエリ解析装置1aは、クエリの処理内容を解析し、参照系クエリであれば参照系クエリ振り分け装置1bに引き渡す(M102)。
そして、参照系クエリ振り分け装置1bは、配置情報1cを参照して(M103)、参照すべきデータを持つデータベースマネージャ(例えば、データベースマネージャD11)を一つ選択し、そのデータベースマネージャD11にクエリを発行し(M104)、応答をクライアント装置Cに返す(M105,M106)。
図9Bでは、クライアント装置Cがデータベース負荷分散装置1にクエリを送信する(M107)。
次に、クエリ解析装置1aは、クエリの処理内容を解析し、更新系クエリであれば更新系クエリ振り分け装置1dに引き渡す(M108)。
そして、更新系クエリ振り分け装置1dは、配置情報1cを参照して(M109)、参照すべきデータと更新すべきデータの両方を持つデータベースマネージャ(例えば、データベースマネージャD11〜D1n)の全てを選択し、そのデータベースマネージャD11〜D1nにクエリを発行し(M110,M111)、応答をクライアント装置Cに返す(M112,M113,M114)。
以上のように、従来の方法では、更新系クエリを実行するデータベースマネージャが、参照すべきデータと更新すべきデータの両方を持つ必要があった。例えば、第1データと第2データをデータベースマネージャで管理する場合を考えると次のようであった。
第1データを参照して第1データを更新する単純な更新系クエリと、第2データを参照して第2データを更新する単純な更新系クエリだけを実行するのであれば、第1データと第2データを異なるデータベースマネージャに配置することで、上記2種類の単純な更新系クエリの実行負荷を分散することができる。
しかし、第1データを参照して第1データを更新する単純な更新系クエリと、第2データを参照して第2データを更新する単純な更新系クエリと、第1データを参照して第2データを更新する複雑な更新系クエリを実行するのであれば、第1データと第2データの両方を同じデータベースマネージャに配置する必要があるために、上記2種類の単純な更新系クエリと上記1種類の複雑な更新系クエリの実行負荷を分散することができなかった。
さらに、上述の方法では、データを配置するデータベースマネージャが固定的であった。例えば、第1データと第2データをデータベースマネージャで管理する場合を考えると次のようであった。
第1データを参照して第1データを更新する単純な更新系クエリと、第2データを参照して第2データを更新する単純な更新系クエリと、第1データを参照して第2データを更新する複雑な更新系クエリを実行している状態から、第1データを参照して第1データを更新する単純な更新系クエリと、第2データを参照して第2データを更新する単純な更新系クエリだけを実行する状態に変化したのであれば、第1データと第2データを異なるデータベースマネージャに再配置することで、上記2種類の単純な更新系クエリの実行負荷を分散することができる。
しかし、データを配置するデータベースマネージャが固定的であるために、第1データあるいは第2データを異なるデータベースマネージャに移動して、上記2種類の単純な更新系クエリの実行負荷を動的に分散することができなかった。
また、あるデータを参照する参照系クエリについて、そのデータを持つデータベースマネージャに余力があるほど参照系クエリの実行性能はよく、そのデータを持つデータベースマネージャの数が多いほど参照系クエリの実行負荷を分散できる。
そのデータを参照する参照系クエリが増加した場合に、余力のある他のデータベースマネージャにそのデータを移動あるいは複製すれば参照系クエリの実行負荷を動的に改善あるいは分散できる。
しかし、データを配置するデータベースマネージャが固定的であるために、あるデータを参照する参照系クエリが増加した場合に、余力のある他のデータベースマネージャにそのデータを移動あるいは複製して参照系クエリの実行負荷を動的に改善あるいは分散することができなかった。
Emmanuel Cec−chet,Julie Margueritr and Willy Zwaenpoel、"RAIDb:Redundant Array of Inexpensive Databases"、[online]、平成15年(2003年)11月、ObjectWeb Consortium、[平成18年10月4日検索]、インターネット<URL:http://c−jdbc.objectweb.org/current/doc/RR−C−JDBC.pdf>。
上述の負荷分散技術では、更新系クエリの実行を担当するデータベースマネージャが、参照すべきデータと更新すべきデータの両方を持つ必要があった。また、データを配置するデータベースマネージャが固定的であった。このために以下の問題があった。
第1データを参照して第1データを更新する単純な更新系クエリと、第2データを参照して第2データを更新する単純な更新系クエリと第1データを参照して第2データを更新する複雑な更新系クエリを実行する場合には、第1データと第2データの両方を同じデータベースマネージャに配置する必要があるために、上記2種類の単純な更新系クエリと上記1種類の複雑な更新系クエリの実行負荷を分散することができない。
また、クライアントから発行されるクエリの処理内容のパターンに応じて、クエリの実行負荷を動的に改善あるいは分散することができない。
本発明は、前記課題に基づいてなされたものであって、更新系クエリを実行する場合に、単純な更新系クエリと複雑な更新系クエリの実行負荷を分散させるデータベース負荷分散装置,データベース負荷分散方法及びその方法を実装したデータベース負荷分散プログラムを提供することにある。
前記課題を解決するため、請求項1記載の発明は、データを配置された複数のデータベースマネージャに接続され、受信した更新系クエリの処理内容に応じてクエリを実行するデータベースマネージャを選択し、第1データを参照して第1データを更新する単純な更新系クエリと第1データを参照して第2データを更新する複雑な更新系クエリの実行負荷を分散させるデータベース負荷分散装置であって、前記データの識別子とそのデータを有するデータベースマネージャの識別子を含む配置情報を記憶した記憶部と、前記更新系クエリが単純な更新系クエリと複雑な更新系クエリのいずれの処理内容に該当するかを解析するクエリ解析装置と、単純な更新系クエリを受信した場合に、前記配置情報を参照して、第1データを有するデータベースマネージャの全てに、前記更新系クエリの実行を担当させる単純更新系クエリ振り分け装置と、複雑な更新系クエリを受信した場合に、前記配置情報を参照して、第1データが配置されたデータベースと第2データが配置されたデータベースの異同に応じたクエリを作成し、該クエリに応じたデータベースマネージャに担当させる複雑更新系クエリ振り分け装置と、備え、前記複雑更新系クエリ振り分け装置は、前記第1データと第2データの両方が同一のデータベースマネージャに有る場合、前記第1データと第2データの両方が有るデータベースマネージャの全てを選択し、前記データベースマネージャに前記複雑な更新系クエリの実行を担当させる手段と、前記第1データと第2データが異なるデータベースマネージャに有る場合、前記複雑な更新系クエリを、第1データを参照して更新用データを作成するデータ作成用クエリと、作成した更新用データを利用して第2データを更新するデータ更新用クエリとに分解し、前記第1データが有るデータベースマネージャを一つ選択して前記データ作成用クエリの実行を担当させ、第2データが有るデータベースマネージャの全てに前記データ更新用クエリの実行を担当させる手段と、を備えることを特徴とする。
請求項2記載の発明は、請求項1に記載のデータベース負荷分散装置であって、前記クエリ解析装置が、前記クエリに関する処理内容を解析した結果に基づく統計情報を計算し、前記記憶部に記憶する手段を備え、前記記憶部の統計情報を参照し、該統計情報に基づいてデータを再配置するデータベースマネージャを決定し、あるデータベースマネージャから他のデータベースマネージャに対しデータ操作を行い、そのデータ操作結果を前記配置情報に反映するデータ再配置装置、を有することを特徴とする。
請求項3記載の発明は、データを配置された複数のデータベースマネージャに接続され、前記データの識別子とそのデータを有するデータベースマネージャの識別子を含む配置情報を記憶した記憶部を備え、受信した更新系クエリの処理内容に応じてクエリを実行するデータベースマネージャを選択し、第1データを参照して第1データを更新する単純な更新系クエリと第1データを参照して第2データを更新する複雑な更新系クエリの実行負荷を分散させる装置が実行するデータベース負荷分散方法であって、前記更新系クエリが単純な更新系クエリと複雑な更新系クエリのいずれの処理内容に該当するかを解析するクエリ解析ステップと、単純な更新系クエリを受信した場合に、前記配置情報を参照して、第1データを有するデータベースマネージャの全てに、前記更新系クエリの実行を担当させる単純更新系クエリ振り分けステップと、複雑な更新系クエリを受信した場合に、前記配置情報を参照して、第1データが配置されたデータベースと第2データが配置されたデータベースの異同に応じたクエリを作成し、該クエリに応じたデータベースマネージャに担当させる複雑更新系クエリ振り分けステップと、を有し、前記複雑更新系クエリ振り分けステップは、前記第1データと第2データの両方が同一のデータベースマネージャに有る場合、前記第1データと第2データの両方が有るデータベースマネージャの全てを選択し、前記データベースマネージャに前記複雑な更新系クエリの実行を担当させるステップと、前記第1データと第2データが異なるデータベースマネージャに有る場合、前記複雑な更新系クエリを、第1データを参照して更新用データを作成するデータ作成用クエリと、作成した更新用データを利用して第2データを更新するデータ更新用クエリとに分解し、前記第1データが有るデータベースマネージャを一つ選択して前記データ作成用クエリの実行を担当させ、第2データが有るデータベースマネージャの全てに前記データ更新用クエリの実行を担当させるステップと、を有することを特徴とする。
請求項4記載の発明は、請求項3に記載のデータベース負荷分散方法であって、前記クエリ解析ステップが、前記クエリに関する処理内容を解析した結果に基づく統計情報を計算し、前記記憶部に記憶するステップを有し、前記記憶部の統計情報を参照し、該統計情報に基づいてデータを再配置するデータベースマネージャを決定し、あるデータベースマネージャから他のデータベースマネージャに対しデータ操作を行い、そのデータ操作結果を前記配置情報に反映するデータ再配置ステップ、を有することを特徴とする。
請求項5記載の発明は、データベース負荷分散プログラムであって、請求項3または4の何れかに記載のデータベース負荷分散方法を、コンピュータで実行可能なコンピュータプログラムとして記述したことを特徴とする。
前記請求項1,3記載の発明は、第1データが配置されたデータベースと第2データが配置されたデータベースの関係に応じたクエリを作成できる。
また、複雑な更新系クエリを、第1データを参照して更新用データを作成するデータ作成用クエリと、作成した更新用データを使用して第2のデータを更新するデータ更新用クエリとに分解して実行し、第1データと第2データを異なるデータベースマネージャに配置できる。
前記請求項2,4記載の発明は、前記統計情報に基づいてデータを配置するデータベースマネージャを決定できる。
前記請求項5記載の発明は、請求項3または4の何れかに記載のデータベース負荷分散方法をコンピュータプログラムとして記述できる。
以上示したように請求項1〜5の発明によれば、単純な更新系クエリと複雑な更新系クエリの実行負荷を分散できる。
請求項2,4の発明によれば、クエリの実行負荷を動的に統計情報に基づいて改善あるいは分散できる。
請求項5の発明によれば、請求項3または4の何れかに記載のデータベース負荷分散方法を実装したコンピュータプログラムを提供できる。
これらを以って情報サービス分野に貢献できる。
以下、本発明の実施形態を図面等に基づいて詳細に説明する。図1は、本実施形態におけるデータベース負荷分散装置を含むシステム構成の一例を示すブロック図である。
図1の装置構成は、クエリ文(以下、単にクエリという)を送信するクライアント装置C1〜Cn,データベース負荷分散処理を行うデータベース負荷分散装置11,データベースD111〜D11nの各々が接続されたデータベースマネージャD11〜D1nから構成される。なお、以下の説明で図7中の符号と同じものの説明は省略する。
また、図1中のデータベース負荷分散装置11は、クエリを解析するクエリ解析装置11a,参照系クエリを振り分け処理する参照系クエリ振り分け装置11b,配置情報11c,単純更新系クエリを振り分け処理する単純更新系クエリ振り分け装置11e,複雑更新系クエリを振り分け処理する複雑更新系クエリ振り分け装置11fを備えている。なお、配置情報11cは、データベース負荷分散装置11に予め備えられた記憶部(例えば、メモリやハードディスク装置)に記憶されているものとする。
本実施形態におけるデータベースマネージャのクエリの実行負荷を分散する場合の動作を図2に基づいて説明する。以下の説明で図1の符号と同じものの説明は省略する。
まず、データベース負荷分散装置11の初期化が行われ(S201)、データベース負荷分散装置11にクエリが、例えば、クライアント装置C1から送信される。
次に、クエリ解析装置11aは、クエリの処理内容を解析し(S202)、参照系クエリであれば参照系クエリ振り分け装置11bに引き渡す。単純更新系クエリであれば単純更新系クエリ振り分け装置11eに引き渡す。複雑更新系クエリであれば複雑更新系クエリ振り分け装置11fに引き渡す(S203)。
次に、参照系クエリ振り分け装置11bは、配置情報11cを参照して、参照すべきデータを持つデータベースマネージャ(例えば、データベースマネージャD11)を一つ選択し、そのデータベースマネージャに参照系クエリを発行し(即ち、参照系クエリの実行を担当させ)、応答をクライアント装置C1に返す(S204)。
次に、単純更新系クエリ振り分け装置11eは、配置情報11cを参照して、参照しかつ更新すべきデータを持つデータベースマネージャの全てを選択し、そのデータベースマネージャに単純更新系クエリを発行し(即ち、更新系クエリの実行を担当させ)、そのデータベースマネージャからの応答をクライアント装置C1に返す(S205)。
次に、複雑更新系クエリ振り分け装置11fは、配置情報11cを参照して、参照すべきデータと更新すべきデータの両方が同じデータベースマネージャにあるならば(S206)、参照すべきデータと更新すべきデータの両方を持つデータベースマネージャの全てを選択し、そのデータベースマネージャに複雑更新系クエリを発行し(即ち、複雑更新系クエリの実行を担当させ)、そのデータベースマネージャからの応答をクライアント装置C1に返す(S207)。
そして、複雑更新系クエリ振り分け装置11fは、配置情報11cを参照して、参照すべきデータと更新すべきデータが異なるデータベースマネージャにあるならば(S206)、参照すべきデータを参照して更新用データを作成するデータ作成用クエリと、作成した更新用データを使用して更新すべきデータを更新するデータ更新用クエリとに分解し、参照すべきデータを持つデータベースマネージャを一つ選択し、そのデータベースマネージャにデータ作成用クエリを発行し、応答を得る。さらに、更新すべきデータを持つデータベースマネージャの全てを選択し、そのデータベースマネージャにデータ更新用クエリを発行し、そのデータベースマネージャからの応答をクライアント装置C1に返す(S208)。
また、上記の動作の一例を図3のシーケンス図を用いて説明する。なお、図3Aは参照系クエリに関する動作、図3Bは単純更新系クエリに関する動作、図3C及び図3Dは複雑更新系クエリに関する動作を示すシーケンス図である。
図3Aでは、まず、データベース負荷分散装置11にクエリがクライアント装置Cから送信される(M201)。
次に、クエリ解析装置11aは、クエリの処理内容を解析し、参照系クエリであれば参照系クエリ振り分け装置11bに引き渡す(M202)。
そして、参照系クエリ振り分け装置11bは、配置情報11cを参照して(M203)、参照すべきデータを持つデータベースマネージャ(例えば、データベースマネージャD11)を一つ選択し、そのデータベースマネージャに参照系クエリを発行し(M204)、応答をクライアント装置C1に返す(M205,M206)。
図3Bでは、まず、データベース負荷分散装置11にクエリがクライアント装置Cから送信される(M207)。
次に、単純更新系クエリであれば単純更新系クエリ振り分け装置11eに引き渡す(M208)。
そして、単純更新系クエリ振り分け装置11eは、配置情報11cを参照して(M209)、参照し、かつ、更新すべきデータを持つデータベースマネージャの全て(例えば、データベースマネージャD11〜D1n)を選択し、それらデータベースマネージャD11〜D1nに単純更新系クエリを発行し(M210,M211)、応答をクライアント装置Cに返す(M212,M213,M214)。
図3Cでは、まず、データベース負荷分散装置11にクエリがクライアント装置Cから送信される(M215)。
次に、複雑更新系クエリであれば複雑更新系クエリ振り分け装置11fに引き渡す(M216)。
そして、複雑更新系クエリ振り分け装置11fは、配置情報11cを参照して(M217)、参照すべきデータと更新すべきデータの両方が同じデータベースマネージャにあるならば、参照すべきデータと更新すべきデータの両方を持つデータベースマネージャの全て(例えば、データベースマネージャD11〜D1n)を選択し、それらデータベースマネージャD11〜D1nに複雑更新系クエリを発行し(M218,M219)、応答をクライアント装置Cに返す(M220,M221,M222)。
図3Dでは、まず、データベース負荷分散装置11にクエリがクライアント装置Cから送信される(M223)。
次に、複雑更新系クエリであれば複雑更新系クエリ振り分け装置11fに引き渡す(M224)。
そして、複雑更新系クエリ振り分け装置11fは、配置情報11cを参照して(M225)、参照すべきデータと更新すべきデータが異なるデータベースマネージャにあるならば、参照すべきデータを参照して更新用データを作成するデータ作成用クエリと、作成した更新用データを使用して更新すべきデータを更新するデータ更新用クエリとに分解し、参照すべきデータを持つデータベースマネージャ(例えば、データベースマネージャD11)を一つ選択し、そのデータベースマネージャD11にデータ作成用クエリを発行し(M226)、応答を得る(M227)。さらに、更新すべきデータを持つデータベースマネージャの全て(例えば、データベースマネージャD11〜D1n)を選択し、そのデータベースマネージャD11〜D1nにデータ更新用クエリを発行し(M228,M229)、応答をクライアント装置Cに返す(M230,M231,M232)。
データベース負荷分散装置におけるクライアントから発行されるクエリの内容の統計情報に基づいてデータを移動あるいは複製する場合の動作の一例を図4及び図5に基づいて説明する。なお、以下では図4の構成図において、点線で記載されたものに関して説明する。図5は、その点線で記載されたものに関する手順を示す図である。以下の説明で図1及び図7中の符号と同じものの説明は省略する。
ここで、クライアントから発行されるクエリの内容の統計情報について説明する。前記統計情報は、例えば、データと操作種別ごとの単位時間当たりにおけるデータ操作回数の履歴、データベースマネージャを実行している計算機の単位時間の平均負荷(CPU,メモリ,ディスク装置,ネットワークなど)の履歴である。
図4の装置構成は、クライアント装置C1〜Cn,データベース負荷分散装置11A,データベースD111〜D11nの各々が接続されたデータベースマネージャD11〜D1nから構成される。
また、図4中のデータベース負荷分散装置11Aは、クエリを解析するクエリ解析装置11a,参照系クエリを振り分け処理する参照系クエリ振り分け装置11b,配置情報11c,単純更新系クエリを振り分け処理する単純更新系クエリ振り分け装置11e,複雑更新系クエリを振り分け処理する複雑更新系クエリ振り分け装置11f,統計情報11g,データ再配置装置11hを備えている。なお、配置情報11c及び統計情報11gは、データベース負荷分散装置11Aに予め備えられた記憶部(例えば、メモリやハードディスク装置)に記憶されているものとする。また、配置情報11cは、排他制御可能な記憶部(例えば、データベース)に記憶されていることが望ましい。
本実施形態のデータベース負荷分散装置におけるクライアントから発行されるクエリの内容の統計情報に基づいてデータをデータ操作(例えば、データの移動あるいは複製)する場合の動作の一例を図5に基づいて説明する。
まず、データベース負荷分散装置11Aが初期化され(S301)、データベース負荷分散装置11Aにクエリが送信される。
次に、クエリ解析装置11aは、クエリの処理内容の統計情報11gを計算し、統計情報11gを更新する(S302)。
次に、データ再配置装置11hは、統計情報11gにしたがって、データベースマネージャに対するデータ操作(例えば、データの移動あるいは複製)を決定する(S303,S304)。
次に、データ再配置装置11hは、配置情報11cのロックを獲得する(S305)。
次に、データ再配置装置11hは、前記データベースマネージャに対するデータ操作を行う(例えば、データを移動あるいは複製する)(S306)。
次に、データ再配置装置11hは、配置情報11cを更新する(即ち、前記データ操作結果を反映する)(S307)。
そして、データ再配置装置11hは、配置情報11cのロックを解除する(S308)。
また、上記の動作の一例を図6のシーケンス図を用いて説明する。
まず、データベース負荷分散装置11Aにクエリが送信される(M301)。
次に、クエリ解析装置11aは、クエリの処理内容の統計情報を計算し、前記記憶部中の統計情報11gを更新する(M302)。
次に、データ再配置装置11hは、統計情報11gを読み出し(M303)、該統計情報11gにしたがって、データベースマネージャに対するデータ操作(例えば、データの移動あるいは複製)を決定する。
次に、データ再配置装置11hは、配置情報11cのロックを獲得する(M304)。
次に、データ再配置装置11hは、前記データベースマネージャに対するデータ操作を行う(例えば、データを移動あるいは複製する)(M305,M306)。
次に、データ再配置装置11hは、配置情報11cを更新する(即ち、前記データ操作結果を反映する)(M307)。
そして、データ再配置装置11hは、配置情報11cのロックを解除する(M308)。
なお、本実施形態のデータベース負荷分散装置における各手段の一部もしくは全部の機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、本実施形態のデータベース負荷分散方法における手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもない。
以上、本発明の実施形態について説明したが、本発明は説明した実施形態に限定されるものでなく、各請求項に記載した範囲において各種の変形を行うことが可能である。
例えば、前記配置情報を、排他制御機能を有するファイルシステムや記憶管理部に格納し、上述の実施形態における処理を行うこともできる。
本実施形態におけるデータベース負荷分散装置の装置構成図。 本実施形態におけるデータベースマネージャのクエリの実行負荷を分散する動作を示すフローチャート。 本実施形態におけるデータベースの負荷を分散する場合の実施形態の動作((A)は参照系クエリに関する動作、(B)は単純更新系クエリに関する動作、(C)及び(D)は複雑更新系クエリに関する動作)を示すシーケンス図。 本実施例におけるデータベース負荷分散装置の装置構成図。 本実施例におけるクライアントから発行されるクエリの処理内容のパターンに応じて、データベースマネージャのクエリの実行負荷を動的に変更する動作を示すフローチャート。 本実施例におけるクライアントから発行されるクエリの処理内容のパターンに応じて、データベースマネージャのクエリの実行負荷を動的に変更する動作を示すシーケンス図。 一般的なデータベース負荷分散装置の装置構成図。 一般的なデータベース負荷分散装置におけるデータベースマネージャのクエリの実行負荷を分散する動作のフローチャート。 一般的なデータベース負荷分散装置におけるデータベースマネージャのクエリの実行負荷を分散する動作((A)は参照系クエリに関する動作、(B)は更新系クエリに関する動作)のシーケンス図。
符号の説明
1,11,11A…データベース負荷分散装置
1a,11a…クエリ解析装置
1b,11b…参照系クエリ振り分け装置
1c,11c…配置情報
1d…更新系クエリ振り分け装置
11e…単純更新系クエリ振り分け装置
11f…複雑更新系クエリ振り分け装置
11g…統計情報
11h…データ再配置装置
C,C1,Cn…クライアント装置
D11,D12,D1n…データベースマネージャ
D111,D112,D11n…データベース

Claims (5)

  1. データを配置された複数のデータベースマネージャに接続され、受信した更新系クエリの処理内容に応じてクエリを実行するデータベースマネージャを選択し、第1データを参照して第1データを更新する単純な更新系クエリと第1データを参照して第2データを更新する複雑な更新系クエリの実行負荷を分散させるデータベース負荷分散装置であって、
    前記データの識別子とそのデータを有するデータベースマネージャの識別子を含む配置情報を記憶した記憶部と、
    前記更新系クエリが単純な更新系クエリと複雑な更新系クエリのいずれの処理内容に該当するかを解析するクエリ解析装置と、
    単純な更新系クエリを受信した場合に、前記配置情報を参照して、第1データを有するデータベースマネージャの全てに、前記更新系クエリの実行を担当させる単純更新系クエリ振り分け装置と、
    複雑な更新系クエリを受信した場合に、前記配置情報を参照して、第1データが配置されたデータベースと第2データが配置されたデータベースの異同に応じたクエリを作成し、該クエリに応じたデータベースマネージャに担当させる複雑更新系クエリ振り分け装置と、備え、
    前記複雑更新系クエリ振り分け装置は、
    前記第1データと第2データの両方が同一のデータベースマネージャに有る場合、前記第1データと第2データの両方が有るデータベースマネージャの全てを選択し、前記データベースマネージャに前記複雑な更新系クエリの実行を担当させる手段と、
    前記第1データと第2データが異なるデータベースマネージャに有る場合、前記複雑な更新系クエリを、第1データを参照して更新用データを作成するデータ作成用クエリと、作成した更新用データを利用して第2データを更新するデータ更新用クエリとに分解し、前記第1データが有るデータベースマネージャを一つ選択して前記データ作成用クエリの実行を担当させ、第2データが有るデータベースマネージャの全てに前記データ更新用クエリの実行を担当させる手段と、
    を備える
    ことを特徴とするデータベース負荷分散装置。
  2. 請求項1に記載のデータベース負荷分散装置であって、
    前記クエリ解析装置が、前記クエリに関する処理内容を解析した結果に基づく統計情報を計算し、前記記憶部に記憶する手段を備え、
    前記記憶部の統計情報を参照し、該統計情報に基づいてデータを再配置するデータベースマネージャを決定し、あるデータベースマネージャから他のデータベースマネージャに対しデータ操作を行い、そのデータ操作結果を前記配置情報に反映するデータ再配置装置、
    を有することを特徴とするデータベース負荷分散装置。
  3. データを配置された複数のデータベースマネージャに接続され、
    前記データの識別子とそのデータを有するデータベースマネージャの識別子を含む配置情報を記憶した記憶部を備え、
    受信した更新系クエリの処理内容に応じてクエリを実行するデータベースマネージャを選択し、第1データを参照して第1データを更新する単純な更新系クエリと第1データを参照して第2データを更新する複雑な更新系クエリの実行負荷を分散させる装置が実行するデータベース負荷分散方法であって、
    前記更新系クエリが単純な更新系クエリと複雑な更新系クエリのいずれの処理内容に該当するかを解析するクエリ解析ステップと、
    単純な更新系クエリを受信した場合に、前記配置情報を参照して、第1データを有するデータベースマネージャの全てに、前記更新系クエリの実行を担当させる単純更新系クエリ振り分けステップと、
    複雑な更新系クエリを受信した場合に、前記配置情報を参照して、第1データが配置されたデータベースと第2データが配置されたデータベースの異同に応じたクエリを作成し、該クエリに応じたデータベースマネージャに担当させる複雑更新系クエリ振り分けステップと、を有し、
    前記複雑更新系クエリ振り分けステップは、
    前記第1データと第2データの両方が同一のデータベースマネージャに有る場合、前記第1データと第2データの両方が有るデータベースマネージャの全てを選択し、前記データベースマネージャに前記複雑な更新系クエリの実行を担当させるステップと、
    前記第1データと第2データが異なるデータベースマネージャに有る場合、前記複雑な更新系クエリを、第1データを参照して更新用データを作成するデータ作成用クエリと、作成した更新用データを利用して第2データを更新するデータ更新用クエリとに分解し、前記第1データが有るデータベースマネージャを一つ選択して前記データ作成用クエリの実行を担当させ、第2データが有るデータベースマネージャの全てに前記データ更新用クエリの実行を担当させるステップと、
    を有する
    ことを特徴とするデータベース負荷分散方法。
  4. 請求項3に記載のデータベース負荷分散方法であって、
    前記クエリ解析ステップが、前記クエリに関する処理内容を解析した結果に基づく統計情報を計算し、前記記憶部に記憶するステップを有し、
    前記記憶部の統計情報を参照し、該統計情報に基づいてデータを再配置するデータベースマネージャを決定し、あるデータベースマネージャから他のデータベースマネージャに対しデータ操作を行い、そのデータ操作結果を前記配置情報に反映するデータ再配置ステップ、
    を有することを特徴とするデータベース負荷分散方法。
  5. 請求項3または4の何れかに記載のデータベース負荷分散方法のステップを、コンピュータに実行させるためのデータベース負荷分散プログラム。
JP2006279604A 2006-10-13 2006-10-13 データベース負荷分散装置,データベース負荷分散方法及びその方法を実装したデータベース負荷分散プログラム Expired - Fee Related JP4696043B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006279604A JP4696043B2 (ja) 2006-10-13 2006-10-13 データベース負荷分散装置,データベース負荷分散方法及びその方法を実装したデータベース負荷分散プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006279604A JP4696043B2 (ja) 2006-10-13 2006-10-13 データベース負荷分散装置,データベース負荷分散方法及びその方法を実装したデータベース負荷分散プログラム

Publications (2)

Publication Number Publication Date
JP2008097399A JP2008097399A (ja) 2008-04-24
JP4696043B2 true JP4696043B2 (ja) 2011-06-08

Family

ID=39380165

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006279604A Expired - Fee Related JP4696043B2 (ja) 2006-10-13 2006-10-13 データベース負荷分散装置,データベース負荷分散方法及びその方法を実装したデータベース負荷分散プログラム

Country Status (1)

Country Link
JP (1) JP4696043B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6247791B2 (ja) * 2015-03-26 2017-12-13 株式会社日立製作所 データベースシステム及びクエリ実行方法
JP6571614B2 (ja) * 2016-09-02 2019-09-04 日本電信電話株式会社 振分装置、通信システム及びデータ振分方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022209A (ja) * 2001-07-05 2003-01-24 Nri & Ncc Co Ltd 分散サーバーシステム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69119222T2 (de) * 1991-06-04 1996-11-21 Ibm Datensicherung und Beseitigung in einem Datenverarbeitungssystem
JPH06259357A (ja) * 1993-03-05 1994-09-16 Nippon Telegr & Teleph Corp <Ntt> 分散システムにおけるデータの再配置装置
JP2740105B2 (ja) * 1993-03-19 1998-04-15 日本電信電話株式会社 分散データベース制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022209A (ja) * 2001-07-05 2003-01-24 Nri & Ncc Co Ltd 分散サーバーシステム

Also Published As

Publication number Publication date
JP2008097399A (ja) 2008-04-24

Similar Documents

Publication Publication Date Title
AU2014240211B2 (en) Background format optimization for enhanced sql-like queries in hadoop
Dowd et al. Windows. NET network distributed basic local alignment search toolkit (W. ND-BLAST)
US7058671B2 (en) System combining information with view templates generated by compiler in a server for generating view structure for client computer
US20110161391A1 (en) Federated distributed workflow scheduler
JP5239739B2 (ja) プリント基板配線処理装置、プリント基板配線処理プログラム、プリント基板配線処理方法
Gao et al. Top-k team recommendation in spatial crowdsourcing
Mundim et al. A general heuristic for two-dimensional nesting problems with limited-size containers
JP4696043B2 (ja) データベース負荷分散装置,データベース負荷分散方法及びその方法を実装したデータベース負荷分散プログラム
Pastor et al. A heuristic procedure for solving the lexicographic bottleneck assembly line balancing problem (LB-ALBP)
Zhang et al. Single-machine scheduling problems with a learning effect matrix
CN103634374A (zh) 一种并发访问请求的处理方法及装置
CN102929877A (zh) 将网页上的表格数据生成表格文件的方法及装置
CN103197922A (zh) 用html开发(web)动态脚本的技术方法
US9298772B2 (en) Small table replication for parallelized join operations
Jackson Topsy-turvy requirements
US20060064632A1 (en) Method and system to inverse graphs
Ye et al. A raft variant for permissioned blockchain
CN102402433B (zh) 模型、操作以及实现的分离
JP2007140611A (ja) データ連携方式
JP5247622B2 (ja) データベースサーバ、データ振分方法及びサーバシステム
Safatli et al. Pylogeny: an open-source Python framework for phylogenetic tree reconstruction and search space heuristics
Mikulovic et al. Practices and supporting structures for mature inquiry culture in distributed software development projects
JP4420680B2 (ja) 情報処理システムおよび画面からのリクエストの処理方法
JP7486161B2 (ja) 情報処理システム、情報処理方法及びプログラム
KR100872287B1 (ko) 실행 파일 실행 방법 및 장치와 이 방법을 실행하는프로그램 기록매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090121

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090609

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101028

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110228

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

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees