(57)【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合され且つローカル・データベースを有するメモリと、
新しいデータを複製データベースに追加するトランザクションについては、同期データ・レプリケーションを使用して当該トランザクションを前記複製データベースに送信し、前記複製データベース内のデータを更新するトランザクションについては、非同期データ・レプリケーションを使用して当該トランザクションを前記複製データベースに送信するレプリケーション機構とを備える、装置。
【請求項２】
前記複製データベースに新しいデータを追加するための前記トランザクションがデータベース「挿入」動作であり、前記複製データベース内のデータを更新するための前記非同期レプリケーションを使用したトランザクションがデータベース「更新」動作である、請求項１記載の装置。
【請求項３】
前記複製データベースが、前記少なくとも１つのプロセッサから遠隔的に位置する他のコンピュータ・システムに関連する、請求項１記載の装置。
【請求項４】
前記複製データベースが、ハイブリッド・レプリケーションを使用して更新されるレーダ情報を保持する、請求項１記載の装置。
【請求項５】
複製データベースのハイブリッド・レプリケーションのためのコンピュータ実装方法であって、
（ａ）データベース・トランザクションが、前記複製データベースに新しいデータを追加するためのトランザクションであるか、又は前記複製データベース内のデータを更新するためのトランザクションであるかを決定するステップと、
（ｂ）データベース・トランザクションが、前記複製データベース内のデータを更新するためのトランザクションであると決定される場合は、当該データをローカルに更新し且つ当該データを前記複製データベースに非同期的に複製するステップと、
（ｃ）データベース・トランザクションが、前記複製データベースに新しいデータを追加するためのトランザクションであると決定される場合は、当該新しいデータをローカルに追加し且つ当該新しいデータを前記複製データベースに同期的に複製するステップとを有し、
前記ステップ（ａ）ないし（ｃ）が、コンピュータ・メモリ内に格納可能なコンピュータ・ソフトウェア・プログラムとして実装され且つコンピュータ・プロセッサによって実行される、方法。
【請求項６】
前記複製データベースに新しいデータを追加するための前記トランザクションがデータベース「挿入」動作であり、前記複製データベース内のデータを更新するためのトランザクションがデータベース「更新」動作である、請求項５記載の方法。
【請求項７】
前記複製データベースが、前記コンピュータ・プロセッサから遠隔的に位置する他のコンピュータ・システムに関連する、請求項５記載の方法。
【請求項８】
前記複製データベースが、ハイブリッド・レプリケーションを使用して更新されるレーダ情報を保持する、請求項５記載の方法。
【請求項９】
前記ステップ（ｃ）が、前記同期レプリケーションが成功したか否かを決定することを含み、不成功であったことを決定すれば、前記同期レプリケーションを「Ｎ」回（但し、Ｎは１以上の正の整数）再試行することを含む、請求項５記載の方法。
【請求項１０】
コンピュータ・ソフトウェア・プログラム形式のレプリケーション機構であって、当該レプリケーション機構がコンピュータ・メモリ内に格納可能であって且つコンピュータ・プロセッサによって実行されるとき、
（ａ）データベース・トランザクションが、データベースに新しいデータを追加するためのトランザクションであるか、又は当該データベース内のデータを更新するためのトランザクションであるかを決定するステップと、
（ｂ）データベース・トランザクションが、前記データベース内のデータを更新するためのトランザクションであると決定される場合は、当該データをローカルに更新し且つ当該データを複製データベースに非同期的に複製するステップと、
（ｃ）データベース・トランザクションが、前記データベースに新しいデータを追加するためのトランザクションであると決定される場合は、当該新しいデータをローカルに追加し且つ当該新しいデータを前記複製データベースに同期的に複製するステップとが実行されるコンピュータ・ソフトウエア・プログラム。
【請求項１１】
前記複製データベースに新しいデータを追加するための前記トランザクションがデータベース「挿入」動作であり、前記複製データベース内のデータを更新するためのトランザクションがデータベース「更新」動作である、請求項１０記載のコンピュータ・ソフトウエア・プログラム。
【請求項１２】
前記複製データベースが、前記コンピュータ・プロセッサから遠隔的に位置する他のコンピュータ・システムに関連する、請求項１０記載のコンピュータ・ソフトウエア・プログラム。
【請求項１３】
前記複製データベースが、ハイブリッド・レプリケーションを使用して更新されるレーダ情報を保持する、請求項１０記載のコンピュータ・ソフトウエア・プログラム。
【請求項１４】
前記ステップ（ｃ）が、同期的に複製することに成功したか否かを決定することを含み、不成功であったことを決定すれば、前記同期レプリケーションを「Ｎ」回（但し、Ｎは１以上の正の整数）再試行することを含む、請求項１０記載のコンピュータ・ソフトウエア・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータ資源のレプリケーション（replication）に係り、さらに詳細に説明すれば、高速で且つ効率的なリアルタイムのデータ・レプリケーションを提供するために同期方法及び非同期方法を組み合わせるデータ・レプリケーションに係る。
【背景技術】
【０００２】
高信頼性で且つ高速のデータ処理システムに対する要請は、増加の一途をたどっている。これらのデータ処理システムは、ハードウェア障害、ソフトウェア障害、自然災害等によって引き起こされる中断に直面する際に、いつでも重要なデータを提供することができるデータ・リポジトリを必要とする。必要なデータ使用可能性を達成するために、多くのデータ・システムは、重要なデータをバックアップし且つ格納するために遠隔データ・リポジトリを使用する。遠隔データ・リポジトリへの高速データ・バックアップを行うための通常の手段は、データベース・レプリケーションによる。
【０００３】
データベース・レプリケーションを用いる場合、データベース管理システムは、十分な情報に基づいて、データを複数のローカル・ストレージ装置に書き込むべきか又はローカル・ストレージ装置及び遠隔ストレージ装置に書き込むべきかという決定を行うことができるが、そのような同期は、著しい性能低下を招くことになる。データを複数のストレージ装置に同時に複製する技術は、ミラーリングとしても知られている。一般に、データ・レプリケーションは、同期又は非同期である。同期データ・レプリケーションでは、複製データベース（replicated database）は、１次データベース内の現情報で常に更新される。このようにして、重要なデータは、これをいつでもアクセス可能にすることができる。データベースの更新ごとに遠隔サイトへの大量のデータ伝送が必要である場合、トランザクション及びレコードの一貫性を保証することは、しばしばデータ伝送の遅れに帰着する。従って、アプリケーションの性能は、許容できないレベルにまで低下することがある。
【０００４】
また、データベース・レプリケーション・システムは、非同期レプリケーションを使用する。非同期システムでは、複製データベース内のデータは、バッチに分けて又は指定された間隔で更新される。非同期システムは、より少ないシステム資源を使用するが、１次データベースの障害が生じる場合、複製データベース上の「データ損失なし」（no data loss）を保証しない。従って、複製データベースにおける「データ損失なし」を必要とするアプリケーションは、しばしば非同期レプリケーションを使用することができず、そのため、より遅い同期レプリケーション技術に依存する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非同期システムは、より高速で、より少ないシステム資源を使用するが、複製データベース上の「データ損失なし」を保証しない。同期レプリケーション・システムは、「データ損失なし」を保証することができるが、より低速で、システム資源に対してより高いコストを有する。従って、非同期及び同期データ・レプリケーションの間には、トレードオフがある。
【課題を解決するための手段】
【０００６】
本発明は、同期及び非同期レプリケーションの組み合わせを使用して、ローカル・データベースから複製データベースへのデータ・レプリケーションを行うことに向けられている。同期及び非同期レプリケーションの間の典型的なトレードオフは、ハイブリッド・レプリケーションを使用することにより最適化される。このハイブリッド・レプリケーションとは、新しいデータを挿入するために同期レプリケーションを使用し、そして既存データを更新するために非同期レプリケーションを使用することを意味する。このように、同期及び非同期レプリケーションを組み合わせて使用すると、効率的な複製データベースを提供することができる。この複製データベースは、データ更新における多少の遅れを許容することができるが、新しいデータの「損失なし」を必要とする。
【発明の効果】
【０００７】
本発明は、同期及び非同期レプリケーションを組み合わせて使用することにより、効率的な複製データベースを提供することができるという効果を奏する。この複製データベースは、データ更新における多少の遅れを許容することができるが、新しいデータの「損失なし」を必要とする。
【図面の簡単な説明】
【０００８】
【図１】本発明に従った、データベースを複製するためのハイブリッド・レプリケーション機構を備えるコンピュータ・システムのブロック図である。
【図２】従来技術に従った、レプリケーション・システムのブロック図である。
【図３】ハイブリッド・データ・レプリケーションを使用する、レプリケーション・システムのブロック図である。
【図４】本発明に従った、ハイブリッド・データ・レプリケーションを使用してデータベースを複製するための方法を示すフローチャートである。
【発明を実施するための形態】
【０００９】
当業者には明らかなように、本発明は、システム、方法又はコンピュータ・プログラムとして具体化することができる。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）又はソフトウェア及びハードウェア要素を組み合わせた実施形態の形式を取ることができ、これらの全てを一般に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本発明は、コンピュータ可読プログラム・コードとして、（１つ以上のコンピュータ可読媒体内に格納可能な態様で具体化することができる、）コンピュータ・プログラムの形式を取ることができる。
【００１０】
１つ以上のコンピュータ可読媒体の任意の組み合わせを使用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。例えば、コンピュータ可読ストレージ媒体は、電子、磁気、光学、電磁気、赤外線、半導体式のシステム若しくは装置又はこれらの任意の適切な組み合わせ等とすることができる。コンピュータ可読ストレージ媒体の特定の例は、可搬式のコンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、可搬式のコンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ装置、磁気ストレージ装置又はこれらの任意の適切な組み合わせ等を含む。本明細書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム等に関連して又はこれらによって使用するためのプログラムを保持し又は格納することができる、任意の有形的媒体とすることができる。コンピュータ可読信号媒体は、伝搬されるデータ信号の形式を有することもできるが、その場合には、ベースバンド内に又は搬送波の一部として、コンピュータ可読プログラム・コードを具体化することができる。かかる伝搬される信号は、電磁気、光学、又はこれらの任意の適切な組み合わせ等を含む、種々の形式のうち任意の形式を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム又は装置等に関連して又はこれらによって使用するためのプログラムを通信し、伝搬し、移送することができる、任意のコンピュータ可読媒体とすることができる。コンピュータ可読媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦ、又はこれらの任意の適切な組み合わせ等を含む、適切な任意の媒体を使用して伝送することができる。
【００１１】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Sun Microsystemの商標または登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語及び「Ｃ」プログラミング言語又は同様のプログラミング言語のような通常の手続き的プログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書くことができる。プログラム・コードは、独立のソフトウェア・パッケージとしてユーザ・コンピュータ上で完全に実行することができ、その一部をユーザ・コンピュータ上で且つ他の一部を遠隔コンピュータ上で実行することができ、或いは遠隔コンピュータ又はサーバ上で完全に実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通してユーザ・コンピュータに接続することができ、或いはその接続を（例えば、インターネット・サービス・プロバイダを使用するインターネットを通して）外部コンピュータに行うことができる。以下では、本発明の実施形態に従った、方法、装置（システム）及びコンピュータ・プログラムのフローチャート又はブロック図を参照して、本発明を説明する。フローチャート又はブロック図の各ブロック、複数ブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができる。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサに提供すると、当該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行される諸命令は、フローチャート又はブロック図のブロックで指定された機能／行為を実装するための手段を作成する。また、これらのコンピュータ・プログラム命令をコンピュータ可読媒体内に格納すると、当該コンピュータ可読媒体内に格納された諸命令が、フローチャート又はブロック図のブロックで指定された機能／行為を実装するための命令を含む製品を生産することを目的として、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置に対し特定の態様で機能するように指示することができる。また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置にロードすると、当該コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で実行される諸命令が、フローチャート又はブロック図のブロックで指定された機能／行為を実装するためのプロセスを提供することを目的として、一のコンピュータ実装方法を生成するように当該コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で一連の動作ステップを実行させることができる。
【００１２】
図１を参照して説明する。コンピュータ・システム１００は、本明細書に開示するハイブリッド・レプリケーション機構を含む、コンピュータ・システムの１つの適切な実装である。コンピュータ・システム１００は、インターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ (IBM Corporation の商標)）の「ｉＳｅｒｉｅｓ」(IBM Corporation の商標)コンピュータ・システムである。しかし、当業者には明らかなように、本発明は、コンピュータ・システムが複雑な複数ユーザ・コンピューティング装置、単一ユーザ・ワークステーション又は組み込み式制御システムであるか否かに拘わらず、任意のコンピュータ・システムに同等に適用することができる。図示のように、コンピュータ・システム１００は、１つ以上のプロセッサ１１０、主メモリ１２０、大容量ストレージ・インタフェース１３０、ディスプレイ・インタフェース１４０及びネットワーク・インタフェース１５０を備える。これらのシステム・コンポーネントは、システム・バス１６０を通して、相互接続される。大容量ストレージ・インタフェース１３０は、コンピュータ可読媒体（例えば、直接アクセス・ストレージ装置１５５）を有する大量ストレージ装置をコンピュータ・システム１００に接続するために使用される。特定の１つのタイプの直接アクセス・ストレージ装置１５５は、ＣＤ−ＲＷ１９５を対象としてデータの読み取り及び書き込みを行うことができるＣＤ−ＲＷドライブである。
【００１３】
好ましくは、主メモリ１２０は、オペレーティング・システム１２１を保持する。オペレーティング・システム１２１は、「ｉ５／ＯＳ」(IBM Corporation の商標)として当分野で公知のマルチタスク・オペレーティング・システムである。しかし、当業者には明らかなように、本発明の概念及び範囲は、任意の１つのオペレーティング・システムに制限されない。さらに、主メモリ１２０は、データベース・マネージャ１２２、ハイブリッド・レプリケーション機構１２３及びローカル・データベース１２４の少なくとも一部を保持する。ローカル・データベース１２４は、直接アクセス・ストレージ装置１５５内に格納され、必要に応じて、ローカル・データベース１２４の部分を主メモリ１２０にロードすることができる。主メモリ１２０内のこれらのエンティティについては、以下でさらに詳細に説明する。
【００１４】
コンピュータ・システム１００は、周知の仮想アドレッシング機構を使用する。すなわち、コンピュータ・システム１００の諸プログラムは、主メモリ１２０及びＤＡＳＤ装置１５５のような複数のより小さなストレージ・エンティティへのアクセスを有するのではなく、あたかも大容量の単一ストレージ・エンティティのみへのアクセスを有するかのように動作することができる。従って、オペレーティング・システム１２１、データベース・マネージャ１２２、ハイブリッド・レプリケーション機構１２３及びローカル・データベース１２４は、主メモリ１２０内に存在するように図示されているが、当業者には明らかなように、これらのプログラムは、必ずしもその全てが主メモリ１２０に同時に保持されるとは限らない。また、本明細書では、「メモリ」という用語は、一般に、コンピュータ・システム１００の仮想メモリ全体を参照するために使用され、コンピュータ・システム１００に結合された他のコンピュータ・システムの仮想メモリを含み得ることに留意されたい。
【００１５】
プロセッサ１１０は、１つ以上のマイクロプロセッサ又は集積回路から構築することができる。プロセッサ１１０は、主メモリ１２０内に格納されたプログラム命令を実行する。主メモリ１２０は、プロセッサ１１０がアクセスし得るプログラム及びデータを格納する。コンピュータ・システム１００が起動する場合、プロセッサ１１０は、オペレーティング・システム１２１を構成するプログラム命令を最初に実行した後、データベース・マネージャ１２２及びハイブリッド・レプリケーション機構１２３を構成するプログラム命令を実行する。
【００１６】
コンピュータ・システム１００は、単一のプロセッサ及び単一のシステム・バスだけを有するように図示されているが、当業者には明らかなように、複数のプロセッサ及び／又は複数のバスを有するコンピュータ・システムを使用して仮想化マネージャを実現することができる。さらに、使用されるインタフェースの各々は、好ましくは、プロセッサ１１０から計算主体（compute-intensive）の処理をオフロードするために使用される別個の、完全にプログラムされたマイクロプロセッサを含む。しかし、当業者には明らかなように、これらの機能は、Ｉ／Ｏアダプタを使用して同様に実行することができる。
【００１７】
ディスプレイ・インタフェース１４０は、１つ以上のディスプレイ１６５をコンピュータ・システム１００に直接的に接続するために使用される。これらのディスプレイ１６５は、非知能（すなわち、ダム）端末又は完全にプログラム可能なワークステーションとすることができ、システム管理者及びユーザに対しコンピュータ・システム１００と通信する能力を提供するために使用される。ディスプレイ・インタフェース１４０は、１つ以上のディスプレイ１６５との通信をサポートするために設けられているが、コンピュータ・システム１００は、必ずしもディスプレイ１６５を必要としないことに留意されたい。というのは、ユーザ及び他のプロセスとの必要な全ての対話は、ネットワーク・インタフェース１５０を介して行うことができるからである。
【００１８】
ネットワーク・インタフェース１５０は、ネットワーク１７０を介して、コンピュータ・システム１００を他のコンピュータ・システム又はワークステーション１７５に接続するために使用される。好ましくは、かかる他のコンピュータ・システム１７５は、１つ以上の複製データベース１２５を含む。ネットワーク・インタフェース１５０は、ネットワーク１７０が現在のアナログ若しくはデジタル技術から成るか又は将来の特定のネットワーキング機構から成るか否かに拘わらず、電子装置を相互接続するための任意の適切な方法を広く表す。さらに、ネットワークを実装するために、種々のネットワーク・プロトコルを使用することができる。これらのプロトコルは、コンピュータがネットワークを介して通信することを可能にするための専用コンピュータ・プログラムである。ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネット・プロトコル）は、適切なネットワーク・プロトコルの１例である。
【００１９】
図２は、従来技術に従った、データ・レプリケーションを有するコンピュータ・システム２００のブロック図を示す。システム２００は、ネットワーク２１２と接続された２つのコンピュータ２１０を含む。各コンピュータ２１０は、レプリケーション機構２１４を含み、これらのレプリケーション機構２１４は、一緒にローカル・データベース２１６を複製データベース２１８に複製する。ローカル・データベース２１６は、同期レプリケーション２２０又は非同期レプリケーション２２２を使用して、複製データベース２１８に複製することができる。従来技術のシステム２００は、アプリケーションのニーズ及びシステム・ハードウェア全体の制約に依存して、同期レプリケーション２２０又は非同期レプリケーション２２２を使用する。しかし、従来技術のシステム（例えば、図２のシステム２００）は、同期及び非同期レプリケーションのうち何れか一方を使用するに過ぎないことに留意されたい。従来技術のシステムは、本明細書に開示された態様で同期及び非同期レプリケーションの両方を使用しない。
【００２０】
図３は、本発明のハイブリッド・データ・レプリケーションを使用する、コンピュータ・システム３００のブロック図を示す。ハイブリッド・データ・レプリケーションは、同期及び非同期レプリケーションの組み合わせを使用することにより、効率的な複製データベースを提供する。この複製データベースは、データ更新における多少の遅れを許容することができるが、新しいデータの「損失なし」を必要とする。システム３００は、２つのコンピュータを含む。これらのコンピュータは、図１に示されるコンピュータ１００の諸特徴を含み、図１のコンピュータ１００及び１７５に対応する。コンピュータ１００及び１７５は、ネットワーク１７０と接続される。コンピュータ１００及び１７５は、ハイブリッド・レプリケーション機構１２３及び３１２を含み、これらのハイブリッド・レプリケーション機構１２３及び３１２は、一緒にローカル・データベース１２４を複製データベース１２５に複製する。ローカル・データベース１２４は、ハイブリッド・レプリケーション３１０を使用して、複製データベース１２５に複製される。本明細書においてハイブリッド・レプリケーションとは、データベース・メモリに新しいデータを追加するトランザクション（例えば、「挿入」動作３１４）のために同期レプリケーションが使用され、そしてデータベース・メモリ内の既存データを更新又は置換するトランザクション（例えば、「更新」動作３１６）のために非同期レプリケーションが使用されることを意味する。本明細書において「挿入」動作とは、新しいデータベース・レコードをデータベースに挿入するデータベース動作（データベース・トランザクション）である。同様に、「更新」動作とは、データベース内の既存レコードを変更又は更新するデータベース動作（データベース・トランザクション）である。請求項に記載された発明は、前述のメモリ「更新」及び「挿入」動作と同様の特性を有する他のデータ・メモリ動作まで明示的に及んでいる。
【００２１】
以下、前述のハイブリッド・データベース・レプリケーションを使用する１例を説明する。この例のためのアプリケーションは、敵の目標について敵の位置を３０ミリ秒ごとにスイープする軍事用レーダ・システムである。この状況では、最大の関心事は、全ての新しい脅威が（当該脅威を失わせる危険を冒さずに）レーダ・ディスプレイ内に現れるということである。レーダ・システムによって検出された敵の脅威は、ローカル・データベース内に格納される。データベース・レプリケーション・システムは、１次データベースの損失に備えて、当該脅威情報を保持するデータベースを複製するために使用される。もしシステム障害があれば、複製データベースは、１次システム上の全ての目標を保持しなければならない。当該脅威の位置は、次のスイープ上で更新されるであろう。従って、最新の位置データは重要ではない。
【００２２】
前記レーダの例を継続して説明する。時間ｔ＝０で、レーダ・システムが脅威Ａ及びＢを読み取るものと仮定する。これらの脅威及びそれらの座標は、「挿入」トランザクションによってバックアップ・データベース上に同期的に複製される。３０ミリ秒のスイープで、レーダは、目標Ａ及びＢのための新しい位置を検出する。これらの新しい座標は、「更新」トランザクションによって非同期的に複製される。６０ミリ秒のスイープで、レーダは、目標Ａ及びＢのための新しい位置及び新しい目標Ｃを検出する。目標Ａ及びＢのための新しい座標は、「更新」トランザクションによって非同期的に複製され、新しい目標Ｃのための座標は、同期的に複製される。時間＝６９ミリ秒で、１次データベース上の障害が生じるものと仮定する。その結果、レプリケーション・システム上のデータが読み取られる。バックアップ・データは、全ての目標のためのデータを保持するが、目標Ａ及びＢのための座標は、前記障害の前に完了していない非同期トランザクションに起因して、古くなっていることがある。この古いデータは、重要な問題ではないが、全ての目標がバックアップ・データベース上で把握されていることが重要である。次のレーダ・スイープで、目標Ａ、Ｂ及びＣのための新しい座標は、「更新」トランザクションによって複製データベースで更新される。前述の説明は、以下の表に要約される。
【００２３】
【表１】
0005496839.tif 000002
【００２４】
図４は、同期及び非同期レプリケーションの組み合わせを使用して、ローカル・データベースから複製データベースへのデータ・レプリケーションを行うための方法４００を示す。好ましくは、方法４００の諸ステップは、データベースを複製データベースに複製するデータベース・トランザクションを処理するために、ハイブリッド・レプリケーション機構１２３（図１及び図３）と共に、ハイブリッド・レプリケーション機構３１２（図３）によって行われる。先ず、トランザクションが完了しているか否かを決定する（ステップ４１０）。もし、トランザクションが完了していれば（ステップ４１０＝ｙｅｓ）、この方法は終了する。そうでなければ（ステップ４１０＝ｎｏ）、トランザクションが「挿入」であるか否かを決定する（ステップ４２０）。もし、トランザクションが「挿入」でなければ（ステップ４２０＝ｎｏ）、トランザクション・データをローカルに更新し、非同期レプリケーションを使用して、複製データベースに複製する（ステップ４３０）。次に、トランザクション完了とマークして、ステップ４１０に進む（ステップ４４０）。もし、トランザクションが「挿入」であれば（ステップ４２０＝ｙｅｓ）、トランザクション・データをローカル・データベースに挿入し、同期レプリケーションを使用して、データを複製データベースに複製する（ステップ４５０）。次に、レプリケーションが成功であるか否かを決定する（ステップ４６０）。もし、同期レプリケーションが成功したのであれば（ステップ４６０＝ｙｅｓ）、トランザクション完了とマークして、ステップ４１０に進む（ステップ４４０）。もし、同期レプリケーションが成功しなかったのであれば（ステップ４６０＝ｎｏ）、レプリケーションが再試行された回数をチェックする（ステップ４７０）。もし、再試行回数がＮに等しければ（ステップ４７０＝ｙｅｓ）、エラーを報告する（ステップ４８０）。そうでなければ（ステップ４７０＝ｎｏ）、レプリケーションを再試行し（ステップ４９０）、ステップ４６０に戻る。図４における数Ｎは、エラーを報告する前のレプリケーションの再試行回数を決定するための、整数のしきい値であることに留意されたい。
【００２５】
図面のうちフローチャート及びブロック図は、本発明の種々の実施形態に従った、システム、方法及びコンピュータ・プログラムの可能な実装のアーキテクチャ、機能性及び動作を例示する。この点に関し、フローチャート又はブロック図の各ブロックは、指定された論理機能を実装するための１つ以上の実行可能命令を含む、モジュール、セグメント又はコードの部分を表すことができる。また、幾つかの代替実装では、ブロック内に表記された機能は、図面に示す順序とは異なる順序で生じることができる。例えば、図面に順次に示された２つのブロックは、それらの機能性に依存して、実質的に同時に実行することができ、或いは逆の順序で実行することもできる。さらに、ブロック図又はフローチャートの各ブロック及び複数ブロックの組み合わせは、指定された機能又は行為を実行する専用のハードウェア・ベースのシステム又は専用ハードウェア及びコンピュータ命令の組み合わせによって実装することができる。
【００２６】
前述のように、データベース・マネージャは、ローカル・データベースを複製データベースに複製するために、同期及び非同期レプリケーションを組み合わせるハイブリッド・レプリケーション機構を使用する。このように、同期及び非同期レプリケーションを組み合わせて使用すると、効率的な複製データベースを提供することができる。この複製データベースは、データ更新における多少の遅れを許容することができるが、新しいデータの「損失なし」を必要とする。
【００２７】
当業者には明らかなように、請求項の範囲内で多くの変形を施すことができる。従って、本明細書では、本発明の特定の実施形態が開示され説明されたが、当業者にとっては、本発明の精神及び範囲から逸脱することなく、形式及び詳細に係る追加の変更をなし得ることは明らかであろう。
【符号の説明】
【００２８】
１００・・・コンピュータ
１１０・・・プロセッサ
１２０・・・主メモリ
１２２・・・データベース・マネージャ
１２３・・・ハイブリッド・レプリケーション機構
１２４・・・ローカル・データベース
１２５・・・複製データベース
１５５・・・直接アクセス・ストレージ装置
１７５・・・他のコンピュータ
３１２・・・ハイブリッド・レプリケーション機構
３１４・・・「挿入」動作
３１６・・・「更新」動作
【図１】
0005496839.tif 000003
【図２】
0005496839.tif 000004
【図３】
0005496839.tif 000005
【図４】
0005496839.tif 000006