Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4708084B2 - レプリケーションプログラム及びデータベースシステム - Google Patents
[go: Go Back, main page]

JP4708084B2 - レプリケーションプログラム及びデータベースシステム - Google Patents

レプリケーションプログラム及びデータベースシステム Download PDF

Info

Publication number
JP4708084B2
JP4708084B2 JP2005137243A JP2005137243A JP4708084B2 JP 4708084 B2 JP4708084 B2 JP 4708084B2 JP 2005137243 A JP2005137243 A JP 2005137243A JP 2005137243 A JP2005137243 A JP 2005137243A JP 4708084 B2 JP4708084 B2 JP 4708084B2
Authority
JP
Japan
Prior art keywords
update
database
file
difference data
update frequency
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
JP2005137243A
Other languages
English (en)
Other versions
JP2006318020A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005137243A priority Critical patent/JP4708084B2/ja
Publication of JP2006318020A publication Critical patent/JP2006318020A/ja
Application granted granted Critical
Publication of JP4708084B2 publication Critical patent/JP4708084B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

本発明は、マスターデータベースのレプリカを管理するための装置としてコンピュータを動作させるためのレプリケーションプログラムと、マスターデータベース及びレプリカデータベースを含むデータベースシステムとに、関する。
周知のように、多くの場合、業務情報は、マスターデータベースにおいて統合的に管理されている。但し、このようなマスターデータベースに対し、任意の業務情報を取得しようとする従業者から多数のアクセスがあると、通信回線に掛かる負荷の増大やアクセス速度の低下が生じて、マスターデータベースについて本来行うべき管理(マスターデータの更新や修正)が行えなくなってしまう。このような問題を解消するため、近年では、マスターデータベースの複製物(レプリカ)を幾つか用意することが、提案されている。このようにレプリカデータベースを用意することにより、従業者に対してはレプリカデータベースにのみアクセスさせ、マスターデータベースにおいては本来行うべき管理だけが行われるようにすることができる。
なお、レプリカデータベースの内容は、マスターデータベースの内容と同じになっていないと、業務に支障を来す。このため、マスターデータベースとレプリカデータベースとを含むデータベースシステムは、マスターデータベースの内容の更新時にその更新内容をレプリカデータベースにも反映する仕組みを、備えている。
その更新内容を反映する仕組みとしては、更新するための情報を使ってマスターデータベースの内容とレプリカデータベースの内容とを同時に更新する『同期方式』というものがあるが、更新処理の実行性能が低下する欠点がある。このため、更新するための情報を使ってマスターデータベースの内容を一旦更新した後で更新後のマスターデータベースの内容をレプリカデータベースに反映する『非同期方式』が採られていることが多い。
その非同期方式においては、更新後のマスターデータベースの内容をコピーしてレプリカデータベースに上書きする『全部反映』という方法もあるが、マスターデータベースのデータ量が膨大である場合には、更新処理に非常に時間が掛かることとなる。このため、通常は、マスターデータベースの更新前後の差分のデータを用いて、レプリカデータベースにおける更新すべきレコードだけの内容を更新する『差分反映』という方法が、採られている。
そして、その差分反映という方法には、より具体的には、逐次配布方式と一括配布方式とがある。このうち、逐次配布方式は、マスターデータベースの一つのレコードについて更新が行われるたびに、差分データがマスターデータベース側のシステムからレプリカデータベース側のシステムへ送信されて、レプリカデータベースにおける対応する一つのレコードが直ちに更新されるというものである。一方、一括配布方式は、マスターデータベースにおいて更新されたレコードが所定量に到達したときに、その所定量の差分データがマスターデータベース側からレプリカデータベース側へ一括して送信され、レプリカデータベースにおける対応する各レコードが一括して更新されるというものである。
特開平07−121423号公報 特開2003−099297号公報
前述した逐次配布方式によると、マスターデータベースの一つのレコードについて更新があるごとに、レプリカデータベースのレコードが一つずつ更新される。このため、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレ(タイムラグ)が小さくて済むという利点がある。しかしながら、送り側から受け側へデータを送信する際には、要求信号と応答信号の遣り取りが行われるため、短期間に大量のレコードを更新するような利用状況においては、要求信号と応答信号が頻発して通信手段(ネットワーク)の混雑が発生する。然も、ネットワークでは、単位時間当たりに送信できるデータ量が決まっているため、場合によっては、遅配が生ずることとなる。このため、このような利用状況が多発するデータベースシステムにおいては、この逐次配布方式は、採用しにくいという欠点がある。
その一方、前述した一括配布方式によると、マスターデータベースの所定量のレコードについて行われた更新を、レプリカデータベースにおいて一度に行えるという利点がある。しかしながら、差分データは、所定量溜め込まれた後でレプリカデータベース側のシステムへ送信されるため、長期間に少量のレコードを更新するような利用状況においては、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレ(タイムラグ)が大きくなってしまうという欠点がある。
そして、従来のデータベースシステムでは、逐次配布方式と一括配布方式の何れか一方しか採用されなかったため、利用状況の変化に対応することができなかった。利用状況が変化したときには、データベースシステムの管理者が、マスターデータベースの内容とレプリカデータベースの内容との整合を取るための作業を、営業時間外において或いはシステムを強制的に停止させて、行わねばならないこともある。
本発明は、前述したような従来技術の有する問題点に鑑みてなされたものであり、その課題は、マスターデータベースに対する更新頻度の変化があった場合でも、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレをできるだけ抑制させることにある。
上記の課題を解決するために発明されたレプリケーションプログラムは、コンピュータを、マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データを取得するデータ取得手段,前記マスターデータベースの各レコードについての更新があるごとに、更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別手段,前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていないと判断した場合には、前記データ取得手段が取得した差分データを、レプリカデータベースを更新するためのシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていると判断した場合には、一定期間に前記データ取得手段が取得する差分データをファイルに格納して、そのファイルを、前記レプリカデータベースを更新するためのシステムへ所定の通信装置を介して送信する送信制御手段として機能させることを、特徴としている。

