JP5191434B2 - データベーススケールアウト方法及び装置及びプログラム - Google Patents
データベーススケールアウト方法及び装置及びプログラム Download PDFInfo
- Publication number
- JP5191434B2 JP5191434B2 JP2009102049A JP2009102049A JP5191434B2 JP 5191434 B2 JP5191434 B2 JP 5191434B2 JP 2009102049 A JP2009102049 A JP 2009102049A JP 2009102049 A JP2009102049 A JP 2009102049A JP 5191434 B2 JP5191434 B2 JP 5191434B2
- Authority
- JP
- Japan
- Prior art keywords
- query
- database
- data
- division
- distribution rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
クライアントからのクエリを受け付けてデータベースに対するクエリ実行結果を該クライアントに返却する少なくとも1つ以上のクエリ処理手段と、データベースの分割及びクエリの振り分けに必要な管理情報を蓄積する管理情報蓄積手段と、分割元のデータベース中のコピー対象となるデータを少なくとも1つ以上の分割先のデータベースにコピーするデータコピー手段とからなるシステムにおいて、
分割元のデータベースを1つ以上の分割先に分割する際に、
データコピー手段は、
分割先のデータベースとなる少なくとも1つ以上のデータベースを作成し(ステップ1)、管理情報蓄積手段に蓄積されている「分割元のデータベースのみにクエリを振り分ける」振り分けルールaから「参照クエリの場合は分割元のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分ける」振り分けルールbに変更させ(ステップ2)、
管理情報蓄積手段に蓄積されているバージョン番号をインクリメンタルな値に更新(増加)させ(ステップ3)、
全てのクエリ処理手段にデータベースの分割開始通知を送信し(ステップ4)、
全てのクエリ処理手段からデータベースの分割開始通知に対する受領確認を受け取った後で(ステップ5)、分割元のデータベースのうち、データに付加されているバージョン番号が、更新されたバージョン番号よりも小さいデータを振り分けルールbに従って、分割先のデータベースのうちの条件を満たす一部のデータベースにコピーし(ステップ6)、
コピー完了後、管理情報蓄積手段に蓄積されている振り分けルールbを、「参照クエリの場合は分割先のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分ける」振り分けルールcに変更させ(ステップ7)、
全てのクエリ処理手段に第1のデータベース分割終了通知を送信し(ステップ8)、
全てのクエリ処理手段から第1のデータベース分割終了通知に対する受領確認を受け取った後で(ステップ9)、管理情報蓄積手段に蓄積されている振り分けルールcを「分割先データベースのみにクエリを振り分ける」振り分けルールdに変更し(ステップ10)、
全てのクエリ処理手段に第2のデータベース分割終了通知を送信し(ステップ11)、
全てのクエリ処理手段から第2のデータベース分割終了通知に対する受領確認を受け取った後で(ステップ12)、分割元のデータベースを切り離す(ステップ13)。
クライアントからのクエリを受け付けてデータベースに対するクエリ実行結果を該クライアントに返却する少なくとも1つ以上のクエリ処理手段と、データベースの分割及びクエリの振り分けに必要な管理情報を蓄積する管理情報蓄積手段と、分割元のデータベース中のコピー対象となるデータを少なくとも1つ以上の分割先のデータベースにコピーするデータコピー手段とからなるシステムにおいて、
分割元のデータベースを1つ以上の分割先に分割する際に、
クエリ処理手段は、
起動時に管理情報蓄積手段からバージョン番号を取得して、第1の記憶手段に保持すると共に、該管理情報蓄積手段から振り分けルールを取得して、第2の記憶手段に保持し、
少なくとも1つ以上のクライアントからクエリを受け付けると、該クエリの種類が参照クエリ、更新クエリまたは、削除クエリのいずれであるかを解析し、第2の記憶手段に保持している振り分けルールに従って該クエリを振り分け、
振り分けられたクエリを振り分け先のデータベースに対して実行し、クエリ実行によって挿入、更新、または、削除されたデータベース中のデータに第1の記憶手段に保持しているバージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果をクライアントに返却し、
データコピー手段からデータベース分割開始通知を受け取ると、仕掛かり中のクエリ実行処理完了後、管理情報蓄積手段に蓄積されている最新のバージョン番号を取得して、第1の記憶手段に保持しているバージョン番号を更新すると共に、該管理情報蓄積手段に蓄積されている最新の振り分けルールを取得して第2の記憶手段に保持している振り分けルールを更新し、該データコピー手段に該データベース分割開始通知に対する受領確認を通知し、
以後、データコピー手段からデータベースの分割が終了した旨の第1のデータベース分割終了通知を受け取るまでの間は、第2の記憶手段に保持している振り分けルールに従って、
参照クエリの場合は分割元のデータベースのみにクエリを振り分けて実行し、挿入クエリは分割元のデーベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、更新クエリ及び削除クエリの場合は、更新または削除対象のデータが分割先のデータベース中に存在すれば、分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、
更新または削除対象のデータが分割先のデータベース中に存在しなければ、分割元のデータベースだけにクエリを振り分けて実行し、該分割元のデータベースに対するクエリ実行の結果、変更(更新または削除)された全てのデータを分割先のデータベースにコピーし、
挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに第1の記憶手段に保持しているバージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果をクライアントに返却し、
データコピー手段から第1のデータベース分割終了通知を受け取ると、
仕掛かり中のクエリ実行処理完了後、管理情報蓄積手段に蓄積されている最新の振り分けルールを取得して第2の記憶手段に保持している振り分けルールを更新し、
データコピー手段に第1のデータベース分割終了通知に対する受領確認を通知し、
データコピー手段から、当該データコピー手段が第1のデータベース分割終了通知を取得後に振り分けルールを変更した旨の第2のデータベース分割終了通知を受け取るまでの間、第2の記憶手段に保持している振り分けルールに従って、
参照クエリの場合は分割先のデータベースのみにクエリを振り分けて実行し、挿入クエリは分割元のデーベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、更新クエリ及び削除クエリの場合は、更新または削除対象のデータが分割先のデータベース中に存在すれば、分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、
更新または削除対象のデータが分割先のデータベース中に存在しなければ、分割元のデータベースだけにクエリを振り分けて実行し、該分割元のデータベースに対するクエリ実行の結果、変更(更新または削除)された全てのデータを分割先のデータベースにコピーし、
挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに第1の記憶手段に保持しているバージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果をクライアントに返却し、
データコピー手段から第2のデータベース分割終了通知を受け取ると、
仕掛かり中のクエリ実行処理完了後、管理情報蓄積手段に蓄積されている最新の振り分けルールを取得して第2の記憶手段に保持している振り分けルールを更新し、
データコピー手段に第2のデータベース分割終了通知に対する受領確認を通知し、
以後、第2の記憶手段に保持している振り分けルールに従って、全てのクエリを分割先のデータベースのみに振り分けて実行し、挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに第1の記憶手段に保持しているバージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、該クエリの実行結果をクライアントに返却する。
クライアントからのクエリを受け付けてデータベースに対するクエリ実行結果を該クライアントに返却する少なくとも1つ以上のクエリ処理手段と、データベースの分割及びクエリの振り分けに必要な管理情報を蓄積する管理情報蓄積手段と、分割元のデータベース中のコピー対象となるデータを少なくとも1つ以上の分割先のデータベースにコピーするデータコピー手段とからなるシステムにおいて、
分割元のデータベース中のコピー対象となるデータを1つ以上の分割先のデータベースにコピーする際に、
データコピー手段は、
分割先のデータベースとなる少なくとも1つ以上のデータベースを作成し、管理情報蓄積手段に蓄積されている「分割元のデータベースのみにクエリを振り分ける」振り分けルールaから「参照クエリの場合は分割元のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び全ての分割先のデータベースにクエリを振り分ける」振り分けルールb'に変更させ、
管理情報蓄積手段に蓄積されているバージョン番号をインクリメンタルな値に更新(増加)させ、
全てのクエリ処理手段にデータベースの分割開始通知を送信し、
全てのクエリ処理手段からデータベースの分割開始通知に対する受領確認を受け取った後で、分割元のデータベース中のデータのうち、データに付加されているバージョン番号が更新したバージョン番号よりも小さいデータを全ての分割先のデータベースにコピーし、
コピー完了後、管理情報蓄積手段の振り分けルールb'を「参照クエリの場合は分割元のデータベースまたは分割先のデータベースのうちのいずれか1つのデータベースにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び全ての分割先のデータベースにクエリを振り分ける」振り分けルールc'に変更し、全てのクエリ処理手段に第1のデータベースの分割終了通知を送信し、
全てのクエリ処理手段から第1のデータベースの分割終了通知に対する受領確認を受け取る。
クライアントからのクエリを受け付けてデータベースに対するクエリ実行結果を該クライアントに返却する少なくとも1つ以上のクエリ処理手段と、データベースの分割及びクエリの振り分けに必要な管理情報を蓄積する管理情報蓄積手段と、分割元のデータベース中のコピー対象となるデータを少なくとも1つ以上の分割先のデータベースにコピーするデータコピー手段とからなるシステムにおいて、
分割元のデータベース中のコピー対象となるデータを1つ以上の分割先のデータベースにコピーする際に、
クエリ処理手段は、
起動時に管理情報蓄積手段からバージョン番号を取得して、第1の記憶手段に保持すると共に、該管理情報蓄積手段から振り分けルールを取得して、第2の記憶手段に保持し、
少なくとも1つ以上のクライアントからクエリを受け付けると、該クエリの種類が参照クエリ、更新クエリ、または、削除クエリのいずれであるかを解析し、第2の記憶手段に保持している振り分けルールに従って該クエリを振り分け、
振り分けられたクエリを振り分け先のデータベースに対して実行し、クエリ実行によって挿入、更新、または、削除されたデータベース中のデータに第1の記憶手段に保持しているバージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果をクライアントに返却し、
データコピー手段からデータベース分割開始通知を受け取ると、仕掛かり中のクエリ実行処理完了後、管理情報蓄積手段に蓄積されている最新のバージョン番号を取得して、第1の記憶手段に保持しているバージョン番号を更新すると共に、該管理情報蓄積手段に蓄積されている最新の振り分けルールを取得して第2の記憶手段に保持している振り分けルールを更新し、該データコピー手段に該データベース分割開始通知に対する受領確認を通知し、
以後、データコピー手段からデータベースの分割が終了した旨の第1のデータベース分割終了通知を受け取るまでの間は、第2の記憶手段に保持している振り分けルールに従って、
参照クエリの場合は分割元のデータベースのみにクエリを振り分けて実行し、挿入クエリは分割元のデーベース及び全ての分割先のデータベースにクエリを振り分けて実行し、更新クエリ及び削除クエリの場合は、更新または削除対象のデータが分割先のデータベース中に存在すれば、分割元のデータベース及び分割先のデータベースにクエリを振り分けて実行し、
更新または削除対象のデータが分割先のデータベース中に存在しなければ、分割元のデータベースだけにクエリを振り分けて実行し、該分割元のデータベースに対するクエリ実行の結果、変更(更新または削除)された全てのデータを全ての分割先のデータベースにコピーし、
挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに第1の記憶手段に保持しているバージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果をクライアントに返却し、
データコピー手段から第1のデータベース分割終了通知を受け取ると、
仕掛かり中のクエリ実行処理完了後、管理情報蓄積手段に蓄積されている最新の振り分けルールを取得して第2の記憶手段に保持している振り分けルールを更新し、
データコピー手段に第1のデータベース分割終了通知に対する受領確認を通知し、
以後、第2の記憶手段に保持している振り分けルールに従って、参照クエリは分割元のデータベースまたは分割先のデータベースのうちのいずれか1つのデータベースにクエリを振り分けて実行し、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び全ての分割先のデータベースにクエリを振り分けて実行し、
挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに第1の記憶手段に保持するバージョン番号を付加し、削除クエリの場合は加えて削除フラグを該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果をクライアントに返却する。
クライアントからのクエリを受け付けてデータベースに対するクエリ実行結果を該クライアントに返却する少なくとも1つ以上のクエリ処理手段100と、データベースの分割及びクエリの振り分けに必要な管理情報を蓄積する管理情報蓄積手段200と、分割元のデータベース400中のコピー対象となるデータを少なくとも1つ以上の分割先のデータベース500a,500bにコピーするデータコピー処理手段300と、を有し、
管理情報蓄積手段200は、
データベース中のデータの世代管理に使用するバージョン番号を蓄積するバージョン番号蓄積手段210と、
バージョン番号蓄積手段210に蓄積しているバージョン番号を返却するバージョン番号参照手段220と、
バージョン番号蓄積手段210に蓄積しているバージョン番号を更新する(増加)するバージョン番号更新(増加)手段230と、
データベース分割のための振り分けルールを蓄積する振り分けルール蓄積手段240と、
振り分けルール蓄積手段250に蓄積している前記振り分けルールを参照して要求元に返却する振り分けルール参照手段250と、
振り分けルール蓄積手段240に蓄積している振り分けルールを更新する振り分けルール変更手段260と、
を有し、
クエリ処理手段100は、
クライアントから受け付けクエリを解析するクエリ解析手段110と、
振り分けルールに従ってクエリを振り分けるクエリ振り分け手段120と、
振り分けられたデータベース500に対してクエリを実行する分割クエリ実行手段130と、
分割クエリ実行手段130により削除クエリが実行された場合に、データベース中の削除対象データを物理的に削除せずに削除フラグを設定する削除フラグ設定手段140と、
分割クエリ実行手段130により挿入または更新または削除されたデータベース中のデータにバージョン番号を付与するバージョン番号記録手段150と、
を有し、
データコピー処理手段300は、
少なくとも1つ以上の分割先のデータベースを新たに作成するデータベース作成手段310と、
分散コンピューティング環境上に存在する全てのクエリ処理手段100にデータベースの分割開始を通知する分割開始通知手段320と、
分割元のデータベース400のデータを分割先のデータベース500へコピーするデータコピー手段330と、
クエリ処理手段100にデータベースの分割終了を通知する分割終了通知手段340と、
を有する。
管理情報蓄積手段200の振り分けルール蓄積手段240に蓄積されている「分割元のデータベースのみにクエリを振り分ける」振り分けルールaから「参照クエリの場合は分割元のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分ける」振り分けルールbに変更させる手段と、
管理情報蓄積手段200のバージョン番号蓄積手段210に蓄積されているバージョン番号をインクリメンタルな値に更新(増加)させ、分割開始通知手段320に、全てのクエリ処理手段100に対し、データベースの分割開始通知の送信を指示する手段と、
全てのクエリ処理手段100からデータベースの分割開始通知に対する受領確認を受け取った後で、分割元のデータベースのうち、データに付加されているバージョン番号が、更新されたバージョン番号よりも小さいデータを振り分けルールbに従って、分割先のデータベースのうちの条件を満たす一部のデータベースにコピーする手段と、
コピー完了後、管理情報蓄積手段200の振り分けルール蓄積手段240に蓄積されている振り分けルールbを、「参照クエリの場合は分割先のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分ける」振り分けルールcに変更させ、分割終了通知手段340に、全てのクエリ処理手段に第1のデータベース分割終了通知を送信させる手段と、
全てのクエリ処理手段100から第1のデータベース分割終了通知に対する受領確認を受け取った後で、管理情報蓄積手段200の振り分けルール蓄積手段240に蓄積されている振り分けルールcを「分割先データベースのみにクエリを振り分ける」振り分けルールdに変更させ、分割終了通知手段に全てのクエリ処理手段に対して第2のデータベース分割終了通知を送信させる手段と、
全てのクエリ処理手段100から第2のデータベース分割終了通知に対する受領確認を受け取った後で、分割元のデータベースを切り離す手段と、を含む。
起動時に管理情報蓄積手段200からバージョン番号を取得して、第1の記憶手段に保持する、または、データコピー処理手段300からデータベース分割開始通知を受け取ると、分割クエリ実行手段130による仕掛かり中のクエリ実行処理完了後、該管理情報蓄積手段200に蓄積されている最新のバージョン番号を取得して、該第1の記憶手段に保持しているバージョン番号を更新するバージョン番号更新手段と、
起動時に管理情報蓄積手段200から振り分けルールを取得して、第2の記憶手段に保持する、または、データコピー処理手段300からデータベース分割開始通知を取得し、仕掛かり中のクエリ実行処理完了後に管理情報蓄積手段200から振り分けルールを取得して、該第2の記憶手段に保持している振り分けルールを更新する振り分けルール更新手段と、
データコピー処理手段300からデータベース分割終了通知を受信し、該データベース分割開始通知に対する受領確認の通知を該データコピー処理手段300に送信する送受信手段と、
を更に有し、
クエリ解析手段110は、少なくとも1つ以上のクライアントからクエリを受け付けると、該クエリの種類が参照クエリ、更新クエリ、または、削除クエリのいずれであるかを解析する手段を有し、
クエリ振り分け手段120は、第2の記憶手段に保持している振り分けルールに従って該クエリを振り分ける手段を有し、
分割クエリ実行手段130は、
クエリ振り分け手段120により振り分けられたクエリを振り分け先のデータベースに対して実行し、クエリの実行結果をクライアントに返却する手段と、
データコピー処理手段300から送受信手段を介して第1のデータベース分割終了通知を受け取るまでの間は、第2の記憶手段に保持している振り分けルールに従って、参照クエリ実行の場合は分割元のデータベース400のみにクエリを振り分けて実行し、挿入クエリ実行の場合は分割元のデーベース400及び分割先のデータベース500のうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、更新クエリ及び削除クエリ実行の場合は、更新または削除対象のデータが分割先のデータベース500中に存在すれば、分割元のデータベース400及び分割先のデータベース500のうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、該更新または削除対象のデータが分割先のデータベース中に存在しなければ、分割元のデータベース400だけにクエリを振り分けて実行し、該分割元のデータベース400に対するクエリ実行の結果、変更(更新または削除)された全てのデータを分割先のデータベース500にコピーする手段と、
データコピー処理手段300から送受信手段を介して第1のデータベース分割終了通知を取得後に、該データコピー処理手段300から振り分けルールを変更した旨の第2のデータベース分割終了通知を受け取るまでの間、第2の記憶手段に保持している振り分けルールに従って、参照クエリ実行の場合は分割先のデータベース500のみにクエリを振り分けて実行し、挿入クエリ実行の場合は分割元のデーベース400及び分割先のデータベース500のうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、更新クエリ及び削除クエリ実行の場合は、更新または削除対象のデータが分割先のデータベース500中に存在すれば、分割元のデータベース400及び分割先のデータベース500のうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、該更新または削除対象のデータが分割先のデータベース500中に存在しなければ、分割元のデータベー400スだけにクエリを振り分けて実行し、該分割元のデータベース400に対するクエリ実行の結果、変更(更新または削除)された全てのデータを分割先のデータベース500にコピーする手段と、
送受信手段を介して、データコピー処理手段300に第2のデータベース分割終了通知に対する受領確認を通知した後、第2の記憶手段に保持している振り分けルールに従って、全てのクエリを分割先のデータベースのみに振り分けて実行する手段と、を有する。
管理情報蓄積手段200の振り分けルール蓄積手段240に蓄積されている「分割元のデータベースのみにクエリを振り分ける」振り分けルールaから「参照クエリの場合は分割元のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び全ての分割先のデータベースにクエリを振り分ける」振り分けルールb'に変更させる手段と、
管理情報蓄積手段200のバージョン番号蓄積手段210に蓄積されているバージョン番号をインクリメンタルな値に更新(増加)させる手段と、
分割通知開始手段320を介して、全てのクエリ処理手段100にデータベースの分割開始通知を送信し、該全てのクエリ処理手段100からデータベースの分割開始通知に対する受領確認を受け取った後で、分割元のデータベース400中のデータのうち、データに付加されているバージョン番号が更新したバージョン番号よりも小さいデータを全ての分割先のデータベース500にコピーする手段と、
コピー完了後、管理情報蓄積手段200の振り分けルールb'を「参照クエリの場合は分割元のデータベースまたは分割先のデータベースのうちのいずれか1つのデータベースにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び全ての分割先のデータベースにクエリを振り分ける」振り分けルールc'に変更し、分割終了通知手段340を介して、全てのクエリ処理手段100に第1のデータベースの分割終了通知を送信し、該全てのクエリ処理手段から第1のデータベースの分割終了通知に対する受領確認を受け取る手段と、を含む。
起動時に管理情報蓄積手段200からバージョン番号を取得して、第1の記憶手段に保持する、または、データコピー処理手段300からデータベース分割開始通知を受け取ると、分割クエリ実行手段130による仕掛かり中のクエリ実行処理完了後、該管理情報蓄積手段200に蓄積されている最新のバージョン番号を取得して、該第1の記憶手段に保持しているバージョン番号を更新するバージョン番号更新手段と、
起動時に管理情報蓄積手段200から振り分けルールを取得して、第2の記憶手段に保持する、または、データコピー処理手段300からデータベース分割開始通知を取得し、仕掛かり中のクエリ実行処理完了後に管理情報蓄積手段200から振り分けルールを取得して、該第2の記憶手段に保持している振り分けルールを更新する振り分けルール更新手段と、
データコピー処理手段300からデータベース分割終了通知を受信し、該データベース分割開始通知に対する受領確認の通知を該データコピー処理手段300に送信する送受信手段と、
を更に有し、
クエリ解析手段110は、少なくとも1つ以上のクライアントからクエリを受け付けると、該クエリの種類が参照クエリ、更新クエリ、または、削除クエリのいずれであるかを解析する手段を有し、
クエリ振り分け手段は120、第2の記憶手段に保持している振り分けルールに従って該クエリを振り分ける手段を有し、
分割クエリ実行手段130は、
振り分けられたクエリを振り分け先のデータベース500に対して実行し、クエリ実行によって挿入、更新、または、削除されたデータベース中のデータに第1の記憶手段に保持しているバージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果をクライアントに返却する手段と、
送受信手段を介して、データコピー処理手段300からデータベース分割開始通知を受け取り、振り分けルール更新手段による振り分けルールの更新が行われ、該データコピー処理手段300に該送受信手段を介して該データベース分割開始通知に対する受領確認を通知した後に、データコピー処理手段300から第1のデータベース分割終了通知を受け取るまでの間は、第2の記憶手段に保持されている振り分けルールに従って、参照クエリ実行の場合は分割元のデータベース400のみにクエリを振り分けて実行し、挿入クエリ実行の場合は分割元のデーベース400及び全ての分割先のデータベース500にクエリを振り分けて実行し、更新クエリ及び削除クエリ実行の場合は、更新または削除対象のデータが分割先のデータベース500中に存在すれば、分割元のデータベース400及び分割先のデータベース500にクエリを振り分けて実行する手段と、
更新または削除対象のデータが分割先のデータベース500中に存在しなければ、分割元のデータベース400だけにクエリを振り分けて実行し、該分割元のデータベース400に対するクエリ実行の結果、変更(更新または削除)された全てのデータを全ての分割先のデータベース500にコピーする手段と、
データコピー処理手段300に該データコピー処理手段300から取得した第1のデータベース分割終了通知に対する受領確認を通知した後に、第2の記憶手段に保持している振り分けルールに従って、参照クエリ実行の場合は分割元のデータベース400または分割先のデータベース500のうちのいずれか1つのデータベースにクエリを振り分けて実行し、挿入クエリ、更新クエリ、または、削除クエリ実行の場合は分割元のデータベース400及び全ての分割先のデータベース500にクエリを振り分けて実行する手段と、を有する。
挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに、バージョン番号記録手段150によりバージョン番号を付与し、削除クエリの場合は削除フラグ設定手段140により削除フラグが設定されたデータをクエリの実行結果から除外してクライアントに返却する手段を含む。
クエリ処理部100は、クエリ解析部110、クエリ振り分け部120、分割クエリ実行部130、削除フラグ設定部140、バージョン番号記録部150、バージョン番号、振り分けルールを格納するためのメモリ(図示せず)を有し、クライアントからのクエリを受け付けてデータベースに対するクエリ実行結果を当該クライアントに返却する。
管理情報蓄積部200は、バージョン番号蓄積部210、バージョン番号参照部220、バージョン番号更新(増加)部230、振り分けルール蓄積部240、振り分けルール参照部250、振り分けルール変更部260を有し、データベースの分割及びクエリの振り分けに必要な管理情報を蓄積する。
データコピー処理部300は、データベース作成部310、分割開始通知部320、データコピー部330、分割終了通知部340を有し、データベースの分割あるいは複製の時のみ動作する。データコピー処理部300は、分割元のデータベース400中のコピー対象となるデータを少なくとも1つ以上の分割先のデータベース500へコピーする。
次に、データベースを分割する際のクエリ処理部100及び管理情報蓄積部200及びデータコピー処理部300の動作を説明する。以下の動作は、請求項1,2,6,7に対応する。
(1) 管理情報蓄積部200のバージョン番号蓄積部210がバージョン番号(バージョン番号:1)を、振り分けルール蓄積部240が「参照クエリの場合はデータベース400へクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合もデータベース400へクエリを振り分ける」振り分けルール(振り分けルールa)を蓄積しており、分割元のデータベース400のみが存在している。この例を図7に示す。同図は、データベース分割時の初期状態を示したものである。バージョン番号蓄積部210はバージョン番号=1を、振り分けルール蓄積部240は振り分けルール(=a)を蓄積している。より具体的な例を図8に示す。
次に、データベースを複製する際のデータコピー処理部300及びクエリ処理部100及び管理情報蓄積部200の処理について説明する。
(1)管理情報蓄積部200がバージョン番号(バージョン番号:1)と、「参照クエリの場合はデータベース−A(データベース400)へクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合もデータベース−Aへクエリを振り分ける」振り分けルール(振り分けルール:a)を蓄積しており、分割元のデータベース400のみが存在している。この例を図36に示す。同図は、データベース複製時の初期状態を示したものである。管理情報蓄積部200はバージョン番号(=1)と振り分けルール(=a)を蓄積している。
110 クエリ解析手段、クエリ解析部
120 クエリ振り分け手段、クエリ振り分け部
130 分割クエリ実行手段、分割クエリ実行部
140 削除フラグ設定手段、削除フラグ設定部
150 バージョン番号記録手段、バージョン番号記録部
200 管理情報蓄積手段、管理情報蓄積部
210 バージョン番号蓄積手段、バージョン番号蓄積部
220 バージョン番号参照手段、バージョン番号参照部
230 バージョン番号更新(増加)手段、バージョン番号更新(増加)部
240 振り分けルール蓄積手段、振り分けルール蓄積部
250 振り分けルール参照手段、振り分けルール参照部
260 振り分けルール変更手段、振り分けルール変更部
300 データコピー処理手段、データコピー処理部
310 データベース作成手段、データベース作成部
320 分割開始通知手段、分割開始通知部
330 データコピー手段、データコピー部
340 分割終了通知手段、分割終了通知部
400 分割元データベース
500 分割先データベース
Claims (12)
- 少なくとも1つ以上のクライアントとデータベースとが存在する分散コンピューティング環境上におけるデータベーススケールアウト方法であって、
クライアントからのクエリを受け付けてデータベースに対するクエリ実行結果を該クライアントに返却する少なくとも1つ以上のクエリ処理手段と、データベースの分割及びクエリの振り分けに必要な管理情報を蓄積する管理情報蓄積手段と、分割元のデータベース中のコピー対象となるデータを少なくとも1つ以上の分割先のデータベースにコピーするデータコピー手段とからなるシステムにおいて、
分割元のデータベースを1つ以上の分割先に分割する際に、
前記データコピー手段は、
分割先のデータベースとなる少なくとも1つ以上のデータベースを作成し、前記管理情報蓄積手段に蓄積されている「分割元のデータベースのみにクエリを振り分ける」振り分けルールaから「参照クエリの場合は分割元のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分ける」振り分けルールbに変更し、
前記管理情報蓄積手段に蓄積されているバージョン番号をインクリメンタルな値に更新(増加)させ、
全てのクエリ処理手段にデータベースの分割開始通知を送信し、
前記全てのクエリ処理手段から前記データベースの分割開始通知に対する受領確認を受け取った後で、前記分割元のデータベースのうち、データに付加されているバージョン番号が、更新されたバージョン番号よりも小さいデータを前記振り分けルールbに従って、前記分割先のデータベースのうちの条件を満たす一部のデータベースにコピーし、
コピー完了後、前記管理情報蓄積手段に蓄積されている前記振り分けルールbを、「参照クエリの場合は分割先のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分ける」振り分けルールcに変更させ、
前記全てのクエリ処理手段に第1のデータベース分割終了通知を送信し、
前記全てのクエリ処理手段から前記第1のデータベース分割終了通知に対する受領確認を受け取った後で、前記管理情報蓄積手段に蓄積されている前記振り分けルールcを「分割先データベースのみにクエリを振り分ける」振り分けルールdに変更させ、
前記全てのクエリ処理手段に第2のデータベース分割終了通知を送信し、
前記全てのクエリ処理手段から前記第2のデータベース分割終了通知に対する受領確認を受け取った後で、前記分割元のデータベースを切り離す
ことを特徴とするデータベーススケールアウト方法。 - 少なくとも1つ以上のクライアントとデータベースとが存在する分散コンピューティング環境上におけるデータベーススケールアウト方法であって、
クライアントからのクエリを受け付けてデータベースに対するクエリ実行結果を該クライアントに返却する少なくとも1つ以上のクエリ処理手段と、データベースの分割及びクエリの振り分けに必要な管理情報を蓄積する管理情報蓄積手段と、分割元のデータベース中のコピー対象となるデータを少なくとも1つ以上の分割先のデータベースにコピーするデータコピー手段とからなるシステムにおいて、
分割元のデータベースを1つ以上の分割先に分割する際に、
前記クエリ処理手段は、
起動時に前記管理情報蓄積手段からバージョン番号を取得して、第1の記憶手段に保持すると共に、該管理情報蓄積手段から振り分けルールを取得して、第2の記憶手段に保持し、
少なくとも1つ以上のクライアントからクエリを受け付けると、該クエリの種類が参照クエリ、更新クエリ、または、削除クエリのいずれであるかを解析し、前記第2の記憶手段に保持している前記振り分けルールに従って該クエリを振り分け、
振り分けられたクエリを振り分け先のデータベースに対して実行し、クエリ実行によって挿入、更新、または、削除されたデータベース中のデータに前記第1の記憶手段に保持している前記バージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果を前記クライアントに返却し、
前記データコピー手段からデータベース分割開始通知を受け取ると、仕掛かり中のクエリ実行処理完了後、前記管理情報蓄積手段に蓄積されている最新のバージョン番号を取得して、前記第1の記憶手段に保持している前記バージョン番号を更新すると共に、該管理情報蓄積手段に蓄積されている最新の振り分けルールを取得して前記第2の記憶手段に保持している前記振り分けルールを更新し、該データコピー手段に該データベース分割開始通知に対する受領確認を通知し、
以後、前記データコピー手段からデータベースの分割が終了した旨の第1のデータベース分割終了通知を受け取るまでの間は、前記第2の記憶手段に保持している前記振り分けルールに従って、
参照クエリの場合は分割元のデータベースのみにクエリを振り分けて実行し、挿入クエリは分割元のデーベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、更新クエリ及び削除クエリの場合は、更新、または、削除対象のデータが分割先のデータベース中に存在すれば、分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、
前記更新、または、削除対象のデータが前記分割先のデータベース中に存在しなければ、分割元のデータベースだけにクエリを振り分けて実行し、該分割元のデータベースに対するクエリ実行の結果、変更(更新、または、削除)された全てのデータを分割先のデータベースにコピーし、
挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに前記第1の記憶手段に保持している前記バージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果を前記クライアントに返却し、
前記データコピー手段から前記第1のデータベース分割終了通知を受け取ると、
仕掛かり中のクエリ実行処理完了後、前記管理情報蓄積手段に蓄積されている最新の振り分けルールを取得して前記第2の記憶手段に保持している振り分けルールを更新し、
前記データコピー手段に前記第1のデータベース分割終了通知に対する受領確認を通知し、
前記データコピー手段が前記第1のデータベース分割終了通知を取得後に振り分けルールを変更した旨の第2のデータベース分割終了通知を受け取るまでの間、前記第2の記憶手段に保持している振り分けルールに従って、
参照クエリの場合は分割先のデータベースのみにクエリを振り分けて実行し、挿入クエリは分割元のデーベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、更新クエリ及び削除クエリの場合は、更新、または、削除対象のデータが分割先のデータベース中に存在すれば、分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、
前記更新、または、削除対象のデータが前記分割先のデータベース中に存在しなければ、分割元のデータベースだけにクエリを振り分けて実行し、該分割元のデータベースに対するクエリ実行の結果、変更(更新、または、削除)された全てのデータを分割先のデータベースにコピーし、
挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに前記第1の記憶手段に保持している前記バージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果を前記クライアントに返却し、
前記データコピー手段から前記第2のデータベース分割終了通知を受け取ると、
仕掛かり中のクエリ実行処理完了後、前記管理情報蓄積手段に蓄積されている最新の振り分けルールを取得して前記第2の記憶手段に保持している振り分けルールを更新し、
前記データコピー手段に前記第2のデータベース分割終了通知に対する受領確認を通知し、
以後、前記第2の記憶手段に保持している前記振り分けルールに従って、全てのクエリを分割先のデータベースのみに振り分けて実行し、挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに前記第1の記憶手段に保持しているバージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、該クエリの実行結果を前記クライアントに返却する
ことを特徴とするデータベーススケールアウト方法。 - 少なくとも1つ以上のクライアントとデータベースとが存在する分散コンピューティング環境上におけるデータベーススケールアウト方法であって、
クライアントからのクエリを受け付けてデータベースに対するクエリ実行結果を該クライアントに返却する少なくとも1つ以上のクエリ処理手段と、データベースの分割及びクエリの振り分けに必要な管理情報を蓄積する管理情報蓄積手段と、分割元のデータベース中のコピー対象となるデータを少なくとも1つ以上の分割先のデータベースにコピーするデータコピー手段とからなるシステムにおいて、
分割元のデータベース中のコピー対象となるデータを1つ以上の分割先のデータベースにコピーする際に、
前記データコピー手段は、
分割先のデータベースとなる少なくとも1つ以上のデータベースを作成し、前記管理情報蓄積手段に蓄積されている「分割元のデータベースのみにクエリを振り分ける」振り分けルールaから「参照クエリの場合は分割元のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び全ての分割先のデータベースにクエリを振り分ける」振り分けルールb'に変更し、
前記管理情報蓄積手段に蓄積されているバージョン番号をインクリメンタルな値に更新(増加)させ、
全てのクエリ処理手段にデータベースの分割開始通知を送信し、
前記全てのクエリ処理手段から前記データベースの分割開始通知に対する受領確認を受け取った後で、分割元のデータベース中のデータのうち、データに付加されているバージョン番号が更新したバージョン番号よりも小さいデータを全ての分割先のデータベースにコピーし、
コピー完了後、前記管理情報蓄積手段の前記振り分けルールb'を「参照クエリの場合は分割元のデータベースまたは分割先のデータベースのうちのいずれか1つのデータベースにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び全ての分割先のデータベースにクエリを振り分ける」振り分けルールc'に変更し、前記全てのクエリ処理手段に第1のデータベースの分割終了通知を送信し、
前記全てのクエリ処理手段から前記第1のデータベースの分割終了通知に対する受領確認を受け取る
ことを特徴とするデータベーススケールアウト方法。 - 少なくとも1つ以上のクライアントとデータベースとが存在する分散コンピューティング環境上におけるデータベーススケールアウト方法であって、
クライアントからのクエリを受け付けてデータベースに対するクエリ実行結果を該クライアントに返却する少なくとも1つ以上のクエリ処理手段と、データベースの分割及びクエリの振り分けに必要な管理情報を蓄積する管理情報蓄積手段と、分割元のデータベース中のコピー対象となるデータを少なくとも1つ以上の分割先のデータベースにコピーするデータコピー手段とからなるシステムにおいて、
分割元のデータベース中のコピー対象となるデータを1つ以上の分割先のデータベースにコピーする際に、
前記クエリ処理手段は、
起動時に前記管理情報蓄積手段からバージョン番号を取得して、第1の記憶手段に保持すると共に、該管理情報蓄積手段から振り分けルールを取得して、第2の記憶手段に保持し、
少なくとも1つ以上のクライアントからクエリを受け付けると、該クエリの種類が参照クエリ、更新クエリ、または、削除クエリのいずれであるかを解析し、前記第2の記憶手段に保持している前記振り分けルールに従って該クエリを振り分け、
振り分けられたクエリを振り分け先のデータベースに対して実行し、クエリ実行によって挿入、更新、または、削除されたデータベース中のデータに前記第1の記憶手段に保持している前記バージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果を前記クライアントに返却し、
前記データコピー手段からデータベース分割開始通知を受け取ると、仕掛かり中のクエリ実行処理完了後、前記管理情報蓄積手段に蓄積されている最新のバージョン番号を取得して、前記第1の記憶手段に保持している前記バージョン番号を更新すると共に、該管理情報蓄積手段に蓄積されている最新の振り分けルールを取得して前記第2の記憶手段に保持している前記振り分けルールを更新し、該データコピー手段に該データベース分割開始通知に対する受領確認を通知し、
以後、前記データコピー手段からデータベースの分割が終了した旨の第1のデータベース分割終了通知を受け取るまでの間は、前記第2の記憶手段に保持している前記振り分けルールに従って、
参照クエリの場合は分割元のデータベースのみにクエリを振り分けて実行し、挿入クエリは分割元のデーベース及び全ての分割先のデータベースにクエリを振り分けて実行し、更新クエリ及び削除クエリの場合は、更新または削除対象のデータが分割先のデータベース中に存在すれば、分割元のデータベース及び分割先のデータベースにクエリを振り分けて実行し、
前記更新または削除対象のデータが前記分割先のデータベース中に存在しなければ、分割元のデータベースだけにクエリを振り分けて実行し、該分割元のデータベースに対するクエリ実行の結果、変更(更新または削除)された全てのデータを全ての分割先のデータベースにコピーし、
挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに前記第1の記憶手段に保持している前記バージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果を前記クライアントに返却し、
前記データコピー手段から前記第1のデータベース分割終了通知を受け取ると、
仕掛かり中のクエリ実行処理完了後、前記管理情報蓄積手段に蓄積されている最新の振り分けルールを取得して前記第2の記憶手段に保持している振り分けルールを更新し、
前記データコピー手段に前記第1のデータベース分割終了通知に対する受領確認を通知し、
以後、前記第2の記憶手段に保持している前記振り分けルールに従って、参照クエリは分割元のデータベースまたは分割先のデータベースのうちのいずれか1つのデータベースにクエリを振り分けて実行し、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び全ての分割先のデータベースにクエリを振り分けて実行し、
挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに前記第1の記憶手段に保持する前記バージョン番号を付加し、削除クエリの場合は加えて削除フラグを該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果を前記クライアントに返却する
ことを特徴とするデータベーススケールアウト方法。 - 少なくとも1つ以上のクライアントとデータベースとが存在する分散コンピューティング環境上におけるデータベーススケールアウト装置であって、
クライアントからのクエリを受け付けてデータベースに対するクエリ実行結果を該クライアントに返却する少なくとも1つ以上のクエリ処理手段と、データベースの分割及びクエリの振り分けに必要な管理情報を蓄積する管理情報蓄積手段と、分割元のデータベース中のコピー対象となるデータを少なくとも1つ以上の分割先のデータベースにコピーするデータコピー処理手段と、を有し、
前記管理情報蓄積手段は、
データベース中のデータの世代管理に使用するバージョン番号を蓄積するバージョン番号蓄積手段と、
前記バージョン番号蓄積手段に蓄積している前記バージョン番号を返却するバージョン番号参照手段と、
前記バージョン番号蓄積手段に蓄積している前記バージョン番号を更新する(増加)するバージョン番号更新(増加)手段と、
データベース分割のための振り分けルールを蓄積する振り分けルール蓄積手段と、
前記振り分けルール蓄積手段に蓄積している前記振り分けルールを参照して要求元に返却する振り分けルール参照手段と、
前記振り分けルール蓄積手段に蓄積している前記振り分けルールを更新する振り分けルール変更手段と、
を有し、
前記クエリ処理手段は、
クライアントから受け付けクエリを解析するクエリ解析手段と、
前記振り分けルールに従ってクエリを振り分けるクエリ振り分け手段と、
振り分けられたデータベースに対してクエリを実行する分割クエリ実行手段と、
前記分割クエリ実行手段により削除クエリが実行された場合に、前記データベース中の削除対象データを物理的に削除せずに削除フラグを設定する削除フラグ設定手段と、
前記分割クエリ実行手段により挿入または更新または削除されたデータベース中のデータにバージョン番号を付与するバージョン番号記録手段と、
を有し、
前記データコピー処理手段は、
少なくとも1つ以上の分割先のデータベースを新たに作成するデータベース作成手段と、
前記分散コンピューティング環境上に存在する全てのクエリ処理手段にデータベースの分割開始を通知する分割開始通知手段と、
分割元のデータベースのデータを分割先のデータベースへコピーするデータコピー手段と、
前記クエリ処理手段にデータベースの分割終了を通知する分割終了通知手段と、
を有する
ことを特徴とするデータベーススケールアウト装置。 - 前記データコピー処理手段の前記データコピー手段は、
前記管理情報蓄積手段の前記振り分けルール蓄積手段に蓄積されている「分割元のデータベースのみにクエリを振り分ける」振り分けルールaから「参照クエリの場合は分割元のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分ける」振り分けルールbに変更させる手段と、
前記管理情報蓄積手段の前記バージョン番号蓄積手段に蓄積されているバージョン番号をインクリメンタルな値に更新(増加)させ、前記分割開始通知手段に、全てのクエリ処理手段に対し、データベースの分割開始通知の送信を指示する手段と、
前記全てのクエリ処理手段から前記データベースの分割開始通知に対する受領確認を受け取った後で、前記分割元のデータベースのうち、データに付加されているバージョン番号が、更新されたバージョン番号よりも小さいデータを前記振り分けルールbに従って、前記分割先のデータベースのうちの条件を満たす一部のデータベースにコピーする手段と、
コピー完了後、前記管理情報蓄積手段の前記振り分けルール蓄積手段に蓄積されている前記振り分けルールbを、「参照クエリの場合は分割先のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分ける」振り分けルールcに変更させ、前記分割終了通知手段に、前記全てのクエリ処理手段に第1のデータベース分割終了通知を送信させる手段と、
前記全てのクエリ処理手段から前記第1のデータベース分割終了通知に対する受領確認を受け取った後で、前記管理情報蓄積手段の前記振り分けルール蓄積手段に蓄積されている前記振り分けルールcを「分割先データベースのみにクエリを振り分ける」振り分けルールdに変更させ、前記分割終了通知手段に前記全てのクエリ処理手段に対して第2のデータベース分割終了通知を送信させる手段と、
前記全てのクエリ処理手段から前記第2のデータベース分割終了通知に対する受領確認を受け取った後で、前記分割元のデータベースを切り離す手段と、
を含む請求項5記載のデータベーススケールアウト装置。 - 前記クエリ処理手段は、
起動時に前記管理情報蓄積手段から前記バージョン番号を取得して、第1の記憶手段に保持する、または、前記データコピー処理手段からデータベース分割開始通知を受け取ると、前記分割クエリ実行手段による仕掛かり中のクエリ実行処理完了後、該管理情報蓄積手段に蓄積されている最新のバージョン番号を取得して、該第1の記憶手段に保持している前記バージョン番号を更新するバージョン番号更新手段と、
起動時に前記管理情報蓄積手段から前記振り分けルールを取得して、第2の記憶手段に保持する、または、前記データコピー処理手段からデータベース分割開始通知を取得し、仕掛かり中のクエリ実行処理完了後に前記管理情報蓄積手段から前記振り分けルールを取得して、該第2の記憶手段に保持している振り分けルールを更新する振り分けルール更新手段と、
前記データコピー処理手段から前記データベース分割終了通知を受信し、該データベース分割開始通知に対する受領確認の通知を該データコピー処理手段に送信する送受信手段と、
を更に有し、
前記クエリ解析手段は、少なくとも1つ以上のクライアントからクエリを受け付けると、該クエリの種類が参照クエリ、更新クエリまたは、削除クエリのいずれであるかを解析する手段を有し、
前記クエリ振り分け手段は、前記第2の記憶手段に保持している前記振り分けルールに従って該クエリを振り分ける手段を有し、
前記分割クエリ実行手段は、
前記クエリ振り分け手段により振り分けられたクエリを振り分け先のデータベースに対して実行し、クエリの実行結果を前記クライアントに返却する手段と、
前記データコピー処理手段から前記送受信手段を介して第1のデータベース分割終了通知を受け取るまでの間は、前記第2の記憶手段に保持している前記振り分けルールに従って、参照クエリ実行の場合は分割元のデータベースのみにクエリを振り分けて実行し、挿入クエリ実行の場合は分割元のデーベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、更新クエリ及び削除クエリ実行の場合は、更新または削除対象のデータが分割先のデータベース中に存在すれば、分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、該更新または削除対象のデータが前記分割先のデータベース中に存在しなければ、分割元のデータベースだけにクエリを振り分けて実行し、該分割元のデータベースに対するクエリ実行の結果、変更(更新または削除)された全てのデータを分割先のデータベースにコピーする手段と、
前記データコピー処理手段から前記送受信手段を介して前記第1のデータベース分割終了通知を取得後に、該データコピー処理手段から振り分けルールを変更した旨の第2のデータベース分割終了通知を受け取るまでの間、前記第2の記憶手段に保持している前記振り分けルールに従って、参照クエリ実行の場合は分割先のデータベースのみにクエリを振り分けて実行し、挿入クエリ実行の場合は分割元のデーベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、更新クエリ及び削除クエリ実行の場合は、更新または削除対象のデータが分割先のデータベース中に存在すれば、分割元のデータベース及び分割先のデータベースのうちの条件を満たす一部のデータベースにクエリを振り分けて実行し、該更新または削除対象のデータが前記分割先のデータベース中に存在しなければ、分割元のデータベースだけにクエリを振り分けて実行し、該分割元のデータベースに対するクエリ実行の結果、変更(更新または削除)された全てのデータを分割先のデータベースにコピーする手段と、
前記送受信手段を介して、前記前記データコピー処理手段に前記第2のデータベース分割終了通知に対する受領確認を通知した後、前記第2の記憶手段に保持している前記振り分けルールに従って、全てのクエリを分割先のデータベースのみに振り分けて実行する手段と、を有する
請求項5記載のデータベーススケールアウト装置。 - 前記分割クエリ実行手段は、
前記クエリ実行によって挿入、更新、または、削除されたデータベース中のデータに、前記バージョン番号記録手段により、前記第1の記憶手段に保持している前記バージョン番号が付加されたデータをクエリの実行結果としてクライアントに返却し、削除クエリの場合は加えて削除フラグ設定手段により該データベース中の削除対象データに削除フラグが設定されたデータをクエリの実行結果から除外して前記クライアントに返却する手段を含む、
請求項7記載のデータベーススケールアウト装置。 - 前記データコピー処理手段の前記データコピー手段は、
前記管理情報蓄積手段の前記振り分けルール蓄積手段に蓄積されている「分割元のデータベースのみにクエリを振り分ける」振り分けルールaから「参照クエリの場合は分割元のデータベースのみにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び全ての分割先のデータベースにクエリを振り分ける」振り分けルールb'に変更させる手段と、
前記管理情報蓄積手段の前記バージョン番号蓄積手段に蓄積されているバージョン番号をインクリメンタルな値に更新(増加)させる手段と、
前記分割通知開始手段を介して、全てのクエリ処理手段にデータベースの分割開始通知を送信し、該全てのクエリ処理手段から前記データベースの分割開始通知に対する受領確認を受け取った後で、分割元のデータベース中のデータのうち、データに付加されているバージョン番号が更新したバージョン番号よりも小さいデータを全ての分割先のデータベースにコピーする手段と、
コピー完了後、前記管理情報蓄積手段の前記振り分けルールbを「参照クエリの場合は分割元のデータベースまたは分割先のデータベースのうちのいずれか1つのデータベースにクエリを振り分け、挿入クエリ、更新クエリ、または、削除クエリの場合は分割元のデータベース及び全ての分割先のデータベースにクエリを振り分ける」振り分けルールc'に変更し、前記分割終了通知手段を介して、前記全てのクエリ処理手段に第1のデータベースの分割終了通知を送信し、該全てのクエリ処理手段から前記第1のデータベースの分割終了通知に対する受領確認を受け取る手段と、
を有する請求項5記載のデータベーススケールアウト装置。 - 前記クエリ処理手段は、
起動時に前記管理情報蓄積手段から前記バージョン番号を取得して、第1の記憶手段に保持する、または、前記データコピー処理手段からデータベース分割開始通知を受け取ると、前記分割クエリ実行手段による仕掛かり中のクエリ実行処理完了後、該管理情報蓄積手段に蓄積されている最新のバージョン番号を取得して、該第1の記憶手段に保持している前記バージョン番号を更新するバージョン番号更新手段と、
起動時に前記管理情報蓄積手段から前記振り分けルールを取得して、第2の記憶手段に保持する、または、前記データコピー処理手段からデータベース分割開始通知を取得し、仕掛かり中のクエリ実行処理完了後に前記管理情報蓄積手段から前記振り分けルールを取得して、該第2の記憶手段に保持している振り分けルールを更新する振り分けルール更新手段と、
前記データコピー処理手段から前記データベース分割終了通知を受信し、該データベース分割開始通知に対する受領確認の通知を該データコピー処理手段に送信する送受信手段と、
を更に有し、
前記クエリ解析手段は、少なくとも1つ以上のクライアントからクエリを受け付けると、該クエリの種類が参照クエリ、更新クエリ、または、削除クエリのいずれであるかを解析する手段を有し、
前記クエリ振り分け手段は、前記第2の記憶手段に保持している前記振り分けルールに従って該クエリを振り分ける手段を有し、
前記分割クエリ実行手段は、
振り分けられたクエリを振り分け先のデータベースに対して実行し、クエリ実行によって挿入、更新、または、削除されたデータベース中のデータに前記第1の記憶手段に保持している前記バージョン番号を付加し、削除クエリの場合は加えて該データベース中の削除対象データに削除フラグを設定し、クエリの実行結果を前記クライアントに返却する手段と、
前記送受信手段を介して、前記データコピー処理手段からデータベース分割開始通知を受け取り、前記振り分けルール更新手段による振り分けルールを更新が行われ、該データコピー処理手段に該送受信手段を介して該データベース分割開始通知に対する受領確認を通知した後に、前記データコピー処理手段から第1のデータベース分割終了通知を受け取るまでの間は、前記第2の記憶手段に保持されている前記振り分けルールに従って、参照クエリ実行の場合は分割元のデータベースのみにクエリを振り分けて実行し、挿入クエリ実行の場合は分割元のデーベース及び全ての分割先のデータベースにクエリを振り分けて実行し、更新クエリ及び削除クエリ実行の場合は、更新または削除対象のデータが分割先のデータベース中に存在すれば、分割元のデータベース及び分割先のデータベースにクエリを振り分けて実行する手段と、
前記更新または削除対象のデータが前記分割先のデータベース中に存在しなければ、分割元のデータベースだけにクエリを振り分けて実行し、該分割元のデータベースに対するクエリ実行の結果、変更(更新または削除)された全てのデータを全ての分割先のデータベースにコピーする手段と、
前記データコピー処理手段に該データコピー処理手段から取得した前記第1のデータベース分割終了通知に対する受領確認を通知した後に、前記第2の記憶手段に保持している前記振り分けルールに従って、参照クエリ実行の場合は分割元のデータベースまたは分割先のデータベースのうちのいずれか1つのデータベースにクエリを振り分けて実行し、挿入クエリ、更新クエリ、または、削除クエリ実行の場合は分割元のデータベース及び全ての分割先のデータベースにクエリを振り分けて実行する手段と、
を有する請求項5記載のデータベーススケールアウト装置。 - 前記分割クエリ実行手段は、
前記挿入クエリ、更新クエリ、または、削除クエリの実行により挿入、更新、または、削除されたデータベース中のデータに、前記バージョン番号記録手段により前記バージョン番号が付与されたデータをクエリの実行結果としてクライアントに返却し、削除クエリの場合は削除フラグ設定手段により削除フラグが設定されたデータをクエリの実行結果から除外して前記クライアントに返却する手段を含む、
請求項10記載のデータベーススケールアウト装置。 - 請求項5乃至11の何れか1項記載のデータベーススケールアウト装置を構成する各手段としてコンピュータを機能させるためのデータベーススケールアウトプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009102049A JP5191434B2 (ja) | 2009-04-20 | 2009-04-20 | データベーススケールアウト方法及び装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009102049A JP5191434B2 (ja) | 2009-04-20 | 2009-04-20 | データベーススケールアウト方法及び装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010250741A JP2010250741A (ja) | 2010-11-04 |
JP5191434B2 true JP5191434B2 (ja) | 2013-05-08 |
Family
ID=43312965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009102049A Expired - Fee Related JP5191434B2 (ja) | 2009-04-20 | 2009-04-20 | データベーススケールアウト方法及び装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5191434B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6426634B2 (ja) * | 2016-01-27 | 2018-11-21 | 日本電信電話株式会社 | データ操作方法とデータ操作方法プログラム |
-
2009
- 2009-04-20 JP JP2009102049A patent/JP5191434B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010250741A (ja) | 2010-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5433074B2 (ja) | ストレージクラスタを指定可能な複製されたコンテンツのための非同期的分散オブジェクトアップロード | |
US10942812B2 (en) | System and method for building a point-in-time snapshot of an eventually-consistent data store | |
JP5671615B2 (ja) | マップリデュース即時分散ファイルシステム | |
US10831720B2 (en) | Cloud storage distributed file system | |
JP7171757B2 (ja) | ブロックストレージシステムのための分散されたレプリカ | |
US20190370362A1 (en) | Multi-protocol cloud storage for big data and analytics | |
US10817498B2 (en) | Distributed transactions in cloud storage with hierarchical namespace | |
KR101453425B1 (ko) | 메타데이터 서버 및 메타데이터 관리 방법 | |
US9374395B2 (en) | Parallel upload and download of large files using bittorrent | |
WO2018154698A1 (ja) | ファイルストレージ、オブジェクトストレージ、およびストレージシステム | |
US9330107B1 (en) | System and method for storing metadata for a file in a distributed storage system | |
Dwivedi et al. | Analytical review on Hadoop Distributed file system | |
KR20100048130A (ko) | 메타데이터 클러스터 기반의 분산형 스토리지 시스템 및 그동작 방법 | |
JP6196389B2 (ja) | 分散型ディザスタリカバリファイル同期サーバシステム | |
US11461201B2 (en) | Cloud architecture for replicated data services | |
CN114490509A (zh) | 跟踪改变数据捕获日志历史 | |
US10521449B1 (en) | Cross-region replication architecture | |
JP5191434B2 (ja) | データベーススケールアウト方法及び装置及びプログラム | |
KR101748913B1 (ko) | 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템 | |
Dobos et al. | A comparative evaluation of NoSQL database systems | |
Kumari et al. | Enhancing replica synchronization in hadoop distributed file system | |
CN111562936B (zh) | 基于Openstack-Swift的对象历史版本管理方法和装置 | |
Johnson et al. | Big data processing using Hadoop MapReduce programming model | |
JP5432959B2 (ja) | データ保持システム、データ保持装置及びデータ保持方法 | |
Koschel et al. | Architecture of Large-Scale Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110705 |
|
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: 20130122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130129 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5191434 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160208 Year of fee payment: 3 |
|
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 |