特許第5750090号(P5750090)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ビッグローブ株式会社の特許一覧

特許5750090データベース管理システムおよびデータベース管理方法
<>
  • 特許5750090-データベース管理システムおよびデータベース管理方法 図000002
  • 特許5750090-データベース管理システムおよびデータベース管理方法 図000003
  • 特許5750090-データベース管理システムおよびデータベース管理方法 図000004
  • 特許5750090-データベース管理システムおよびデータベース管理方法 図000005
  • 特許5750090-データベース管理システムおよびデータベース管理方法 図000006
  • 特許5750090-データベース管理システムおよびデータベース管理方法 図000007
  • 特許5750090-データベース管理システムおよびデータベース管理方法 図000008
  • 特許5750090-データベース管理システムおよびデータベース管理方法 図000009
  • 特許5750090-データベース管理システムおよびデータベース管理方法 図000010
  • 特許5750090-データベース管理システムおよびデータベース管理方法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5750090
(24)【登録日】2015年5月22日
(45)【発行日】2015年7月15日
(54)【発明の名称】データベース管理システムおよびデータベース管理方法
(51)【国際特許分類】
   G06F 12/00 20060101AFI20150625BHJP
【FI】
   G06F12/00 533J
   G06F12/00 510B
【請求項の数】10
【全頁数】24
(21)【出願番号】特願2012-250270(P2012-250270)
(22)【出願日】2012年11月14日
(65)【公開番号】特開2014-99037(P2014-99037A)
(43)【公開日】2014年5月29日
【審査請求日】2014年3月10日
(73)【特許権者】
【識別番号】306029774
【氏名又は名称】ビッグローブ株式会社
(74)【代理人】
【識別番号】100084250
【弁理士】
【氏名又は名称】丸山 隆夫
(72)【発明者】
【氏名】濱野 桂
【審査官】 篠塚 隆
(56)【参考文献】
【文献】 特開2006−164097(JP,A)
【文献】 特開2006−277072(JP,A)
【文献】 特開2002−373101(JP,A)
【文献】 特開2009−230404(JP,A)
【文献】 特開2006−301749(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/00
(57)【特許請求の範囲】
【請求項1】
複数のデータを記憶する第1データベースと、
前記第1データベース内の複数のデータのうちの対象データについて、当該対象データの複製と、当該対象データに所定の処理を施した加工データと、のいずれかである対応データを記憶する複数の第2データベースと、
前記複数の第2データベースのうちのいずれかを特定する第2データベース特定情報と、該第2データベース特定情報にて特定された第2データベースに必要な前記対象データを特定するための対象データ特定情報と、を記憶する記憶手段と、
前記第1データベースにおいて、前記複数のデータのうちの少なくとも1つが更新された際に、前記記憶手段内の対象データ特定情報にて特定される対象データのうちの1つが更新されたか判断し、前記対象データが更新された際に、更新された対象データを含む更新処理用データを作成する制御手段と、
前記更新処理用データを用いて、前記第1データベースでの対象データの更新を、前記第2データベース特定情報で特定される前記第2データベースの前記対応データに反映する更新処理を、実行する処理サーバと、を含み、
前記第1データベースは、各対象データに、他の1以上の対象データである関連対象データを、関連づけて記憶し、
前記第2データベースは、各対応データに、当該対応データの元となる対象データと関連づけられている関連対象データについての対応データである関連対応データを、関連づけて記憶し、
前記対象データ特定情報は、前記対象データと前記関連対象データとの関連づけを含み、
前記制御手段は、前記第1データベース内の前記対象データの更新に伴い、前記第1データベース内の、前記更新された対象データと、前記記憶手段内の対象データ特定情報にて特定される前記更新された対象データに関連づけられた対象データである関連対象データと、を含む更新処理用データを作成し、このとき、対象データ特定情報に対象データについての加工の処理内容を表す処理情報が付加されている場合、当該処理情報も前記更新処理用データに追加し、
前記処理サーバは、前記更新処理用データを取得し、前記処理情報が前記更新処理用データに付加されている場合には、前記第2データベースにおいて前記関連対象データについての対応データに関連づけられている対応データを、前記更新された対象データに前記処理情報を基に前記所定の処理を施した加工データに更新する、
ことを特徴とする、データベース管理システム。
【請求項2】
複数のデータを記憶する第1データベースと、
前記第1データベース内の複数のデータのうちの対象データについて、当該対象データの複製と、当該対象データに所定の処理を施した加工データと、のいずれかである対応データを記憶する複数の第2データベースと、
前記複数の第2データベースのうちのいずれかを特定する第2データベース特定情報と、該第2データベース特定情報にて特定された第2データベースに必要な前記対象データを特定するための対象データ特定情報と、を記憶する記憶手段と、
前記第1データベースにおいて、前記複数のデータのうちの少なくとも1つが更新された際に、前記記憶手段内の対象データ特定情報にて特定される対象データのうちの1つが更新されたか判断し、前記対象データが更新された際に、更新された対象データを含む更新処理用データを作成する制御手段と、
前記制御手段が作成した前記更新処理用データを格納する格納手段と、
前記更新処理用データを用いて、前記第1データベースでの対象データの更新を、前記第2データベース特定情報で特定される前記第2データベースの前記対応データに反映する更新処理を、実行する処理サーバと、を含み、
前記記憶手段は、各対象データについて、複数の前記処理サーバのうち、前記第1データベース内の当該対象データの更新を前記第2データベースに反映する更新処理を実行する処理サーバである実行処理サーバを指定するためのサーバ指定情報を記憶し、
前記複数の処理サーバの各々は、前記記憶手段内の前記サーバ指定情報を読み取り、定期的に、もしくは、更新した旨の更新通知を受信した場合に、もしくは、現在処理中のプロセスが終了した場合に、前記格納手段に接続し、前記サーバ指定情報に基づき、自サーバが前記実行処理サーバとして指定された特定対象データを含む前記更新処理用データを取得し、前記更新処理を実行する、データベース管理システム。
【請求項3】
請求項に記載のデータベース管理システムにおいて、
前記複数の処理サーバの各々は、自サーバが前記サーバ指定情報にて前記実行処理サーバとして指定された前記特定対象データを含む前記更新処理用データが格納されている場合に、前記格納手段内の、前記特定対象データを含む前記更新処理用データを取得し、前記更新処理を実行する、データベース管理システム。
【請求項4】
請求項2又は3に記載のデータベース管理システムにおいて、
前記複数の処理サーバの各々の稼働度を受け付ける確認手段と、
前記確認手段が受け付けた稼働度に基づいて、前記サーバ指定情報を設定または変更する設定手段と、を含むデータベース管理システム。
【請求項5】
請求項に記載のデータベース管理システムにおいて、
前記設定手段は、前記複数の処理サーバの中に、前記稼働度が所定の稼働度よりも低い低稼働度処理サーバが存在する場合に、前記複数の処理サーバのうち当該処理サーバに割り当てられた更新処理の未実施数が最も多い処理サーバまたは前記複数の処理サーバのうち前記稼働度が最も高い処理サーバを前記実行処理サーバとして指定するためのサーバ指定情報を、前記低稼働度処理サーバを前記実行処理サーバとして指定するためのサーバ指定情報に変更する、データベース管理システム。
【請求項6】
複数のデータを記憶する第1データベースと、
前記第1データベース内の複数のデータのうちの対象データについて、当該対象データの複製と、当該対象データに所定の処理を施した加工データと、のいずれかである対応データを記憶する複数の第2データベースと、
前記複数の第2データベースのうちのいずれかを特定する第2データベース特定情報と、該第2データベース特定情報にて特定された第2データベースに必要な前記対象データを特定するための対象データ特定情報と、を記憶する記憶手段と、
前記第1データベースにおいて、前記複数のデータのうちの少なくとも1つが更新された際に、前記記憶手段内の対象データ特定情報にて特定される対象データのうちの1つが更新されたか判断し、前記対象データが更新された際に、更新された対象データを含む更新処理用データを作成する制御手段と、
前記更新処理用データを用いて、前記第1データベースでの対象データの更新を、前記第2データベース特定情報で特定される前記第2データベースの前記対応データに反映する更新処理を、実行する処理サーバと、を含み、
前記記憶手段は、各対象データについて、複数の前記処理サーバのうち、前記第1データベース内の当該対象データの更新を前記第2データベースに反映する更新処理を実行する処理サーバである実行処理サーバを指定するためのサーバ指定情報を記憶し、
前記複数の処理サーバの各々は、前記記憶手段内の前記サーバ指定情報に基づき、自サーバが前記実行処理サーバとして指定された特定対象データを含む前記更新処理用データを取得し、前記更新処理を実行し、
前記複数の処理サーバの各々は、自サーバの稼働度が所定の稼働度よりも低い場合、前記複数の処理サーバのうちの他のサーバが前記実行処理サーバとして指定された前記更新処理用データを用いて、前記他の処理サーバに代わって前記更新処理を実行する、データベース管理システム。
【請求項7】
請求項6に記載のデータベース管理システムにおいて、
前記他の処理サーバは、前記複数の処理サーバのうち、当該処理サーバに割り当てられた更新処理の未実施数が最も多い処理サーバ、または、前記複数の処理サーバのうち、前記稼働度が最も高い処理サーバである、データベース管理システム。
【請求項8】
複数のデータを記憶する第1データベースと、前記第1データベース内の複数のデータのうちの対象データについて、当該対象データの複製と、当該対象データに所定の処理を施した加工データと、のいずれかである対応データを記憶する複数の第2データベースと、前記複数の第2データベースのうちのいずれかを特定する第2データベース特定情報と、該第2データベース特定情報にて特定された第2データベースに必要な前記対象データを特定するための対象データ特定情報と、を記憶する記憶手段と、制御手段と、処理サーバと、を含むデータベース管理システムが行うデータベース管理方法であって、
前記第1データベースは、各対象データに、他の1以上の対象データである関連対象データを、関連づけて記憶し、
前記第2データベースは、各対応データに、当該対応データの元となる対象データと関連づけられている関連対象データについての対応データである関連対応データを、関連づけて記憶し、
前記対象データ特定情報は、前記対象データと前記関連対象データとの関連づけを含み、
前記制御手段が、前記第1データベースにおいて、前記複数のデータのうちの少なくとも1つが更新された際に、前記記憶手段内の対象データ特定情報にて特定される対象データのうちの1つが更新されたか判断し、前記対象データが更新された際に、更新された対象データを含む更新処理用データを作成し、このとき、対象データ特定情報に対象データについての加工の処理内容を表す処理情報が付加されている場合、当該処理情報も前記更新処理用データに追加し、
前記処理サーバが、前記更新処理用データを取得し、前記処理情報が前記更新処理用データに付加されている場合には、前記第2データベースにおいて前記関連対象データについての対応データに関連づけられている対応データを、前記更新された対象データに前記処理情報を基に前記所定の処理を施した加工データに更新する、
ことを特徴とするデータベース管理方法。
【請求項9】
複数のデータを記憶する第1データベースと、
前記第1データベース内の複数のデータのうちの対象データについて、当該対象データの複製と、当該対象データに所定の処理を施した加工データと、のいずれかである対応データを記憶する複数の第2データベースと、
前記複数の第2データベースのうちのいずれかを特定する第2データベース特定情報と、該第2データベース特定情報にて特定された第2データベースに必要な前記対象データを特定するための対象データ特定情報と、を記憶する記憶手段と、
前記第1データベースにおいて、前記複数のデータのうちの少なくとも1つが更新された際に、前記記憶手段内の対象データ特定情報にて特定される対象データのうちの1つが更新されたか判断し、前記対象データが更新された際に、更新された対象データを含む更新処理用データを作成する制御手段と、
前記制御手段が作成した前記更新処理用データを格納する格納手段と、
前記更新処理用データを用いて、前記第1データベースでの対象データの更新を、前記第2データベース特定情報で特定される前記第2データベースの前記対応データに反映する更新処理を、実行する処理サーバと、
を含むデータベース管理システムが行うデータベース管理方法であって、
前記記憶手段が、各対象データについて、複数の前記処理サーバのうち、前記第1データベース内の当該対象データの更新を前記第2データベースに反映する更新処理を実行する処理サーバである実行処理サーバを指定するためのサーバ指定情報を記憶し、
前記複数の処理サーバの各々が、前記記憶手段内の前記サーバ指定情報を読み取り、定期的に、もしくは、更新した旨の更新通知を受信した場合に、もしくは、現在処理中のプロセスが終了した場合に、前記格納手段に接続し、前記サーバ指定情報に基づき、自サーバが前記実行処理サーバとして指定された特定対象データを含む前記更新処理用データを取得し、前記更新処理を実行する、
ことを特徴とするデータベース管理方法。
【請求項10】
複数のデータを記憶する第1データベースと、
前記第1データベース内の複数のデータのうちの対象データについて、当該対象データの複製と、当該対象データに所定の処理を施した加工データと、のいずれかである対応データを記憶する複数の第2データベースと、
前記複数の第2データベースのうちのいずれかを特定する第2データベース特定情報と、該第2データベース特定情報にて特定された第2データベースに必要な前記対象データを特定するための対象データ特定情報と、を記憶する記憶手段と、
前記第1データベースにおいて、前記複数のデータのうちの少なくとも1つが更新された際に、前記記憶手段内の対象データ特定情報にて特定される対象データのうちの1つが更新されたか判断し、前記対象データが更新された際に、更新された対象データを含む更新処理用データを作成する制御手段と、
前記更新処理用データを用いて、前記第1データベースでの対象データの更新を、前記第2データベース特定情報で特定される前記第2データベースの前記対応データに反映する更新処理を、実行する処理サーバと、
を含むデータベース管理システムが行うデータベース管理方法であって、
前記記憶手段が、各対象データについて、複数の前記処理サーバのうち、前記第1データベース内の当該対象データの更新を前記第2データベースに反映する更新処理を実行する処理サーバである実行処理サーバを指定するためのサーバ指定情報を記憶し、
前記複数の処理サーバの各々が、前記記憶手段内の前記サーバ指定情報に基づき、自サーバが前記実行処理サーバとして指定された特定対象データを含む前記更新処理用データを取得し、前記更新処理を実行し、
前記複数の処理サーバの各々は、自サーバの稼働度が所定の稼働度よりも低い場合、前記複数の処理サーバのうちの他のサーバが前記実行処理サーバとして指定された前記更新処理用データを用いて、前記他の処理サーバに代わって前記更新処理を実行する、
ことを特徴とする、データベース管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベース管理システムおよびデータベース管理方法に関する。
【背景技術】
【0002】
マスタDB(データベース)の複製(以下「レプリカ」と称する)を作成し、マスタDBでのデータの更新をレプリカに反映して、マスタDB内のデータとレプリカ内のデータとを一致させるレプリケーション技術が知られている(特許文献1参照)。
【0003】
レプリケーション技術では、マスタDB内のデータとレプリカ内のデータとを一致させるために、マスタDB内のデータの更新のすべてをレプリカに反映させる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第2004/090726号
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数の箇所で別々に管理されているデータベースを、情報の共有化などの観点から、1つのデータベース(以下「統合データベース」と称する)にまとめる動きがある。
【0006】
例えば、ある企業において各部門が個別に保有していたデータベースを統合データベースにまとめる場合が想定される。
【0007】
この場合、各部門に統合データベースのレプリカを設け、統合データベースとレプリカとの間でレプリケーションが行われることが考えられる。
【0008】
しかしながら、統合データベースが作成されても、各部門が必要するデータは、統合データベースのすべての項目のデータではなく、統合データベースの一部の項目のデータであることが多い。
【0009】
このため、各部門に統合データベースのレプリカを作成し、統合データベースとレプリカとの間でレプリケーションが行われた場合、レプリカ内で不必要な項目についてデータの更新処理が行われるという課題が生じる。
【0010】
本発明の目的は、上記課題を解決可能なデータベース管理システムおよびデータベース管理方法を提供することである。
【課題を解決するための手段】
【0011】
本発明の一側面であるデータベース管理システムは、
複数のデータを記憶する第1データベースと、
前記第1データベース内の複数のデータのうちの対象データについて、当該対象データの複製と、当該対象データに所定の処理を施した加工データと、のいずれかである対応データを記憶する複数の第2データベースと、
前記複数の第2データベースのうちのいずれかを特定する第2データベース特定情報と、該第2データベース特定情報にて特定された第2データベースに必要な前記対象データを特定するための対象データ特定情報と、を記憶する記憶手段と、
前記第1データベースにおいて、前記複数のデータのうちの少なくとも1つが更新された際に、前記記憶手段内の対象データ特定情報にて特定される対象データのうちの1つが更新されたか判断し、前記対象データが更新された際に、更新された対象データを含む更新処理用データを作成する制御手段と、
前記更新処理用データを用いて、前記第1データベースでの対象データの更新を、前記第2データベース特定情報で特定される前記第2データベースの前記対応データに反映する更新処理を、実行する処理サーバと、を含み、
前記第1データベースは、各対象データに、他の1以上の対象データである関連対象データを、関連づけて記憶し、
前記第2データベースは、各対応データに、当該対応データの元となる対象データと関連づけられている関連対象データについての対応データである関連対応データを、関連づけて記憶し、
前記対象データ特定情報は、前記対象データと前記関連対象データとの関連づけを含み、
前記制御手段は、前記第1データベース内の前記対象データの更新に伴い、前記第1データベース内の、前記更新された対象データと、前記記憶手段内の対象データ特定情報にて特定される前記更新された対象データに関連づけられた対象データである関連対象データと、を含む更新処理用データを作成し、このとき、対象データ特定情報に対象データについての加工の処理内容を表す処理情報が付加されている場合、当該処理情報も前記更新処理用データに追加し、
前記処理サーバは、前記更新処理用データを取得し、前記処理情報が前記更新処理用データに付加されている場合には、前記第2データベースにおいて前記関連対象データについての対応データに関連づけられている対応データを、前記更新された対象データに前記処理情報を基に前記所定の処理を施した加工データに更新する、
ことを特徴とする
【0012】
本発明の一側面であるデータベース管理方法は、
複数のデータを記憶する第1データベースと、前記第1データベース内の複数のデータのうちの対象データについて、当該対象データの複製と、当該対象データに所定の処理を施した加工データと、のいずれかである対応データを記憶する複数の第2データベースと、前記複数の第2データベースのうちのいずれかを特定する第2データベース特定情報と、該第2データベース特定情報にて特定された第2データベースに必要な前記対象データを特定するための対象データ特定情報と、を記憶する記憶手段と、制御手段と、処理サーバと、を含むデータベース管理システムが行うデータベース管理方法であって、
前記第1データベースは、各対象データに、他の1以上の対象データである関連対象データを、関連づけて記憶し、
前記第2データベースは、各対応データに、当該対応データの元となる対象データと関連づけられている関連対象データについての対応データである関連対応データを、関連づけて記憶し、
前記対象データ特定情報は、前記対象データと前記関連対象データとの関連づけを含み、
前記制御手段が、前記第1データベースにおいて、前記複数のデータのうちの少なくとも1つが更新された際に、前記記憶手段内の対象データ特定情報にて特定される対象データのうちの1つが更新されたか判断し、前記対象データが更新された際に、更新された対象データを含む更新処理用データを作成し、このとき、対象データ特定情報に対象データについての加工の処理内容を表す処理情報が付加されている場合、当該処理情報も前記更新処理用データに追加し、
前記処理サーバが、前記更新処理用データを取得し、前記処理情報が前記更新処理用データに付加されている場合には、前記第2データベースにおいて前記関連対象データについての対応データに関連づけられている対応データを、前記更新された対象データに前記処理情報を基に前記所定の処理を施した加工データに更新する、
ことを特徴とする
【発明の効果】
【0013】
本発明によれば、不必要なデータの更新処理を抑制することが可能になる。
【図面の簡単な説明】
【0014】
図1】本発明の一実施形態のデータベース管理システム100を示した図である。
図2】複製元DB101内のデータの一例を示した図である。
図3】複製先DB21内のデータの一例を示した図である。
図4】複製先DB22内のデータの一例を示した図である。
図5】管理情報103aの一例を示した図である。
図6】更新データ情報104aの一例を示した図である。
図7】各処理サーバがプロセスを立上げた状況を説明するための図である。
図8】処理サーバによる更新データ情報の処理を表す図である。
図9】処理サーバ31〜33の稼働率(稼働度)と、更新データ格納部104内の更新データ情報と、の一例を示した図である。
図10】処理サーバによる更新データ情報の代行処理を表す図である。
【発明を実施するための形態】
【0015】
以下、本発明の一実施形態について図面を参照して説明する。
【0016】
図1は、本発明の一実施形態のデータベース管理システム100を示した図である。
【0017】
図1において、データベース管理システム100は、管理システム1と、複製先DB21および22と、処理サーバ31〜3iと、を含む。なお、iは1以上の整数である。
【0018】
管理システム1は、複製元DB101と、更新部102と、記憶部103と、更新データ格納部104と、サーバ負荷確認部105と、制御部106と、を含む。
【0019】
複製元DB101は、第1データベースの一例である。
【0020】
複製元DB101は、複数の項目のデータ、例えばm(mは3以上の整数)個の項目のデータを記憶する。
【0021】
図2は、複製元DB101内のデータの一例を示した図である。
【0022】
図2において、複製元DB101は、テーブルTA〜TDを記憶する。
【0023】
テーブルTAは、項目として、ID情報(ユーザのID)A1とパスワードA2とを有する。テーブルTAには、ID情報A1のデータA1Dごとに、ID情報A1のデータA1DとパスワードA2のデータA2Dとが互いに関連づけて記憶される。なお、ID情報A1は、データA1Dを特定するための情報である。また、パスワードA2は、データA2Dを特定するための情報である。
【0024】
テーブルTBは、項目として、商品名B1と価格B2とを有する。テーブルTBには、商品名B1のデータB1Dごとに、商品名B1のデータB1Dと価格B2のデータB2Dとが互いに関連づけて記憶される。なお、商品名B1は、データB1Dを特定するための情報である。また、価格B2は、データB2Dを特定するための情報である。
【0025】
テーブルTCは、項目として、住所情報C1と電話番号C2とを有する。テーブルTCには、住所情報C1のデータC1Dごとに、住所情報C1のデータC1Dと電話番号C2のデータC2Dとが互いに関連づけて記憶される。なお、住所情報C1は、データC1Dを特定するための情報である。また、電話番号C2は、データC2Dを特定するための情報である。
【0026】
テーブルTDは、項目として、店舗名D1と在庫数D2とを有する。テーブルTDには、店舗名D1のデータD1Dごとに、店舗名D1のデータD1Dと在庫数D2のデータD2Dとが互いに関連づけて記憶される。なお、店舗名D1は、データD1Dを特定するための情報である。また、在庫数D2は、データD2Dを特定するための情報である。
【0027】
住所情報C1のデータC1Dの各々は、ユーザ住所情報のデータC1D1と店舗住所情報のデータC1D2とのいずれかに分類される。
【0028】
ユーザ住所情報のデータC1D1は、データA1Dとも関連づけられ、そのデータA1Dにて特定されるユーザの住所を表す。
【0029】
店舗住所情報のデータC1D2は、データD1Dとも関連づけられ、そのデータD1Dにて特定される店舗の住所を表す。
【0030】
在庫数D2のデータD2Dは、データB1Dとも関連づけられている。
【0031】
データA1Dと、データA2Dと、データB1Dと、データB2Dと、データC1Dと、データC2Dと、データD1Dと、データD2Dとは、複製元DB101内の複数のデータの一例である。
【0032】
なお、複製元DB101が記憶するテーブルおよびデータは、図2に示したテーブルおよびデータに限らず適宜変更可能である。
【0033】
図1に戻って、複製先DB21および22は、それぞれ、第2データベースの一例である。
【0034】
複製先DB21は、複製元DB101内のm個の項目のデータのうちのn(nは2以上m未満の整数)個の項目のデータ(以下「対象データ」と称する)の各々について、対象データの複製(コピー)と、対象データに予め定められた処理(所定の処理)を施した加工データと、のいずれかである対応データを記憶する。
【0035】
複製先DB22は、複製元DB101内のm個の項目のデータのうちのp(pは2以上m未満の整数)個の項目の対象データの各々についての対応データを記憶する。
【0036】
以下では、複製先DB21および22は、対象データの複製を対応データとして記憶する。
【0037】
図3は、複製先DB21内のデータの一例を示した図である。
【0038】
複製先DB21は、テーブルTEを記憶する。
【0039】
テーブルTEは、項目として、テーブルTA内のID情報A1の複製であるID情報E1と、テーブルTC内の住所情報C1の複製である住所情報E2と、を有する。テーブルTEには、ID情報E1のデータE1Dごとに、ID情報E1のデータE1Dと、住所情報E2のデータE2Dとが、互いに関連づけて記憶される。
【0040】
なお、データE1Dは、テーブルTA内のデータA1Dの複製(対応データ)である。データE2Dは、テーブルTC内のユーザ住所情報のデータC1D1の複製(対応データ)である。
【0041】
データE1Dは、そのデータE1Dにて特定されるユーザの住所を表す住所情報E2のデータE2Dと関連づけられている。
【0042】
複製先DB21に関しては、複製元DB101内のデータのうち、データA1Dとユーザ住所情報のデータC1D1が、対象データとなる。
【0043】
また、複製元DB101では、対象データであるユーザ住所情報のデータC1D1は、関連対象データとなるデータA1Dと関連づけられている。また、複製元DB101では、対象データであるデータA1Dは、関連対象データとなるユーザ住所情報のデータC1D1と関連づけられている。
【0044】
図4は、複製先DB22内のデータの一例を示した図である。
【0045】
複製先DB22は、テーブルTFおよびTGを記憶する。
【0046】
テーブルTFでのデータ構成は、テーブルTEでのデータ構成と同様である。
【0047】
テーブルTFは、項目として、テーブルTB内の商品名B1の複製である商品名G1と、テーブルTD内の在庫数D2の複製である在庫数G2と、を有する。テーブルTGには、商品名G1のデータG1Dごとに、商品名G1のデータG1Dと、在庫数G2のデータG2Dとが、互いに関連づけて記憶される。
【0048】
なお、データG1Dは、テーブルTB内のデータB1Dの複製(対応データ)である。データG2Dは、テーブルTD内のデータD2Dの複製(対応データ)である。
【0049】
データG1Dは、そのデータG1Dにて特定される商品名の在庫数を表す在庫数G2のデータG2Dと関連づけられている。
【0050】
複製先DB22に関しては、複製元DB101内のデータのうち、データA1Dとユーザ住所情報のデータC1D1とデータB1DとデータD2Dが、対象データとなる。
【0051】
また、複製元DB101では、対象データであるユーザ住所情報のデータC1D1は、関連対象データとなるデータA1Dと関連づけられている。また、複製元DB101では、対象データであるデータA1Dは、関連対象データとなるユーザ住所情報のデータC1D1と関連づけられている。
【0052】
また、複製元DB101では、対象データであるデータD2Dは、関連対象データとなるデータB1Dと関連づけられている。また、複製元DB101では、対象データであるデータB1Dは、関連対象データとなるデータD2Dと関連づけられている。
【0053】
なお、複製先DBの数は2に限らず複数であればよい。
【0054】
図1に戻って、更新部102は、利用者端末4からの更新依頼に従って複製元DB101内のデータを更新(例えば、登録、変更または削除)する。
【0055】
記憶部103は、記憶手段の一例である。
【0056】
記憶部103は、管理情報103aと、処理サーバ負荷情報103bと、を記憶する。
【0057】
管理情報103aは、複製元DB101でのデータ更新を、複製先DB21または22に反映するための処理内容を示す。
【0058】
図5は、管理情報103aの一例を示した図である。
【0059】
図5において、管理情報103aは、管理情報No(番号)103a1と、論理データ名103a2と、複製先情報103a3と、論理データ103a4と、分散値103a5と、処理サーバ情報103a6と、を有する。管理情報103aでは、管理情報No103a1と、論理データ名103a2と、複製先情報103a3と、論理データ103a4と、分散値103a5と、処理サーバ情報103a6とは、互いに関連づけられている。
【0060】
管理情報No103a1は、管理情報103aの番号を示す。
【0061】
論理データ名103a2は、管理情報103aが扱う論理データ103a4の名称を表す。
【0062】
論理データ103a4は、対象データ特定情報の一例である。
【0063】
論理データ103a4は、複製元DB101の複数のテーブル内のデータのうち、複製先DB21または22が必要とするデータ(対象データ)の組み合わせを、データの項目を用いて定義したデータである。
【0064】
なお、複製先DB21または22が必要とするデータ(対象データ)は、複製先DB21または22に記憶されているデータでもある。
【0065】
本実施形態では、以下の論理データAおよびBが用いられる。
【0066】
論理データA:テーブルTAのID情報A1+テーブルTCの住所情報C1
論理データB:テーブルTBの商品名B1+テーブルTDの在庫数D2
なお、論理データAは、テーブルTAのID情報A1(項目)のデータA1Dと、そのデータA1Dに関連づけられているテーブルTCの住所情報C1(項目)のデータC1Dとを特定する。
【0067】
論理データBは、テーブルTBの商品名B1(項目)のデータB1Dと、そのデータB1Dに関連づけられているテーブルTDの在庫数D2(項目)のデータD2Dとを特定する。
【0068】
論理データは、論理データA、Bに限らず適宜変更可能である。例えば、以下の論理データCが用いられてもよい。
【0069】
論理データC:テーブルTCの住所情報C1+テーブルTDの在庫情報D2
なお、論理データCは、テーブルTCの住所情報C1(項目)のデータC1Dと、そのデータC1Dに関連づけられているテーブルTDの在庫情報D2(項目)のデータD2Dとを特定する。
【0070】
また、複製元DB101での更新を複製先DB21または22に反映する際に、複製元DB101で更新されたデータを加工(例えば、住所を都道府県のみに加工)や変換(例えば、重さのデータがある場合、重さの値をkgからgに変換)する所定の処理を施す必要があれば、対象データについて加工や変更(以下、まとめて加工と称する)の処理内容を表す処理情報が、論理データに追加される。
【0071】
なお、図5においては、複製先DB21が必要とするデータは、論理データAにて定義され、複製先DB22が必要とするデータは、論理データAおよびBにて定義される。
【0072】
上記では、論理データ103a4にて特定される対象データの組み合わせを、2つの対象データの組み合わせとしたが、論理データ103a4にて特定される対象データの組み合わせを、3つ以上の対象データの組み合わせとしてもよい。
【0073】
複製先情報103a3は、複製先DBを表す。
【0074】
分散値103a5は、論理データ103a4にて特定されるデータについての更新を1つの複製先DBに反映する処理を行う処理サーバの数を定義する。
【0075】
処理サーバ情報103a6は、論理データ103a4にて特定されるデータについての更新を複製先情報103a3が表す複製先DBに反映する更新処理を行う処理サーバを指定する。
【0076】
分散値103a5と処理サーバ情報103a6の組み合わせは、サーバ指定情報の一例となる。
【0077】
図1に戻って、記憶部103内の処理サーバ負荷情報103bは、処理サーバ31〜3iの各々の稼働度を表す。
【0078】
更新データ格納部104は、格納手段の一例である。
【0079】
サーバ負荷確認部105は、確認手段の一例である。
【0080】
サーバ負荷確認部105は、処理サーバ31〜3iの各々の稼働度を処理サーバ31〜3iの各々から受け付ける。サーバ負荷確認部105は、処理サーバ31〜3iの各々の稼働度に基づいて、処理サーバ負荷情報103bを作成し、処理サーバ負荷情報103bを記憶部103に記憶する。
【0081】
制御部106は、制御手段および設定手段の一例である。
【0082】
制御部106は、例えば、管理者端末5からの入力に基づいて管理情報103aを作成し、管理情報103aを記憶部103に記憶する。
【0083】
また、制御部106は、複製元DB101内のデータが更新(例えば、登録、変更または削除)された際に、管理情報103aを参照して、更新されたデータが対象データであるか否かを確認する。制御部106は、更新されたデータが対象データである場合、データの更新結果を含む更新データ情報を作成し、その更新データ情報を更新データ格納部104に記憶する。
【0084】
図6は、更新データ情報104aの一例を示した図である。
【0085】
図6において、更新データ情報104aは、項目として、処理No(番号)104a1と、論理データ名104a2と、複製先情報104a3と、複製データ104a4と、分散値104a5と、処理フラグ(F)104a6と、処理サーバ情報104a7と、を有する。
【0086】
処理No104a1は、更新データ情報104aの番号を示す。
【0087】
論理データ名104a2は、記憶部103内の論理データ103a4のうち、更新された対象データの項目を含む論理データ103a4(以下「該当論理データ」と称する)の名称を表す。
【0088】
複製先情報104a3は、管理情報103a内で該当論理データと関連づけられている複製先情報103a3を表す。
【0089】
複製データ104a4は、該当論理データにて特定される対象データの組み合わせのうち、更新された対象データを含む組み合わせを表す。なお、複製データ104a4は、更新処理データの一例である。
【0090】
分散値104a5は、管理情報103a内で該当論理データと関連づけられている分散値103a5を表す。
【0091】
処理フラグ104a6は、更新データ情報104aの処理状況を表すために用いられる。なお、更新データ情報104aが作成された段階では、処理フラグ104a6には、「未処理」が定義される。
【0092】
処理サーバ情報104a7は、管理情報103a内で該当論理データと関連づけられている処理サーバ情報103a6を表す。
【0093】
図1に戻って、制御部106は、記憶部103内の処理サーバ負荷情報103bを確認し、処理サーバ31〜3iの稼働度に基づいて、管理情報103a内の処理サーバ情報103a6を設定したり変更したりする。
【0094】
処理サーバ31〜3iは、記憶部103内の論理データ103a4を参照し、複製元DB101において記憶部103内の論理データ103a4にて特定される対象データのうちの1つが更新された際に、複製元DB101内の対象データのうち、更新された対象データを含む更新データ情報104a(特には、複製データ104a4)、を用いて複製元DB101での対象データの更新を複製先DB21または22に反映する更新処理を実行する。分散値103a5によって、2以上の処理サーバ31〜3iを用いる場合には、更新処理を分散処理にて実行する。
【0095】
処理サーバ31〜3iは、それぞれ、記憶部301と、処理部302と、負荷状況確認部303と、を含む。
【0096】
処理部302は、例えば、CPU(Central Processing Unit)およびメモリを含む。
【0097】
処理部302は、管理システム1内の記憶部103から管理情報103aを取得し、管理情報103aを、自処理サーバ内の記憶部301に記憶する。
【0098】
処理部302は、記憶部301内の管理情報103aを参照して、管理システム1内の更新データ格納部104から、自己が処理すべき情報(更新データ情報104a)を取得する。
【0099】
処理部302は、更新データ格納部103から取得した更新データ情報104aを用いて、複製元DB101での対象データの更新を、複製先DB21または22に反映する。
【0100】
なお、処理部302は、管理情報103aに、複製データについての所定の処理内容を表す処理情報が付加されている場合、その処理情報に基づいて複製データに対して所定の処理を施し、所定の処理が施された複製データを用いて、複製先DB21または22内のデータを更新する。
【0101】
負荷状況確認部303は、自処理サーバの稼働度(例えば、自処理サーバ内の処理部302に含まれるCPUやメモリの使用率)を検出し、自処理サーバの稼働度をサーバ負荷確認部104に送信する。
【0102】
次に、動作を説明する。
【0103】
(1)管理情報103aの設定
管理情報103aの設定については、例えば、図5に示した管理情報103aが管理者端末5から入力され、制御部106が、入力された管理情報103aを記憶部103に記憶する。
【0104】
また、制御部106が、管理者端末5から、論理データごとに、論理データ名103a2と論理データ103a4と複製先情報103a3と分散数103a5とを受け付けると、論理データ名103a2と論理データ103a4と複製先情報103a3と分散値103a5とに基づいて、処理サーバ情報103a6の欄を空欄とする管理情報103aをまず作成し、その後、処理サーバ情報103a6の欄に、処理サーバ31〜3iを割り当ててもよい。
【0105】
例えば、論理データAを表す論理データ名103a2と、論理データAを表す論理データ103a4と、論理データAにて特定される対象データの複製先として複製先DB21を表す複製先情報103a3と、論理データAにて特定される対象データの複製先として複製先DB22を表す複製先情報103a3と、ID情報A1のデータを基準にして論理データAにて特定される対象データの組み合わせを2つに分ける旨の分散値103a5(例えば、ID001〜ID500を番号1/2とし、ID501〜ID999を番号2/2とする値)が、入力された場合、制御部106は、以下の4つの管理情報103a(図5参照)を作成する。
【0106】
管理情報No.1の管理情報103aでは、論理データ103a4が論理データAを表し、複製先情報103a3が複製先DB21を表し、分散値103a5が、ID001〜ID500を番号1/2とする値を表し、処理サーバ情報103a6が処理サーバ31を表す。
【0107】
管理情報No.2の管理情報103aでは、論理データ103a4が論理データAを表し、複製先情報103a3が複製先DB22を表し、分散値103a5が、ID001〜ID500を番号1/2とする値を表し、処理サーバ情報103a6が処理サーバ32を表す。
【0108】
管理情報No.3の管理情報103aでは、論理データ103a4が論理データAを表し、複製先情報103a3が複製先DB21を表し、分散値103a5が、ID501〜ID999を番号2/2とする値を表し、処理サーバ情報103a6が処理サーバ33を表す。
【0109】
管理情報No.4の管理情報103aでは、論理データ103a4が論理データAを表し、複製先情報103a3が複製先DB22を表し、分散値103a5が、ID501〜ID999を番号2/2とする値を表し、処理サーバ情報103a6が処理サーバ34を表す。
【0110】
なお、制御部106は、管理情報103a内の処理サーバ情報103a6を空欄で設定しておき、処理サーバ31〜3iのいずれかが管理情報103aを取得する際に、その処理サーバを表す処理サーバ情報103a6を設定してもよい。
【0111】
また、制御部106は、管理情報103a内の処理サーバ情報103a6を空欄で設定しておき、処理サーバ31〜3iの稼働度が低い順に、その処理サーバを表す処理サーバ情報103a6を設定してもよい。
【0112】
制御部106は、作成された管理情報103aを記憶部103に記憶する。
【0113】
(2)処理サーバによる事前処理
処理サーバ31〜3iでは、それぞれ、処理部302は、管理システム1の記憶部103内のすべての管理情報103aを読み取り、すべての管理情報103aを記憶部301に記憶する。
【0114】
続いて、処理部302は、記憶部301内の管理情報103aを参照して、一連の更新処理を実行するためのプロセスを立上げる。なお、一連の更新処理とは、自己が処理すべき更新データ情報を取得し、その更新データ情報を用いて複製元DB21または22内のデータを更新するという処理である。
【0115】
例えば、記憶部103に、図5に示した管理情報103aが記憶されている場合、処理サーバ31〜34は、それぞれ、以下のようにプロセスを立ち上げて、更新処理を担当する。
【0116】
処理サーバ31は、管理情報No.1を処理するためのプロセスと、管理情報No.5を処理するためのプロセスと、を立上げる。
【0117】
処理サーバ32は、管理情報No.2を処理するためのプロセスと、管理情報No.6を処理するための各プロセスと、を立上げる。
【0118】
処理サーバ33は、管理情報No.3を処理するためのプロセスと、管理情報No.7を処理するためのプロセスと、を立上げる。
【0119】
処理サーバ34は、管理情報No.4を処理するためのプロセスを立上げる。
【0120】
図7は、処理サーバ31が、管理情報No.1とNo.5を処理するための各プロセスを立上げ、処理サーバ32が、管理情報No.2とNo.6を処理するための各プロセスを立上げ、処理サーバ33が、管理情報No.3とNo.7を処理するための各プロセスを立上げ、処理サーバ34が、管理情報No.4を処理するためのプロセスを立上げた状況を説明するための図である。
【0121】
(3)更新処理
更新部102は、利用者端末4から、複製元DB101に対するデータの登録、変更または削除などの更新依頼を受け付けると、複製元DB101に対して更新依頼に応じた更新を行う。
【0122】
複製元DB101でデータの更新が発生すると、もしくは、定期的に、制御部106は、どのテーブルのデータが更新されたかを確認し、記憶部103内の管理情報103aを参照し、更新されたデータが論理データ103a4にて定義されたテーブルのデータか否かを判断する。
【0123】
更新されたデータが、論理データ103a4にて定義されたテーブルのデータ(対象データ)である場合、制御部106は、複製元DB101から、更新されたデータと、論理データ103a4にてその更新されたデータと組になっているデータ(以下「関連対象データ」とも称する)と、の組み合わせを、複製データ104a4として抽出する。
【0124】
続いて、制御部106は、複製データ104a4を抽出する際に用いた論理データ103a4を含む管理情報103aを参照して、複製データ104a4を用いて更新データ情報104aを作成し、その更新データ情報104aを更新データ格納部104に追加記憶する(図6参照)。
【0125】
例えば、論理データAの分散値が、ID情報:ID001〜ID500が番号1/2、ID情報:ID500〜ID900が番号2/2を表す値である状況で、ID情報「ID001」の利用者が、住所情報のデータを「東京都□□・・・」に更新し、ID情報「ID567」の利用者が、住所情報のデータを「千葉県□□・・・」に更新した場合、これらの更新は、論理データAにて定義されたテーブルTCの住所情報のデータC1Dの更新に該当するので、制御部106は、これら更新されたデータは対象データであると判断し、それらの住所情報に対応する関連対象データであるID情報とともに、以下の4つの更新データ情報を作成する。
【0126】
1つ目の更新データ情報は、処理No104a1が「1」であり、論理データ名104a2が「論理テータA」であり、複製先情報104a3が「複製先DB21」であり、複製データ104a4が「ID情報:ID001+住所情報:東京都□□・・・」であり、分散値104a5が「1/2(ID001〜ID500を番号1/2とする値)」であり、処理フラグ104a6が「未処理」であり、処理サーバ情報104a7が「処理サーバ31」である更新データ情報である。
【0127】
2つ目の更新データ情報は、処理No104a1が「2」であり、論理データ名104a2が「論理テータA」であり、複製先情報104a3が「複製先DB22」であり、複製データ104a4が「ID情報:ID001+住所情報:東京都□□・・・」であり、分散値104a5が「1/2(ID001〜ID500を番号1/2とする値)」であり、処理フラグ104a6が「未処理」であり、処理サーバ情報104a7が「処理サーバ32」である更新データ情報である。
【0128】
3つ目の更新データ情報は、処理No104a1が「3」であり、論理データ名104a2が「論理テータA」であり、複製先情報104a3が「複製先DB21」であり、複製データ104a4が「ID情報:ID567+住所情報:千葉県□□・・・」であり、分散値104a5が「1/2(ID501〜ID999を番号1/2とする値)」であり、処理フラグ104a6が「未処理」であり、処理サーバ情報104a7が「処理サーバ33」である更新データ情報である。
【0129】
4つ目の更新データ情報は、処理No104a1が「4」であり、論理データ名104a2が「論理テータA」であり、複製先情報104a3が「複製先DB22」であり、複製データ104a4が「ID情報:ID567+住所情報:千葉県□□・・・」であり、分散値104a5が「1/2(ID501〜ID999を番号1/2とする値)」であり、処理フラグ104a6が「未処理」であり、処理サーバ情報104a7が「処理サーバ34」である更新データ情報である。
【0130】
もし、分散値が1/2だけに該当するデータ(対象データ)が更新された場合、処理No.1と処理No.2との更新データ情報が作成される。
【0131】
このとき、制御部106は、論理データ(例えば、論理データA)に処理情報が付加されている場合、その処理情報も更新データ情報に追加する。
【0132】
次に、処理サーバ31〜3iが行う更新動作を説明する。
【0133】
処理サーバ31〜3iでは、それぞれ、処理部302が、定期的に、もしくは、管理システム1(例えば、制御部106)が複製元DB101を更新した旨の更新通知を例えばブロードキャストで通知する際にはその更新通知を受信した場合、もしくは、現在処理中のプロセスが終了すると、更新データ格納部104に接続する。
【0134】
続いて、処理部302は、記憶部301内の管理情報103aの処理サーバ情報103a6に基づいて、もしくは、更新データ情報104aの処理サーバ情報104a7に基づいて、更新データ格納部104から、自処理サーバが処理する処理Noの更新データ情報104aを取得する。
【0135】
なお、管理システム1では、制御部106は、更新データ格納部104内の更新データ情報104aのうち、処理サーバにて取得された更新データ情報104aについては、その更新データ情報104a内の処理フラグ104a6の状態を「処理中」に変更する。
【0136】
例えば、処理サーバ33内の処理部302は、記憶部301内の管理情報103aの処理サーバ情報103a6に基づいて、自装置の更新すべき更新データ情報を論理データ名や分散値など(論理データ名:論理データA&分散値:2/2の更新データ情報、または、論理データ名:論理データB&分散値:3/3の更新データ情報)で特定し、もしくは、更新データ格納部104内の更新データ情報104a(図6)を確認し、処理サーバ情報104a7に基づいて、自装置の更新すべき更新データ情報の処理No(処理No.3の更新データ情報)で特定し、更新データ格納部104内の更新データ情報104aのうちの特定した更新データ情報の中から未処理の更新データ情報である処理No.3の更新データ情報104aを、処理サーバ33で処理すべき更新データ情報として取得する。
【0137】
続いて、処理サーバ33内の処理部302は、処理No.3の更新データ情報104aを処理サーバ33で取得した旨の更新データ取得通知を、管理システム1内の制御部106に送信する。
【0138】
制御部106は、処理No.3の更新データ情報104aを処理サーバ33で取得した旨の更新データ取得通知を受信すると、更新データ取得通知にて指定された処理No.3の更新データ情報104a内の処理フラグ104a6が表す情報を「未処理」から「処理中」に変更する。
【0139】
処理部302は、更新データ情報104aを取得すると、更新データ情報104aに処理情報が付加されている場合、更新データ情報104a内の複製データ104a4に対して、処理情報に応じた所定の処理を施す。なお、処理部302が、予め対象データの項目ごとに処理情報を記憶し、複製データ104a4内の対象データに対して、その対象データの項目の処理情報に応じた所定の処理を施してもよい。
【0140】
続いて、処理部302は、取得された更新データ情報104aに対応する管理情報103a内の複製先情報103a3にて指定された複製先DBに、複製データまたは加工された複製データを送信し、その複製先DB内の対応データのうち、複製データ104a4内の関連対象データについての対応データに関連づけられている対応データを、複製データ104a4内の更新されたデータ(対応データ)、または、所定の処理が施された、更新されたデータに更新する。
【0141】
例えば、更新前の対象データについての対応データが、更新前の対象データの複製である場合(更新データ情報104aに処理情報が付加されていない場合)には、処理部302は、複製先DBにおいて関連対象データについての対応データに関連づけられている対応データを、更新された対象データの複製に更新する。
【0142】
また、更新前の対象データについての対応データが、更新前の対象データに所定の処理を施した加工データである場合(更新データ情報104aに処理情報が付加されている場合)には、処理部302は、複製先DBにおいて関連対象データについての対応データに関連づけられている対応データを、更新された対象データに所定の処理を施した加工データに更新する。
【0143】
続いて、処理部302は、更新処理が完了した処理Noの更新データ情報104aについて、更新処理が完了した旨の処理完了の報告を、管理システム1内の制御部106に送信する。
【0144】
制御部106は、処理完了の報告を受信すると、処理完了の報告を受けた更新データ情報104a内の処理フラグ104a6の状態を「処理済」に変更する。
【0145】
図8は、処理サーバによる更新データ情報の処理を表す図である。
【0146】
また、処理サーバ31〜3iでは、処理部302は、負荷状況確認部303を使用して、自サーバの稼働度を確認する。なお、稼働度(例えば、負荷)を確認するタイミングは、定期的、または、複製先DB内のデータを更新する処理を完了したときでもよい。
【0147】
処理部302は、自サーバの稼働度を確認すると、自サーバの稼働度が一定の閾値を下回っていた場合、追加プロセスを立上げ、その後、更新データ格納部104内の更新データ情報104aの処理フラグ104a6を確認する。
【0148】
続いて、処理部302は、「未処理」を表す処理フラグ104a6を含む処理データ情報104aの中から、1つを、自処理サーバで処理すべき更新データ情報104aとして取得する。
【0149】
続いて、処理部302は、その更新データ情報104aを自処理サーバで取得した旨の担当サーバ変更通知を、管理システム1内の制御部106に送信する。
【0150】
制御部106は、担当サーバ変更通知を受信すると、担当サーバ変更通知にて指定された更新データ情報104a内の処理サーバ情報104a7が表す処理サーバを、担当サーバ変更通知の送信元の処理サーバに変更し、その処理サーバ情報104a内の処理フラグ104a6を「処理中」に変更する。
【0151】
なお、処理部302は、処理フラグ104a6が「未処理」である更新データ情報104aを、処理サーバ情報104a7にて指定される処理サーバごとにカウントし、最もカウント値が大きい処理サーバの未処理の案件(更新データ情報104a)の中から、処理が代行される更新データ情報104aを選択してもよい。
【0152】
以下、一例をあげて説明する。
【0153】
図9は、処理サーバ31〜33の稼働率(稼働度)と、更新データ格納部104内の更新データ情報と、の一例を示した図である。
【0154】
図9において、処理サーバ31の稼働率が70%、処理サーバ32の稼働率が60%、処理サーバ33の稼働率が20%である状況で、閾値が30%であるとする。
【0155】
この場合、処理サーバ33内の処理部302は、更新データ格納部104内の更新データ情報104a(図9)を確認し、「未処理」の更新データ情報が最も多い処理サーバ(以下「処理サーバ31」とする)の未処理の更新データ情報である処理No.1の更新データ情報104aを、処理サーバ33で処理すべき更新データ情報として取得する。
【0156】
続いて、処理サーバ33内の処理部302は、処理No.1の更新データ情報104aを処理サーバ33で取得した旨の担当サーバ変更通知を、管理システム1内の制御部106に送信する。
【0157】
制御部106は、処理No.1の更新データ情報104aを処理サーバ33で取得した旨の担当サーバ変更通知を受信すると、担当サーバ変更通知にて指定された処理No.1の更新データ情報104a内の処理サーバ情報104a7が表す処理サーバを、担当サーバ変更通知の送信元の処理サーバ33に変更し、処理No.1の更新データ情報104a内の処理フラグ104a6を「処理中」に変更する。
【0158】
図10は、処理サーバによる更新データ情報の代行処理を表す図である。
【0159】
なお、処理サーバ33内の処理部302が、稼働率が最も高い処理サーバの未処理の更新データ情報104aのいずれかを、処理サーバ33で処理すべき更新データ情報として取得してもよい。その場合、処理サーバ31〜3iでは、負荷状況確認部303は、管理システム1内のサーバ負荷確認部105に、自処理サーバの稼働度を、定期的に、もしくは、更新データ情報104aの取得時などに、通知する。サーバ負荷確認部105は、各処理サーバの稼働度を、処理サーバ負荷情報103bとして記憶する。
【0160】
次に、本実施形態の効果について説明する。
【0161】
本実施形態では、記憶部103は、対象データを特定するための論理データ(対象データ特定情報)を記憶する。
【0162】
処理サーバ31〜3iは、記憶部103内の論理データを参照し、複製元DB101において論理データにて特定される対象データのうちの1つが更新された際に、複製元DB101内の対象データのうち、更新された対象データを含む複製データ(更新処理用データ)、を用いて複製元DB101での対象データの更新を複製先DB21または22に反映する更新処理を実行する。
【0163】
このため、複製元DB101内のデータのうち、複製先DB21または22での対応データの更新に必要となる更新処理用データだけが、大きなタイムラグなく、1以上の複製元DBに提供される。
【0164】
複製元DB101内のデータのうち、複製先DB21または22での対象データの更新に必要となる更新処理用データだけが用いられることで、例えば、複製元DB101のテーブルの一箇所が更新された場合、複製元DB101のテーブル全てを複製しなくてもよくなる。また、論理データにて特定されるデータについて処理を行うことにより、複製対象となるデータ量(情報量)が絞られるため、データ通信の帯域の確保や処理サーバでの処理数の削減を行うことが可能になり、効率化を図ることが可能になる。
【0165】
したがって、不必要なデータの更新処理を抑制でき、かつ、更新処理の負荷が1台の処理サーバに集中することを抑制することが可能になる。
【0166】
本実施形態では、複製先DB101では、各対象データは、他の1以上の対象データ(関連対象データ)と関連づけられており、複製先DB21および22では、それぞれ、各対応データは、その対応データの元となる対象データと関連づけられている対象データ(関連対象データ)についての対応データである関連対応データと関連づけて記憶されている。複製データは、更新された対象データと、その更新された対象データに関連づけられた対象データである関連対象データと、を含む。
【0167】
処理サーバ31〜3iは、複製先DB21または22において関連対象データについての対応データに関連づけられている対応データを、更新された対象データについての対応データに更新する、という更新処理を実行する。
【0168】
このため、複製先DB21または22で更新の対象となる対応データを、関連対象データを用いて特定することが可能になる。
【0169】
本実施形態では、記憶部103は、各対象データについて、複製元DB101内の該対象データの更新を複製元DB21または22に反映する更新処理を実行する処理サーバである実行処理サーバを指定するための処理サーバ情報(サーバ指定情報と分散値)を記憶する。
【0170】
処理サーバ31〜3iの各々は、自サーバが処理サーバ情報にて実行処理サーバとして指定された特定対象データが更新された場合に、更新された特定対象データと、更新された特定対象データに関連づけられた関連対象データと、を用いて、更新処理を実行する。
【0171】
このため、対象データに対して実行処理サーバを指定することが可能になる。
【0172】
本実施形態では、制御部106は、複製元DB101内の対象データの更新に伴い、記憶部103内の論理データを参照して、複製元DB101内の、更新された対象データと、更新された対象データに関連づけられた関連対象データと、を互いに関連づけて更新データ格納部104に格納する。
【0173】
処理サーバ31〜3iの各々は、自サーバが処理サーバ情報にて実行処理サーバとして指定された状況で特定対象データが更新された場合に、更新データ格納部104内の、更新された特定対象データと、更新された特定対象データに関連づけられた関連対象データと、を用いて更新処理を実行する。
【0174】
このため、制御部106が、更新処理に使用されるデータを準備し、処理サーバ31〜3iの各々は、準備されたデータを用いて更新処理を行うことが可能になる。
【0175】
本実施形態では、処理サーバ31〜3iの各々は、自サーバの稼働度が所定の稼働度よりも低い場合、他の処理サーバを実行処理サーバとして指定するための処理サーバ情報に対応する対象データの更新結果と、その対象データの更新結果と関連づけられた関連対象データと、を用いた更新処理を、他の処理サーバに代わって実行する。
【0176】
このため、処理サーバ間で負荷に差異がある場合、負荷の少ない処理サーバが未処理の複製データを処理することで、処理サーバ31〜3iでの分散処理を効率的に行うことが可能になる。
【0177】
なお、他の処理サーバは、処理サーバ31〜3iのうち、その処理サーバに割り当てられた更新処理の未実施数が最も多い処理サーバ、または、処理サーバ31〜3iのうち、稼働度が最も高い処理サーバであることが望ましい。この場合、処理サーバ31〜3iでの分散処理を効率的に行える。
【0178】
なお、処理サーバが、代行する更新処理を決定せずに、管理システム1(例えば、制御部106)が、各処理サーバの稼働度に基づいて、処理サーバ情報を変更してもよい。
【0179】
例えば、制御部106は、記憶部103内の処理サーバ負荷情報103bを参照し、処理サーバ31〜3iの中に、定められた閾値よりも稼働度が低い処理サーバ(以下「低稼働処理サーバ」と称する)がある場合、更新データ情報のうち、更新データ情報の未処理の件数が多いまたは稼働度が高い処理サーバに割り当てられている更新データ情報を、低稼働処理サーバに割り当てるために、その更新データ情報内の処理サーバ情報が指定する処理サーバ、または、その処理サーバ情報を作成する際に使用した管理情報内の処理サーバ情報が指定する処理サーバを、低稼働処理サーバに変更する。
【0180】
この場合、処理サーバが、代行する更新処理を決定する処理を行う場合に比べて、処理サーバの負荷を低くすることが可能になる。
【0181】
なお、上記実施形態では、分散値として、ID001〜ID500を番号1/2とし、ID501〜ID999を2/2とする値を示したが、分散値は、適宜変更可能である。
【0182】
例えば、商品名のデータを3分割する場合、商品名が「あ」行で始まるデータから「さ」行で始まるデータまでを番号1/3とし、商品名が「た」行で始まるデータから「は」行で始まるデータまでを番号2/3とし、商品名が「ま」行で始まるデータから「わ」行で始まるデータまでを番号3/3とする値を、分散値として用いてもよい。
【0183】
また、更新処理を複数のサーバに分散させる手法は、分散ハッシュテーブルを用いたものなど適宜変更可能である。
【0184】
また、本実施形態では、1つの管理情報に対して1つの処理サーバが実行処理サーバとして割り当てられたが、冗長化のため、1つの管理情報に対して複数の処理サーバが実行処理サーバとして割り当てられてもよい。
【0185】
また、図1に示した管理システム1のうち、複製元DB101を除いたものは、コンピュータにて実現されてもよい。この場合、コンピュータは、コンピュータにて読み取り可能なCD−ROM(Compact Disk Read Only Memory)のような記録媒体に記録されたプログラムを読込み実行することによって、更新部102、記憶部103、更新データ格納部104、サーバ負荷確認部105および制御部106として機能する。記録媒体は、CD−ROMに限らず適宜変更可能である。
【0186】
また、各処理サーバは、コンピュータにて実現されてもよい。この場合、コンピュータは、コンピュータにて読み取り可能な記録媒体に記録されたプログラムを読込み実行することによって、記憶部301、処理部302および負荷状況確認部303として機能する。
【0187】
以上説明した実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【符号の説明】
【0188】
100 データベース管理システム
1 管理システム
101 複製元DB
102 更新部
103 記憶部
104 更新データ格納部
105 サーバ負荷確認部
106 制御部
21、22 複製先DB
31〜3i 処理サーバ
301 記憶部
302 処理部
303 負荷状況確認部
4 利用者端末
5 管理者端末
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10