このように構成されると、このレプリケーションプログラムを実行したコンピュータは、マスターデータベースについてなされた更新の頻度が高いときには、一定期間溜め込んでおいた差分データを纏めてレプリカデータベース側のシステムへ送信し、マスターデータベースについてなされた更新の頻度が低いときには、差分データが一つ生成されるたびに、その差分データをレプリカデータベース側のシステムへ送信する。
換言すると、本発明のレプリケーションプログラムを実行したコンピュータによれば、マスターデータベースについてなされた更新の頻度が高いときには、一括配布方式でレプリカデータベースが更新され、マスターデータベースについてなされた更新の頻度が低いときには、逐次配布方式でレプリカデータベースが更新されることとなる。
この結果、長期間に少量のレコードを更新するような利用状況においては、マスターデータベースの一つのレコードについて更新があるごとにレプリカデータベースのレコードが一つずつ更新されることによって、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレが低下されることとなる。また、短期間に大量のレコードを更新するような利用状況においては、マスターデータベースの所定量のレコードについて行われた更新がレプリカデータベースにおける対応するレコードについて一度に行われることによって、要求信号と応答信号の頻発による遅配が抑えられるので、やはり、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレが低下されることとなる。
また、上記の課題を解決するために発明されたデータベースシステムは、マスターデータベースを含むメインシステムとレプリカデータベースを含むサブシステムとを備えるデータベースシステムであって、前記メインシステムは、前記マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データを取得するデータ取得部,前記マスターデータベースの各レコードについての更新があるごとに、更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別部,前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていないと判断した場合には、前記データ取得部が取得した差分データを、前記サブシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていると判断した場合には、一定期間に前記データ取得部が取得する差分データをファイルに格納して、その
ファイルを、前記サブシステムへ所定の通信装置を介して送信する送信制御部を備え、前記サブシステムは、前記メインシステムから差分データ及びファイルを受信したときには、それら差分データ及びファイル内の差分データに基づく前記レプリカデータベースの更新を、その受信した順に、実行することを、特徴としている。
従って、このデータベースシステムに含まれるメインシステムは、前述した本発明のレプリケーションプログラムを実行したコンピュータと同等の装置として機能させることができ、一方、サブシステムは、前述した本発明のレプリケーションプログラムを実行したコンピュータからの差分データ又はファイルに基づいてレプリカデータベースを更新する装置と同等の装置として機能させることができることとなる。
以上に説明したように、本発明によれば、マスターデータベースに対する更新頻度の変化があった場合でも、マスターデータベースの更新とレプリカデータベースの更新との間の時間的なズレが抑制されることとなる。
以下、添付図面に基づいて、本発明を実施するための一つの形態について、説明する。
まず、本実施形態のデータベースシステムの構成について、説明する。
図1は、本実施形態のデータベースシステムの構成図である。このデータベースシステムは、一つのメインシステム10と少なくとも一つのサブシステム20とからなる。メインシステム10とサブシステム20は、何れも、ストレージ装置11,21とホストコンピュータ12,22とを含んでおり、それらシステム10,20のホストコンピュータ12,22は、LAN[Local Area Network]及びSAN[Storage Area Network]を介して互いに接続されている。
ストレージ装置11,21は、データやプログラムを保存しておくための記憶装置であり、図示していないが、複数枚の磁気ディスク又は複数の磁気テープを読み書き自在に搭載したドライブ機器,及び、このドライブ機器とホストコンピュータ12,22との間のデータの遣り取りを制御するための通信インターフェースポートを、内蔵している。
なお、本データベースシステムにおいては、各システム10,20のストレージ装置11,21は、主にデータベースを記録しておくための装置として利用される。メインシステム10のストレージ装置11のドライブ機器内には、このデータベースシステムを業務に利用する業者がその業務に係る情報を検索可能に格納したマスターデータベース111が、記録されている。一方、サブシステム20のストレージ装置21のドライブ機器内には、メインシステム10のマスターデータベース111のレプリカとして使用されるデータベース211が、記録されている。
ホストコンピュータ12,22は、何れも、前述したストレージ装置11,21内に記録されるデータやプログラムの管理に使用される装置である。これらホストコンピュータ12,22は、一般に市販されているパーソナルコンピュータであり、液晶ディスプレイ等の表示装置と、キーボードやマウス等の入力装置と、これら装置に接続された本体とを、備えている。
その本体は、図示していないが、ストレージ装置11,12との間のデータの遣り取りを制御するための通信インターフェースポートを備えており、その通信インターフェースポートは、ストレージ装置11,21の通信インターフェースポートに対して所定のケーブル(例えば、SCSIケーブルやファイバチャネルケーブル)を介して接続されている。
また、この本体は、図示していないが、LAN及びSANを介して接続された他のコンピュータとの間のデータの遣り取りを制御するための通信インターフェースポートを備えており、その通信インターフェースポートは、LAN内のルータ等の中継装置,及び、SAN内のファイバチャネルスイッチ等の中継装置のそれぞれに対し、所定のケーブルにて接続されている。
さらに、この本体は、図示していないが、前述した各通信インターフェースポートの他、CPU[Central Processing Unit],DRAM[Dynamic Random Access Memory],CDD[Compact Disk Drive],DVDD[Digital Versatile Disk Drive],及び、HDD[Hard Disk Drive]等のハードウエアを、内蔵している。
なお、メインシステム10のホストコンピュータ12とサブシステム20のホストコンピュータ22とは、ソフトウエア構成が異なっている。そこで、以下では、ソフトウエア構成について、各システム10,20毎に順に説明する。
メインシステム10のホストコンピュータ12のHDDには、図示せぬオペレーティングシステムプログラム,データベースプログラム121,データベース管理ソフトウエア122が、インストールされている。このうち、データベースプログラム121は、ストレージ装置11内のマスターデータベース111におけるレコードの検索を行うためのプログラムである。一方、データベース管理ソフトウエア122は、ストレージ装置11内のマスターデータベース111のレコードの管理(追加、修正、削除)を行うためのプログラムである。
さらに、データベース管理ソフトウエア122は、マスターデータベース111内の幾つかのレコードについて内容の更新が行われたときに、その更新された各レコードについての更新前後の差分データを履歴として更新ログファイルに保存する機能を実現するプログラムを、含んでいる。
また、このデータベース管理ソフトウエア122は、レプリケーションプログラム122a,メッセージスプールプログラム(スプーラ)122b,及び、バッチファイルスプールプログラム(スプーラ)122cを、含んでいる。なお、これらプログラム122a〜122cは、このデータベース管理ソフトウエア122のアドインプログラムであっても良い。
レプリケーションプログラム122aは、メインシステム10内のマスターデータベース111についての更新内容をサブシステム20内のレプリカデータベース211に反映するための情報を生成するためのプログラムである。このレプリケーションプログラム122aに従って図示せぬCPUが実行する処理の内容については、後述する。
メッセージスプーラ122bは、マスターデータベース111内のレコードについて更新がなされたときに生成される差分データを、メッセージとしてサブシステム20のホストコンピュータ22へ送信するためのプログラムである。このメッセージスプーラ122bに従った図示せぬCPUは、図示せぬDRAM上に構築したメッセージキュー内にメッセージが登録されている場合において、サブシステム20のホストコンピュータ22が受信可能なときに、そのメッセージキュー内のメッセージを登録順に送信するという処理を、行う。
バッチファイルスプーラ122cは、マスターデータベース111内のレコードについて更新がなされたときに生成される差分データを所定数格納したバッチファイルを、サブシステム20のホストコンピュータ22へ送信するためのプログラムである。このバッチファイルスプーラ122cに従った図示せぬCPUは、図示せぬDRAM上に構築したバッチファイルキュー内にバッチファイルが登録されている場合において、サブシステム20のホストコンピュータ22が受信可能なときに、そのバッチファイルキュー内のバッチファイルを登録順に送信するという処理を、行う。
一方、サブシステム20のホストコンピュータ22のHDDには、図示せぬオペレーティングシステムプログラム,データベースプログラム221,メッセージキュー管理プログラム222,バッチファイルキュー管理プログラム223,及び、更新反映プログラム224が、インストールされている。このうち、データベースプログラム221は、ストレージ装置21内のレプリカデータベース211におけるレコードの検索を行うためのプログラムである。
また、メッセージキュー管理プログラム222は、メインシステム10のホストコンピュータ12から送られてきたメッセージを、サブシステム20の図示せぬDRAM上に構築したメッセージキュー内に登録するためのプログラムである。
また、バッチファイルキュー管理プログラム223は、メインシステム10のホストコンピュータ12から送られてきたバッチファイルを、サブシステム20の図示せぬDRAM上に構築したバッチファイルキュー内に登録するためのプログラムである。
さらに、更新反映プログラム224は、サブシステム20の図示せぬDRAM上のメッセージキュー及びバッチファイルキューに登録されているメッセージ及びバッチファイルに基づいて、ストレージ装置21内のレプリカデータベース211を更新するためのプログラムである。なお、この更新反映プログラム224に従って図示せぬCPUが実行する処理の内容については、後述する。
次に、前述したように構成されるデータベースシステムにおいて実行される処理のうち、本発明に係る処理の内容について、説明する。
まず、メインシステム10において実行される処理について説明する。
メインシステム10のホストコンピュータ12においては、データベース管理ソフトウエア122が起動されると、メッセージスプーラ122b,及び、バッチファイルスプーラ122cも起動され、各スプーラ122b,122cが常駐するようになる。また、レプリケーションプログラム122aも起動される。図2及び図3は、このレプリケーションプログラム122aに従って図示せぬCPUが実行する処理の流れを示す図である。
この処理の開始後、ホストコンピュータ12(の図示せぬCPU)は、差分データの配布についての動作モードとして逐次配布モードと一括配布モードの何れが初期設定されているかを、判別する(S1001)。なお、逐次配布モードは、メッセージスプーラ122bを通じて差分データをサブシステム20へ送信する動作モードであり、一括配布モードは、バッチファイルスプーラ122cを通じて差分データをサブシステム20へ送信する動作モードである。ホストコンピュータ12は、データベース管理ソフトウエアを構成する設定ファイルにおいて、初期の動作を何れの動作モードで開始するかを規定する情報を、記憶しており、ホストコンピュータ12は、このレプリケーションプログラム122aの起動後、その設定ファイルからその情報を読み取ることによって、初期設定の動作モードを判別する。
そして、ホストコンピュータ12は、逐次配布モードが初期設定されていた場合(S1001;逐次配布)、逐次配布処理を実行する(S1011〜S1015)。
その逐次配布処理を具体的に説明すると、まず、ホストコンピュータ12は、前述した更新ログファイルに定期的にアクセスする処理をこの処理と並行して実行しており、その更新ログファイルから一件の未処理の差分データが取得できるようになるまで(差分データが更新ログファイルに保存されるまで)、待機する(S1011;NO)。そして、前述した更新ログファイルから一件分の差分データを取得すると(S1011;YES)、ホストコンピュータ12は、その差分データを、メッセージとして、図示せぬDRAM上のメッセージキューに出力する(S1012)。
その後、ホストコンピュータ12は、前述した更新ログファイルを参照することによって、その時点から過去の一定期間内におけるマスターデータベース111についての更新件数(差分データ数)を取得し(S1013)、その一定期間内の更新件数が所定の上限値を超えているか否かを判別する(S1014)。
そして、その一定期間内の更新件数が所定の上限値を超えていなかった場合(S1014;NO)、ホストコンピュータ12は、前述した更新ログファイルから次の一件分の差分データが取得できるようになるまで待機する処理を行う(S1011;NO)。一方、その一定期間内の更新件数が所定の上限値を超えていた場合(S1014;YES)、ホストコンピュータ12は、動作モードが切り替えられてから所定時間が経過しているか否かを判別する(S1015)。
そして、動作モードが切り替えられてから所定時間が経過していなかった場合(S1015;NO)、ホストコンピュータ12は、前述した更新ログファイルから次の一件分の差分データが取得できるようになるまで待機する処理を行う(S1011;NO)。一方、動作モードが切り替えられてから所定時間が経過していた場合(S1015;YES)、ホストコンピュータ12は、この逐次配布処理から離脱する。
なお、ステップS1011は、前述したデータ取得手段に相当し、このステップS1011を実行するホストコンピュータ12の図示せぬCPUは、前述したデータ取得部に相当している。また、ステップS1013乃至S1015は、前述した更新頻度判別手段に相当し、これらステップS1013乃至S1015を実行するホストコンピュータ12の図示せぬCPUは、前述した更新頻度判別部に相当している。また、ステップS1012並びにメッセージスプーラ122bは、前述した送信制御手段に相当し、これらステップS1012並びにメッセージスプーラ122bを実行するホストコンピュータ12の図示せぬCPUは、前述した送信制御部に相当している。
そして、逐次配布処理から離脱した後、ホストコンピュータ12は、動作切替メッセージをメッセージキューに出力し(S1002)、動作モードを一括配布モードへ移行して、一括配布処理を実行する(S1021〜S1035)。
また、ホストコンピュータ12は、一括配布モードが初期設定されていた場合(S1001;一括配布)にも、動作切替メッセージをメッセージキューに出力し(S1002)、動作モードを一括配布モードへ移行して、一括配布処理を実行する(S1021〜S1035)。
その一括配布処理を具体的に説明すると、まず、ホストコンピュータ12は、図示せぬDRAMに新規のバッチファイルを開く処理を行い(S1021)、その後、前述した更新ログファイルから一件分の差分データが取得できるようになるまで、待機する(S1022;NO)。
そして、前述した更新ログファイルに一件分の差分データを取得すると(S1022;YES)、ホストコンピュータ12は、その差分データを、図示せぬDRAMに生成しておいたバッチファイルに追加記録し(S1023)、そのバッチファイルに記録されている差分データの件数が所定の上限値に到達しているか否かを、判別する(S1024)。
そして、図示せぬDRAM上のバッチファイルに記録されている差分データの件数が所定の上限値に到達していた場合(S1024;YES)、ホストコンピュータ12は、そのバッチファイルを閉じて(S1025)、通信負荷測定処理を実行する(S1026)。なお、その通信負荷処理は、LAN上の単位時間当たりにLAN上を流れるデータ量,及び、SAN上の単位時間当たりにSAN上を流れるデータ量を、回線負荷量として取得する処理となっている。具体的には、ホストコンピュータ12は、LAN上を流れるパケット等の履歴を記録するコンピュータに対し、単位時間当たりのデータ量を通知するよう要求して取得する処理,及び、SAN上を流れるデータの履歴を記録するコンピュータに対し、SAN上の単位時間当たりのデータ量(回線負荷量)を通知するよう要求して取得する処理を、行う。
続いて、ホストコンピュータ12は、通信経路をLANとSANの何れかに決定する処理を行う(S1027)。具体的には、ホストコンピュータ12は、LANとSANとについて取得した回線負荷量を比較して、回線負荷量の低い方のネットワークを、バッチファイルの送信経路として決定する。
その後、ホストコンピュータ12は、差分データの件数が所定の上限値に到達することによって閉じられた当該バッチファイルを、決定した送信経路を定義する情報に対応付けて、バッチファイルキューに出力し(S1028)、再度、新規バッチファイルを開く処理を行う(S1021)。
一方、図示せぬDRAM上のバッチファイルに記録されている差分データの件数が所定の上限値に到達していた場合(S1025;NO)、ホストコンピュータ12は、その時点から過去の一定期間内におけるマスターデータベース111についての更新件数(差分データ数)を取得し(S1029)、その一定期間内の更新件数が所定の上限値未満であるか否かを判別する(S1030)。
そして、その一定期間内の更新件数が所定の上限値を超えていた場合(S1030;NO)、ホストコンピュータ12は、前述した更新ログファイルから次の一件分の差分データが取得できるようになるまで待機する処理を行う(S1022;NO)。一方、その一定期間内の更新件数が所定の上限値未満であった場合(S1030;YES)、ホストコンピュータ12は、動作モードが切り替えられてから所定時間が経過しているか否かを判別する(S1031)。
そして、動作モードが切り替えられてから所定時間が経過していなかった場合(S1031;NO)、ホストコンピュータ12は、前述した更新ログファイルから次の一件分の差分データが取得できるようになるまで待機する処理を行う(S1022;NO)。一方、動作モードが切り替えられてから所定時間が経過していた場合(S1031;YES)、ホストコンピュータ12は、図示せぬDRAM上のバッチファイルの末尾に動作切替メッセージを追加する処理を行い(S1032)、そのバッチファイルを閉じる(S1033)。
続いて、ホストコンピュータ12は、この時点でバッチファイルキュー内の末尾に登録されているバッチファイルに対応付けられている送信経路定義情報を読み出し(S1034)、この送信経路定義情報と同じ送信経路情報を当該バッチファイルに対応付けて、当該バッチファイルをバッチファイルキューに出力する(S1035)。そして、この出力後、ホストコンピュータ12は、この一括配布処理から離脱して、逐次配布処理を開始する(S1011〜S1015)。
なお、ステップS1022は、前述したデータ取得手段に相当し、このステップS1022を実行するホストコンピュータ12の図示せぬCPUは、前述したデータ取得部に相当している。また、ステップS1029乃至S1031は、前述した更新頻度判別手段に相当し、これらステップS1029乃至S1031を実行するホストコンピュータ12の図示せぬCPUは、前述した更新頻度判別部に相当している。また、ステップS1023乃至S1028並びにバッチファイルスプーラ122cは、前述した送信制御手段に相当し、これらステップS1023乃至S1028並びにバッチファイルスプーラ122cを実行するホストコンピュータ12の図示せぬCPUは、前述した送信制御部に相当している。
次に、サブシステム20において実行される処理について説明する。
サブシステム20のホストコンピュータ22においては、主電源が投入されると、メッセージキュー管理プログラム222,及び、バッチファイルキュー管理プログラム223が起動され、メッセージキュー管理プロセス及びバッチファイルキュー管理プロセスが常駐するようになる。また、更新反映プログラム224も起動される。図4及び図5は、この更新反映プログラム224に従って図示せぬCPUが実行する処理の流れを示す図である。
この処理の開始後、ホストコンピュータ22(の図示せぬCPU)は、逐次取得処理を実行する(S2011〜S2013)。
その逐次取得処理を具体的に説明すると、まず、ホストコンピュータ22は、図示せぬDRAM上に生成されているメッセージキューに定期的にアクセスする処理をこの処理と並行して実行しており、そのメッセージキューから一件分のメッセージが読み込めるようになるまで、待機する(S2011;NO)。
そして、メッセージキューからメッセージを一件読み込むと(S2011;YES)、ホストコンピュータ22は、そのメッセージが差分データであるか否かを、判別する(S2012)。
そして、そのメッセージが差分データであった場合(S2012)、ホストコンピュータ22は、当該差分データをレプリカデータベース211に反映する処理を実行し(S2013)、再度、メッセージキューから次の一件分のメッセージが読み込めるようになるまで待機する(S2011;NO)。
一方、メッセージキューから読み込んだメッセージが差分データでなかった場合(S2012;NO)、ホストコンピュータ22は、一括取得処理を実行する(S2021〜2030)。
一括取得処理を具体的に説明すると、まず、ホストコンピュータ22は、図示せぬDRAM上に生成されているバッチファイルキューに定期的にアクセスする処理をこの処理と並行して実行しており、そのバッチファイルキューからバッチファイルが一部読み込めるようになるまで待機する(S2021;NO)。
そして、バッチファイルキューからバッチファイルを一部読み込むと(S2021;YES)、ホストコンピュータ22は、当該バッチファイルを開き(S2022)、当該バッチファイルのレコードの有無を判別する(S2023)。
そして、当該バッチファイルにレコードが無ければ(S2023;YES)、ホストコンピュータ22は、当該バッチファイルを閉じて(S2024)、当該バッチファイルをバッチファイルキューから削除する処理を行って(S2025)、再度、バッチファイルキューからバッチファイルが一部読み込めるようになるまで待機する(S2021;NO)。
一方、当該バッチファイルにレコードが有れば(S2023;NO)、ホストコンピュータ22は、当該バッチファイルからレコードを一件読み出し(S2026)、当該レコードが差分データであるか否かを判別する(S2027)。
そして、当該レコードが差分データであれば(S2027;YES)、ホストコンピュータ22は、当該差分データをレプリカデータベース211に反映する処理を実行し(S2028)、再度、当該バッチファイルのレコードの有無を判別する(S2023)。
一方、当該レコードが差分データでなければ(S2027;NO)、ホストコンピュータ22は、当該バッチファイルを閉じて(S2029)、当該バッチファイルをバッチファイルキューから削除する処理を行い(S2030)、逐次取得処理を実行する(S2011〜S2013)。
次に、本実施形態のデータベースシステムの作用及び効果について説明する。
まず、メインシステム10のホストコンピュータ12が起動されたときにおいて、動作モードの初期設定が、逐次配布モードであった場合には、差分データを一件取得するたびにメッセージキューにその差分データを出力する処理が行われる(S1001;逐次配布,S1011〜S1013,S1014;NO)。このとき、差分データは、メッセージスプーラ122bとメッセージキュー管理プログラム222に基づくプロセスとにより、サブシステム20のホストコンピュータ22のメッセージキューに送られ、レプリカデータベース211の更新に利用される(S2011,S2012;YES,S2013)。
そして、メインシステム10のホストコンピュータ12は、逐次配布モードで動作している最中に(S1001;逐次配布,S1011〜S1013,S1014;NO)、更新頻度(一定期間での差分データの発生件数)が所定上限値を超えたと判断すると、メッセージスプーラ122bとメッセージキュー管理プログラム222に基づくプロセスとを通じて、動作切替メッセージを、サブシステム20のホストコンピュータのメッセージキューに出力し(S1014;YES,S1015;YES,S1002)、一括配布モードへ移行する。その後、メインシステム10のホストコンピュータ12は、バッチファイルの生成を開始し(S1021〜S1023,S1024;NO,S1029,S1030;NO)、バッチファイル内の件数が上限値に到達するたびにバッチファイルキューにバッチファイルを出力する処理を行う(S1021〜S1023,S1024;YES,S1025〜S1028)。このとき、バッチファイルは、バッチファイルスプーラ122cとバッチファイルキュー管理プログラム223に基づくプロセスとにより、サブシステム20のホストコンピュータ22のメッセージキューに送られ、レプリカデータベース211の更新に利用される(S2021〜S2026,S2027;YES,S2028)。
一方、サブシステム20のホストコンピュータ22は、メインシステム10のホストコンピュータ12が一括配布モードに移行した後も、レプリカデータベース211のレコードを一件ずつ更新する処理を継続し(S2011,S2012;YES,S2013)、メッセージキューに溜まっている全ての差分データについてこの更新処理を終えてから、動作切替メッセージを検出して(S2012;NO)、バッチファイルを用いたレプリカデータベース211の更新処理(一括取得処理)の実行を開始する(S2021,S2022,S2023;NO,S2026,S2027;YES,S2028)。
そして、メインシステム10のホストコンピュータ12は、一括配布モードで動作している最中に(S1021〜S1029,S1030;NO)、更新頻度(一定期間での差分データの発生件数)が所定上限値に満たないと判断すると、その時点で開いているバッチファイルの末尾に動作切替メッセージを組み込み、そのバッチファイルを、バッチファイルスプーラ122cとバッチファイルキュー管理プログラム223に基づくプロセスとを通じて、サブシステム20のホストコンピュータのメッセージキューに出力し(S1030;YES,S1031;YES,S1032〜S1035)、逐次配布モードへ移行する。その後、メインシステム10のホストコンピュータ12は、差分データを一件取得するたびにメッセージキューにその差分データを出力する処理を、再開する(S1001;逐次配布,S1011〜S1013,S1014;NO)。
一方、サブシステム20のホストコンピュータ22は、メインシステム10のホストコンピュータ12が逐次配布モードに移行した後も、バッチファイル内の差分データでレプリカデータベース211を更新する処理を継続し(S2021,S2022,S2023;NO,S2026,S2027;YES,S2028)、バッチファイルキューに溜まっている全てのバッチファイルについてレプリカデータベース211の更新処理を終えから、最後のバッチファイルの末尾にある動作切替メッセージを検出して(S2027;NO,S2029,S2030)、一つの差分データごとにレプリカデータベース211を更新する処理(逐次取得処理)の実行を、再開する(S2011,S2012;YES,S2013)。
このように、レプリケーションプログラム122aを実行したホストコンピュータ12は、マスターデータベース111についてなされた更新の頻度が高いときには、一定期間溜め込んでおいた差分データを纏めてサブシステム20へ送信し、マスターデータベース111についてなされた更新の頻度が低いときには、差分データが一つ生成されるたびに、その差分データをサブシステム20へ送信する。
換言すると、レプリケーションプログラム122aを実行したホストコンピュータによれば、マスターデータベース111についてなされた更新の頻度が高いときには、一括配布方式でレプリカデータベース211が更新され、マスターデータベース111についてなされた更新の頻度が低いときには、逐次配布方式でレプリカデータベース211が更新されることとなる。
この結果、長期間に少量のレコードを更新するような利用状況においては、マスターデータベース111の一つのレコードについて更新があるごとにレプリカデータベース211のレコードが一つずつ更新されることによって、マスターデータベース111の更新とレプリカデータベース211の更新との間の時間的なズレが低下することとなる。また、短期間に大量のレコードを更新するような利用状況においては、マスターデータベース111の所定量のレコードについて行われた更新がレプリカデータベース211における対応するレコードについて一度に行われることによって、データを送信する際の要求信号と応答信号が頻発することによる遅配が抑えられるので、やはり、マスターデータベース111の更新とレプリカデータベース211の更新との間の時間的なズレが低下されることとなる。
なお、メインシステム10のホストコンピュータ12において、動作モードの初期設定が一括配布モードであった場合、起動直後には、動作切替メッセージが、メッセージキューを介してサブシステム20のホストコンピュータ22へ送られる(S1001;一括配布,S1002)。このため、サブシステム20のホストコンピュータ22は、図4及び図5の処理の開始後、逐次取得処理を開始するようになってはいるものの、メッセージキュー内の動作切替メッセージを検出して、直ちに、一括取得処理を開始するので、更新反映プログラム224がこのように構成されていても問題ない。
また、前述した本実施形態のデータベースシステムにおいては、メインシステム10は一つのサブシステム20に接続されている例を説明したが、これに限定されるものではない。すなわち、サブシステム20(つまり、レプリカデータベース211)が複数存在していても構わない。このようにサブシステム20が複数存在する場合には、メインシステム10のホストコンピュータ12は、差分データ又はバッチファイルを各サブシステム20へ送信することとなる。
また、前述した本実施形態のデータベースシステムにおいては、メインシステム10とサブシステム20とがLAN及びSANにて接続される例を説明したが、これに限定されるものではない。例えば、WAN[Wide Area Network]やNAS[Network Attached Storage]などの他のプロトコルに従った通信手段によって接続されていても良い。何れにしても、メインシステム10とサブシステム20とが複数の通信手段(ネットワーク)を介して接続されていると良い。そして、バッチファイルがメインシステム10からサブシステム20へ送信される際には、最も回線負荷の低い通信手段が選択されることが望ましい。こうすれば、バッチファイルを効率よくサブシステム20へ配布することができることとなる。
(付記1)
コンピュータを、
マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データを取得するデータ取得手段,
前記マスターデータベースの各レコードについての更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別手段,
前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていると判断した場合には、前記データ取得手段が取得した差分データを、レプリカデータベースを更新するためのシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていないと判断した場合には、一定期間に前記データ取得手段が取得する差分データをファイルに格納して、そのファイルを、前記レプリカデータベースを更新するためのシステムへ所定の通信装置を介して送信する送信制御手段
として機能させる
ことを特徴とするレプリケーションプログラム。
(付記2)
前記送信制御手段は、前記レプリカデータベースを更新するためのシステムに対して異なる2以上の通信手段を介して前記通信装置が接続されている場合において、前記ファイルを当該システムへ送信するときには、通信負荷の軽い方の通信手段を介して前記ファイルを当該システムへ送信する
ことを特徴とする付記1記載のレプリケーションプログラム。
(付記3)
前記通信手段の一つは、LANである
ことを特徴とする付記2記載のレプリケーションプログラム。
(付記4)
前記通信手段の一つは、SANである
ことを特徴とする付記2記載のレプリケーションプログラム。
(付記5)
前記送信制御手段は、前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っているか否かを判断する処理を、その処理と同じ処理をその直前に行った後から所定の一定期間が経過した以後に、実行する
ことを特徴とする付記1乃至4の何れかに記載のレプリケーションプログラム。
(付記6)
マスターデータベースを含むメインシステムとレプリカデータベースを含むサブシステムとを備えるデータベースシステムであって、
前記メインシステムは、
前記マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データを取得するデータ取得部,
前記マスターデータベースの各レコードについての更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別部,
前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていると判断した場合には、前記データ取得部が取得した差分データを、前記サブシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていないと判断した場合には、一定期間に前記データ取得部が取得する差分データをファイルに格納して、そのファイルを、前記サブシステムへ所定の通信装置を介して送信する送信制御部
を備え、
前記サブシステムは、
前記メインシステムから差分データ及びファイルを受信したときには、それら差分データ及びファイル内の差分データに基づく前記レプリカデータベースの更新を、その受信した順に、実行する
ことを特徴とするデータベースシステム。
(付記7)
コンピュータを、
マスターデータベースを含むメインシステムから、前記マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データ,及び、前記マスターデータベースについて一定期間になされた更新の差分データを格納したファイルを、所定の通信装置を介して受信する受信手段,及び、
前記受信手段が前記差分データ及び前記ファイルを受信したときには、それら差分データ及びファイル内の差分データに基づく前記レプリカデータベースの更新を、その受信した順に、実行する反映手段
として機能させる
ことを特徴とする更新反映プログラム。
本実施形態のデータベースシステムの構成図 レプリケーションプログラムに従ってCPUが実行する処理の流れを示す図 レプリケーションプログラムに従ってCPUが実行する処理の流れを示す図 更新反映プログラムに従ってCPUが実行する処理の流れを示す図 更新反映プログラムに従ってCPUが実行する処理の流れを示す図
符号の説明
10 メインシステム
11 ストレージ装置
111 マスターデータベース
12 ホストコンピュータ
121 データベースプログラム
122 データベース管理ソフトウエア
122a レプリケーションプログラム
122b メッセージスプーラ
122c バッチファイルスプーラ
20 サブシステム
21 ストレージ装置
211 レプリカデータベース
22 ホストコンピュータ
221 データベースプログラム
222 メッセージキュー管理プログラム
223 バッチファイルキュー管理プログラム
224 更新反映プログラム

Claims (4)

  1. コンピュータを、
    マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表す差分データを取得するデータ取得手段,
    前記マスターデータベースの各レコードについての更新があるごとに、更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別手段,
    前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていないと判断した場合には、前記データ取得手段が取得した差分データを、レプリカデータベースを更新するためのシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っていると判断した場合には、一定期間に前記データ取得手段が取得する差分データをファイルに格納して、そのファイルを、前記レプリカデータベースを更新するためのシステムへ所定の通信装置を介して送信する送信制御手段
    として機能させる
    ことを特徴とするレプリケーションプログラム。
  2. 前記送信制御手段は、前記レプリカデータベースを更新するためのシステムに対して異なる2以上の通信手段を介して前記通信装置が接続されている場合において、前記ファイルを当該システムへ送信するときには、通信負荷の軽い方の通信手段を介して前記ファイルを当該システムへ送信する
    ことを特徴とする請求項1記載のレプリケーションプログラム。
  3. 前記送信制御手段は、前記更新頻度判別手段が前記更新頻度が所定の上限値を上回っているか否かを判断する処理を、その処理と同じ処理をその直前に行った後から所定の一定期間が経過した以後に、実行する
    ことを特徴とする請求項1又は2記載のレプリケーションプログラム。
  4. マスターデータベースを含むメインシステムとレプリカデータベースを含むサブシステムとを備えるデータベースシステムであって、
    前記メインシステムは、
    前記マスターデータベースの各レコードについてなされた更新の前後の内容の差分を表
    す差分データを取得するデータ取得部,
    前記マスターデータベースの各レコードについての更新があるごとに、更新の単位時間当たりの頻度が所定の上限値を上回っているか否かを判別する更新頻度判別部,
    前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていないと判断した場合には、前記データ取得部が取得した差分データを、前記サブシステムへ所定の通信装置を介して逐次送信し、前記更新頻度判別部が前記更新頻度が所定の上限値を上回っていると判断した場合には、一定期間に前記データ取得部が取得する差分データをファイルに格納して、そのファイルを、前記サブシステムへ所定の通信装置を介して送信する送信制御部を備え、
    前記サブシステムは、
    前記メインシステムから差分データ及びファイルを受信したときには、それら差分データ及びファイル内の差分データに基づく前記レプリカデータベースの更新を、その受信した順に、実行する
    ことを特徴とするデータベースシステム。
JP2005137243A 2005-05-10 2005-05-10 レプリケーションプログラム及びデータベースシステム Expired - Fee Related JP4708084B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005137243A JP4708084B2 (ja) 2005-05-10 2005-05-10 レプリケーションプログラム及びデータベースシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005137243A JP4708084B2 (ja) 2005-05-10 2005-05-10 レプリケーションプログラム及びデータベースシステム

Publications (2)

Publication Number Publication Date
JP2006318020A JP2006318020A (ja) 2006-11-24
JP4708084B2 true JP4708084B2 (ja) 2011-06-22

Family

ID=37538685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005137243A Expired - Fee Related JP4708084B2 (ja) 2005-05-10 2005-05-10 レプリケーションプログラム及びデータベースシステム

Country Status (1)

Country Link
JP (1) JP4708084B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5365128B2 (ja) * 2008-10-03 2013-12-11 富士通株式会社 一括登録されるデータに係る情報システム、方法、およびプログラム
JP5425448B2 (ja) * 2008-11-27 2014-02-26 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース・システム、サーバ、更新方法およびプログラム
JP2010277348A (ja) * 2009-05-28 2010-12-09 Nippon Telegr & Teleph Corp <Ntt> マスタースレーブ構成をもつデータベースを更新するデータベース更新方法、データベース更新システム、データベース更新装置、およびデータベース更新プログラム
US8364636B2 (en) * 2009-09-14 2013-01-29 International Business Machines Corporation Real time data replication
JP5585062B2 (ja) * 2009-12-04 2014-09-10 ソニー株式会社 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム
JP2012068880A (ja) * 2010-09-22 2012-04-05 Fujitsu Ltd 管理プログラム、管理装置および管理方法
JP5982940B2 (ja) * 2012-03-28 2016-08-31 富士通株式会社 管理プログラム、管理装置および情報処理システム
WO2015145536A1 (ja) 2014-03-24 2015-10-01 株式会社日立製作所 データベース管理システム及びデータベース間の同期制御方法
JP6717008B2 (ja) 2016-03-31 2020-07-01 富士通株式会社 情報生成プログラム、情報生成方法及び情報生成装置
CN110019257A (zh) * 2017-08-18 2019-07-16 北京京东尚科信息技术有限公司 主备数据库延迟时间处理方法、装置、介质和电子设备
US11675809B2 (en) * 2021-03-02 2023-06-13 International Business Machines Corporation Replicating data changes using multiple storage devices and tracking records of pending data changes stored on the storage devices
CN117369947B (zh) * 2023-10-26 2024-08-30 深圳海规网络科技有限公司 一种容器镜像的管理方法和管理系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3428842B2 (ja) * 1997-01-08 2003-07-22 株式会社日立製作所 情報処理システムおよびデータ多重化システム
JPH10320253A (ja) * 1997-03-19 1998-12-04 Fujitsu Ltd バックアップシステムおよび記録媒体
JPH10293713A (ja) * 1997-04-21 1998-11-04 Mitsubishi Electric Corp ネットワークデータ共有装置
JPH11261580A (ja) * 1998-03-12 1999-09-24 Toshiba Corp ネットワークの情報検索経路調整装置および情報検索経路調整方法
JP2004280210A (ja) * 2003-03-13 2004-10-07 Hitachi Ltd データベース情報通信制御装置

Also Published As

Publication number Publication date
JP2006318020A (ja) 2006-11-24

Similar Documents

Publication Publication Date Title
US10412170B2 (en) Retention-based data management in a network-based data store
JP4708084B2 (ja) レプリケーションプログラム及びデータベースシステム
KR102119258B1 (ko) 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법
US9256542B1 (en) Adaptive intelligent storage controller and associated methods
US9672267B2 (en) Hybrid data management system and method for managing large, varying datasets
US9792294B2 (en) Using byte-range locks to manage multiple concurrent accesses to a file in a distributed filesystem
US9646022B2 (en) Distributed change notifications for a distributed filesystem
US9805056B2 (en) Synchronizing file updates between two cloud controllers of a distributed filesystem
TWI430176B (zh) 管理持久的方法、裝置及電腦程式
US7890716B2 (en) Method of managing time-based differential snapshot
US20070220029A1 (en) System and method for hierarchical storage management using shadow volumes
US11023180B2 (en) Method, equipment and system for managing the file system
US10509739B1 (en) Optimized read IO for mix read/write scenario by chunking write IOs
US10719245B1 (en) Transactional IO scheduler for storage systems with multiple storage devices
US9684665B2 (en) Storage apparatus and data compression method
JP7130032B2 (ja) 記録装置、読取装置、記録方法、記録プログラム、読取方法、読取プログラム、及び磁気テープ
JP2006065622A (ja) スナップショットの作成方法及びプログラム並びにストレージシステム
KR20200056357A (ko) 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법
KR20100015639A (ko) 다운로드 속도에 영향을 미치지 않으면서 새로운 데이터를 차단하는 장치와 방법
WO2022257719A1 (zh) 数据库事务处理的方法、系统、电子设备及存储介质
EP4460769A1 (en) Online migration from an eventually consistent system to a strongly consistent system
US10346054B1 (en) Policy driven IO scheduler resilient to storage subsystem performance
US20120246201A1 (en) System and method for a storage system response with data migration
CN110413689B (zh) 一种内存数据库的多节点数据同步方法与装置
KR20200123299A (ko) 데이터베이스 시스템에서 효율적인 변경 데이터 캡쳐를 제공하기 위한 컴퓨터 프로그램

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071116

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110316

R150 Certificate of patent or registration of utility model

Ref document number: 4708084

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees