JP2007207250A - ソフトウェア複製 - Google Patents

ソフトウェア複製 Download PDF

Info

Publication number
JP2007207250A
JP2007207250A JP2007022555A JP2007022555A JP2007207250A JP 2007207250 A JP2007207250 A JP 2007207250A JP 2007022555 A JP2007022555 A JP 2007022555A JP 2007022555 A JP2007022555 A JP 2007022555A JP 2007207250 A JP2007207250 A JP 2007207250A
Authority
JP
Japan
Prior art keywords
memory
memory area
processing system
state
standby
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.)
Granted
Application number
JP2007022555A
Other languages
English (en)
Other versions
JP4563412B2 (ja
Inventor
Walter P Christmas
ピー.クリスマス ウォールター
James E Rhodes
イー.ロードス ジェイムズ
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.)
Avaya Technology LLC
Original Assignee
Avaya Technology LLC
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 Avaya Technology LLC filed Critical Avaya Technology LLC
Publication of JP2007207250A publication Critical patent/JP2007207250A/ja
Application granted granted Critical
Publication of JP4563412B2 publication Critical patent/JP4563412B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】選択された期間にアクティブ処理システム内のシャドウイングされるアプリケーション・プロセスによってメモリのどの部分が変更されたかを動的に追跡できるシャドウイング方法を提供すること。
【解決手段】書き込み障害を使用してアクティブ・プロセッサよって変更されたメモリ領域を追跡するソフトウェア複製処理を提供する。1つの構成では、アプリケーション・プロセスに対応するすべてのページの状態が「ロック(locked)」に初期設定される。アプリケーション・プロセスがロックされたページの1つに書き込もうとすると、プロセッサは書き込み障害を検出する。こうした障害を使用して、プライマリ処理システムとバックアップ処理システムとの最新の同期以降に変更されたメモリ領域を識別し、追跡する。
【選択図】図1

Description

本発明は、一般に複製高信頼性処理システム(replicated high−reliability processing systems)に関し、より詳細には複製メモリ・システム(duplicated−memory systems)に関する。
本出願は、参照により本明細書に組み込まれている、2006年2月1日にRhodes等によって出願された同名の米国仮出願第60/764,718号の優先権を主張する。
高信頼性処理システムでは、多くの場合、システム内でプロセッサが単一障害点(SPOF:Single Point of Failure)にならないように、プロセッサ(プロセッサ・メモリを含む)の複製が必要である。通常、1台のプロセッサはアクティブでシステムを実行し、もう1台のプロセッサは「スタンバイ」モードに維持され、アクティブ・プロセッサで実行されるメモリ書き込みトランザクションのコピーで継続的に更新される(この更新プロセスは「シャドウイング」と呼ばれる)。アクティブ・プロセッサに障害が発生すると、システムはスタンバイ・プロセッサに切り替わり、スタンバイ・プロセッサは障害が発生した時点でのアクティブ・プロセッサの状態を把握しているため、システムが処理するタスクは実質的に障害なく継続される。
アクティブ・プロセッサに障害が発生したときにスタンバイ・プロセッサがシステムの操作を続行するために実際に必要なのは一部のデータにすぎない場合でも、一般的に使用されるシャドウイングの方法ではアクティブ・プロセッサからスタンバイ・プロセッサのメモリにすべてのデータをコピーする。高性能処理システムでは、こうしたシャドウイングの方法が重大なボトルネックになってきている。この方法では、通常、アクティブ・プロセッサからスタンバイ・プロセッサへのデータ転送はアクティブ・プロセッサでの正規のメモリ書き込み操作に比べて時間がかかるので、システム全体のパフォーマンスが低下する。
シャドウイングの1つの方法として、「ハードウェア支援(hardware−assisted)複製」または「ハードウェア複製」と呼ばれるものがある。ハードウェア複製では、プライマリ・プロセッサとスタンバイ・プロセッサとの間で行われる複製操作をハードウェアで制御する。アプリケーション・プロセス自体は共有メモリにのみアクセスする。複製マネージャは、メモリを入力/出力空間にマップし、ハードウェアはシャドウイングされた情報のスタンバイ・プロセッサへの送信を処理する。ハードウェア複製はソフトウェア・プロセスへの影響を最小限に抑え、システムのパフォーマンス・レベルを向上し、ソフトウェア開発コストへの影響を最小限に抑えることはできるが、多くの場合、カスタム・ハードウェア・ボードが必要であり、ハードウェア開発とハードウェア互換性の維持にコストがかかり、メモリから入力/出力バスへのマッピングによる経験的な制約が必要である。
もう1つ知られているシャドウイングの方法として、「トランザクションベースの(transaction−based)複製」または「ソフトウェア複製」と呼ばれるものがある。ソフトウェア複製では、アクティブ・プロセッサは自らがどの機能を実行しているかについての情報をスタンバイ・プロセッサに送信し、スタンバイ・プロセッサはこうした機能を複製し、このプロセスで自らのメモリの状態をアクティブ・プロセッサの状態に更新する。ハードウェアの影響は非常に小さく、サーバーに依存しないが、アクティブ・プロセッサからスタンバイ・プロセッサへのトランザクション・チャネルが必要である以外に、この方法の複雑性はソフトウェアにある。この複雑性の原因は、アプリケーションのすべてのコードが複製機能を実行できる必要があり、複製機能をアクティブに管理する必要があることである。ソフトウェア複製では、複製処理のすべての側面を実行するために、大規模な中央処理装置すなわちCPU(Central Processing Unit)リソースを必要とする可能性がある。
米国仮出願第60/764,718号
先行技術に欠けているのは、選択された期間にアクティブ処理システム内のシャドウイングされるアプリケーション・プロセスによってメモリのどの部分が変更されたかを動的に追跡できるシャドウイング方法である。
以上およびその他のニーズは、本発明の多様な実施形態および構成によって対処される。本発明は、一般に、選択または指定された複数のメモリ領域(たとえば、ロケーションまたはページなどのブロック)の状態を制御することによって、シャドウイングされるアプリケーション・プロセスによる書き込み操作を追跡する方法を目的とする。言うまでもないが、「ページ」は選択されたサイズのメモリのセグメントを表しており、通常はホスト・プロセッサのアトミック・サイズ(atomic size)と同じである。ページのサイズは一般的には4,000バイト前後である。通常、マイクロプロセッサはメモリ・セグメントを個別に管理しており、必要に応じて(要求あり次第)コードとデータのページを物理メモリにスワップすることによって、より大きなメモリ資源(endowment)をシミュレートする。
1つの構成では、アプリケーション・プロセスに対応する(またはアプリケーション・プロセスで使用する)すべてのページの状態が「ロック(locked)」(たとえば読み取り専用の状態)に初期設定される。アプリケーション・プロセスがロックされたページの1つに書き込もうとすると、プロセッサは書き込み障害を検出する。こうした障害を使用して、プライマリ処理システムとバックアップ処理システムとの最新の同期以降に変更されたメモリ領域を識別し、追跡する。障害に応答して、その特定のメモリ・ページの状態が「アンロック(unlocked)」の状態(たとえば読み出し/書き込みの状態)に変更される。これで、アプリケーション・プロセスは特定のメモリ・ページにデータを書き込むことができるようになる。こうしたプロセスは、アプリケーション・プロセスが情報を処理するメモリ・ページごとに繰り返される。
選択された間隔で、書き込まれたメモリ・ページまたは変更されたメモリ・ページの情報が収集され、バックアップ処理システムに転送される。さらにバックアップ処理システムは自らのメモリ内の該当するロケーションにこうした変更を複製する。言うまでもないが、スタンバイ処理システムのメモリ内の各ロケーションには、プライマリ処理システムの対応するメモリ領域内ですでに変更された情報のミラー・イメージが含まれる。依然として「ロック」された状態にあるメモリ領域は、2つの処理システム間で最新のデータ同期以降変更されていないので、通常、バックアップ処理システムへのシャドウイングは行われない。
この構成では、本発明は通常はメモリ保護領域の設定に使用されるプロセッサの特性を使用して、メモリ領域を第1の状態(たとえば読み取り専用)に設定し、そのメモリ領域を変更しようとした場合にプロセッサからシャドウイング・ロジックに通知させる。プロセッサの通知は、メモリ領域をスタンバイ処理システムにシャドウイングまたは複製するためのトリガである。換言すれば、本発明は選択されたメモリ領域への変更を阻止することによって、逆のことをする、つまりメモリ領域の変更について通知を受信してその変更を許可するための完全なメカニズムを使用する。したがって、このシャドウイング・メカニズムはプロセッサに組み込まれたメモリ管理機能を使用してアクティブ処理システムによる書き込みを検出し、複製するサポートだけでなく、アプリケーションの操作に対して透過的である。
本発明はソフトウェア複製の形式であり、複製プロセッサ環境においてアクティブ・プロセッサから1つまたは複数のスタンバイ・プロセッサにプロセッサ・データを転送し、どのデータを転送し、どのデータを転送しないかを管理できるようにするための新しい方法を提供できる。これで、メモリのどの領域がシャドウイングされるかについての指定を動的に変更できるようにし、シャドウイングを実行するのに必要な帯域幅を縮小することによって、スタンバイ・プロセッサに転送する必要のあるシステムの書き込みの回数全体を削減できるので、したがって直ちにアクティブ・プロセッサのパフォーマンス向上が見られる。処理システムのトランザクションが小規模な(たとえば1ワードの)ハードウェア支援の複製とは異なり、ソフトウェア複製のページ・サイズは不適切なコーディング方法や大規模なデータ操作によってより大きな影響を受けやすい。このメカニズムでは、メモリ領域への書き込みの頻度も確認できるので、シャドウイングされるアプリケーション・プロセスのコードに埋め込まれたコード・ポイントまたは「フック」でソフトウェア複製のパフォーマンスに悪影響を及ぼすもの(一部またはすべて)を削除することもできる。
このメカニズムによって、シャドウイングの動的な制御が可能になる。シャドウイングを動的に制御することによって、さらにシステムはたとえば「ソフト」スイッチのような機能をサポートできるようになる。ソフト・スイッチはアクティブ・プロセッサとスタンバイ・プロセッサが同等のメモリ・イメージを備える場合に機能し、アクティブ・プロセッサが新しいアクティブ・プロセッサ(以前のスタンバイ・プロセッサ)に制御を引き渡した後、スタンバイ・プロセッサは直ちに命令の実行を開始する。これで、1台のプロセッサからもう1台のプロセッサにシステムの制御をシームレスに転送できるようになる。
1つのエンティティ(たとえばプログラム)にメモリ領域が割り当てられると(たとえばアクティブ・プロセッサのオペレーティング・システムによって)、このエンティティに割り当てられたメモリ領域がシャドウイングされるかどうかの決定が可能になる。この決定により、メモリ領域はロックの状態(シャドウイングされる場合)またはアンロックの状態(シャドウイングされない場合)に初期設定される。
本発明では、複製システム(メモリ領域の状態を制御する)以外のすべてのソフトウェアはシャドウイングがどのように実行されるかについて知っている必要はない。したがって、本発明はアクティブ・プロセッサに関するリアルタイムの要件を緩和できる。それ以外の場合、アクティブ・プロセッサは複製を必要とするすべての機能に関するトランザクションベースの複製メッセージを生成する必要がある。さらに、本発明ではメモリのどの領域がシャドウイングされ、どの領域がシャドウイングされないかをメモリ領域の状態によって把握しているので、シャドウイングに関する判断はアプリケーション・プロセス開発者には「非公開」である。したがって、アプリケーション・プロセスのコードを記述する上で複製トランザクションを実行でき、これを正しく操作できるようにする必要がないので、システム・コードの開発が軽減され、市場に出るまでの時間を短縮できる。さらに、メモリ領域の状態を使用してシャドウイングに関する判断を行う操作は、アプリケーション・プロセスのコードを実行することによってトランザクションベースのデータ複製メッセージを生成し、操作する必要がないので、リアルタイムの節減が可能になる。
本発明は、アクティブまたはプライマリ処理システムとスタンバイ処理システムとの間で複製情報の送信を実行するために、エンドツーエンドの伝送制御プロトコル、すなわちTCP(Transport Control Protocol)接続を使用できる。この種の接続は、経路指定可能(routable)、反復可能、かつ遠隔処理可能(remoteable)な標準を提供できる。この接続では、AES(Advanced Encryption Standard)など、TCP/IPプロトコル・スイートと互換可能なさまざまな暗号化プロトコルを使用することによって、さらにセキュリティを提供できる。
以上およびその他の利点は、本明細書に記載する本発明の開示から明らかになるであろう。
本明細書で使用する限り、「少なくとも1つ」、「1つまたは複数」、および「および/または」は、操作において連言的(conjunctive)かつ選言的(disjunctive)な制限のない(open−ended)表現である。たとえば、「A、B、およびCの少なくとも1つ」、「A、B、またはCの少なくとも1つ」、「A、B、およびCの1つまたは複数」、「A、B、またはCの1つまたは複数」、および「A、B、および/またはC」の各表現は、Aのみ、Bのみ、Cのみ、AとBの組み合わせ、AとCの組み合わせ、BとCの組み合わせ、またはAとBとCの組み合わせのいずれかを意味する。
前述の実施形態と構成は、完全でも網羅的でもない。言うまでもないが、本発明の他の実施形態では、以上で説明したかまたは以下で詳細に説明する1つまたは複数の機能を単独でも組み合わせても利用できる。
図1は、複数の複製リンク106a−mによって接続された第1、第2、第3、、、第nの処理システム104a−nを含む複製処理システム100を示している。システム100は、通常、アクティブである第1の処理システム104aとスタンバイである第2...第nの処理システムとを備えるアクティブ−スタンバイ構成で動作する。複数のスタンバイ処理システムが示されているが、特定のアプリケーション・プロセスに依存する番号をもつ唯一のスタンバイ処理システムを配置してもよいことを理解されたい。言うまでもないが、アクティブ処理システムはシステムの処理タスクを実行し、非アクティブ処理システムは現在のアクティブ処理システムに障害が発生した場合にアクティブ処理システムになるようにスタンバイしている。
各処理システム104には、メモリ108とプロセッサ112が含まれる。メモリ108は、アドレス指定可能な記憶空間と命令を実行するために使用するその他の内部記憶域を意味する。メモリは、通常は読み取り専用メモリと書き込み可能メモリの組み合わせである。プロセッサ108は、命令を解釈して実行する機能ユニットである。プロセッサには、通常、1つまたは複数の命令制御ユニットと1つの演算および論理ユニットが含まれる。プロセッサは、Pentium(登録商標)TMマイクロプロセッサなどの標準的なマイクロプロセッサであるのが好ましい。
メモリ108には、指定された一連の操作をトランザクションの形式で実行するための複数のアプリケーション・プロセス116a−yと、操作の出力を受信し、格納するための対応する複数のプライマリ・メモリ領域セット120a−yと、プログラムの実行を制御し、リソースの割り当て、スケジューリング、入力/出力制御、データ管理などのサービスを提供するオペレーティング・システム124と、メモリ領域120a−yの状態を制御し、シャドウイング操作を制御する複製システム128と、それぞれのメモリ領域120a−yから情報を受信して格納するセカンダリ・メモリ領域セット132a−y(プライマリ・メモリ領域セット120a−yを複製し、これに対応する)と、選択された第1の時間におけるプライマリ・メモリ領域セット内の情報と選択された第2の時間(第1の時間より後)におけるプライマリ・メモリ領域セット内の情報とを比較し、情報の相違または変更を確認する比較器(comparer)126と、比較器126から変更された情報を読み出し、この変更された情報を収集して情報のシリアル・ストリームの形にパケット化し、適切なエラー・チェック情報(たとえば巡回冗長検査すなわちCRC(Cyclic Redundancy Check)など)を含めてパケット化された情報を同時にまたは異なるタイミングで各スタンバイ処理システムに送信するインターフェイス150とが含まれる。1つの構成では、メモリには、複製システム128のクライアントである各アプリケーション・プロセスに関する情報、複製される各メモリ領域に関する情報、および変更された各メモリ領域内の情報を保持するためのキューのヘッダとシャドウイング・バッファ・エントリを含む共有メモリ空間(セカンダリ・メモリ領域セットの一部であってもよい)が含まれる。セカンダリ・メモリ領域セット132a−yはバッファとして実装でき、プライマリ・メモリ領域セットと1対1に対応する必要はない。
言うまでもないが、ソフトウェア複製には2つの主要な操作、すなわちデータのシャドウイングとリフレッシュが含まれる。リフレッシュは、複製されたすべてのメモリ・ページをアクティブ処理システムからスタンバイ処理システムにコピーすることによって、スタンバイ処理システムのメモリをアクティブ処理システムのメモリに同期させるプロセスである。リフレッシュは、データのシャドウイングが開始される前に実行される。これで、スタンバイ処理システムのすべてのデータはアクティブ処理システムに完全に同期することが保証される。リフレッシュの前には、2つのシステム(アクティブとスタンバイ)は同期しておらず、アクティブ処理システムのすべてのメモリは読み出し書き込みの状態にある。スタンバイ処理システムのすべてのデータは無効と考えられる。1つの構成では、複製されるメモリの各セグメントを読み取り専用の状態として逐次的にマーク付けし、このセグメントのすべてのページをスタンバイ処理システムに強制的に複製することによってリフレッシュが開始される。各セグメントが複製されると、アプリケーションによる書き込みの標準的な検出とスタンバイ処理システムへのデータのシャドウイングが開始される。このように、リフレッシュはアプリケーションがデータを処理している間に開始でき、さらにセグメントごとに逐次的に実行できるので、アクティブ処理システムの処理には影響を及ぼさない。スタンバイ処理システムは、アクティブシステムのメモリのすべてのセグメントがリフレッシュされ、スタンバイ処理システムにシャドウイングされている場合に同期していると考えられる。
データのシャドウイングは、変更が発生したときに新しく変更されたメモリ・ページをスタンバイ処理システムに送信することによって、アクティブ処理システムとスタンバイ処理システムを同期した状態に維持するための継続的に実行されるプロセスである。シャドウイング・モードは、リフレッシュ・モードが実行され、スタンバイ処理システム内のすべてのプライマリ・メモリ領域セットが有効な状態にあると見なされた後に開始される。
図3は、本発明の特定の構成を示している。この構成では、メモリ領域はメモリ・ページに対応する。前述のように、プライマリ・メモリ・ページ・セットはさまざまな状態にある。このように、各メモリ・ページは2つの2進の状態、すなわちロックまたはアンロックのいずれかにある。図3で、メモリ・ページ300a、b、d、h、i、l、およびnはロック(変更なし)の状態にあり、メモリ・ページ300c、e、f、g、j、k、m、およびoはアンロック(変更あり)の状態にある。
この構成では、複製システム128で書き込み障害が受信された場合に、書き込み障害が発生したページに「dirty(ダーティー)」としてフラグ付けされる。「clean(クリーン)」ページ(すなわち書き込みコマンドに応答して変更が行われる前のページ)のコピーは複製ファイルまたはセカンダリ・メモリ領域セット132に格納されており、「clean」バージョンとしてマーク付けされている。ここで、このページが読み出し可能/書き込み可能としてマーク付けされ、書き込み操作が許可される。トランザクション終了時に、「dirty」としてフラグ付けされたすべてのページが再び読み取り専用としてマーク付けされ、複製ファイルに格納された対応するページの「clean」バージョンと比較される。さらに、相違がスタンバイ処理システムに書き込まれる。言うまでもないが、dirtyページを処理してスタンバイ処理システムに相違を転送するためのトリガは、トランザクションの終了に限定はされない。他にトリガになり得るものとしては、選択された時間の経過、シャドウイング・バッファおよび/またはセカンダリ・メモリ領域セットの容量による制約、変更されたメモリ領域の数、フック、およびそれらの組み合わせなどがある。
図2は、本発明の1つの実施形態によるデータのシャドウイング・メカニズムの動作を示している。図2の信号は、アプリケーション・プロセスごとにパラレルに送信される。図示された信号がコンポーネント間で交換される前に、プライマリ・メモリ領域セット120a−y(アプリケーション・プロセスからアクセスされ、スタンバイ処理システムにシャドウイングまたは複製される)はロック(読み取り専用)の状態になる。さらに、アプリケーション・プロセスは複製システム128によってクライアントとして登録されて複製共有メモリ領域へのアクセスを許可され、複製システムはアプリケーション・プロセスでコンパイルされた情報を使用して、複製されるメモリ領域(または選択されたアプリケーション・プロセスのそれぞれのプライマリ・メモリ領域セット)と各領域の属性を識別する。言うまでもないが、各アプリケーション・プロセスは通常はトランザクションの開始と終了を定義するコード・ポイントを定義または選択している。
選択されたアプリケーション・プロセスでは、アプリケーション・プロセス116が書き込みコマンド200をメモリのインターフェイスに転送し、選択されたメモリ領域(たとえばメモリ・ページ)に書き込みを行ったときにこのプロセスが開始される。選択されたメモリ領域はロックの状態にあるので、このメモリ領域への書き込みを実行しようとすると、プロセス112によって書き込み障害が検出される。たとえば、1つの構成では、障害は読み取り専用の環境でメモリ・ページを書き込もうとする特定のコードを示すセグメンテーション違反信号である。これに応答して、プロセッサ112は障害の性質を示す障害メッセージを、影響を受けたメモリ領域を識別するメモリ識別子とともにオペレーティング・システム124に送信する(204)。メモリ識別子の1つの例はメモリ・アドレスである。次に、オペレーティング・システム124は割り込みコマンドをアプリケーション・プロセスに転送し(208)、アプリケーション・プロセスは障害の発生と性質を示し、メモリ・ページ(通常はメモリ・アドレス)により識別する複製システム128への呼び出しを作成する(210)。
これに応答して、複製システム128はまず次に示す2つのクエリーの回答を決定する。
(a)障害はアクセス許可違反によるものであったか?
(b)影響を受けたメモリ領域はそのアプリケーション・プロセスの複製セグメントのアドレス範囲内にあったか?
(a)と(b)のいずれかに対する回答が「いいえ(no)」の場合は、障害はロックされたページに書き込もうとしたためではないので、アプリケーション・プロセスの標準的なエラー障害メカニズムが続行される。(a)と(b)の両方の回答が「はい(yes)」の場合は、複製システム128は、共有メモリ領域内のアプリケーション・プロセスに対応するシャドウイング・バッファ(後の図に示す)に、書き込み障害が発生したメモリ領域のメモリ・アドレスを記録し、読み出しメッセージをメモリのメモリ・インターフェイス(図示せず)に転送し(212)、障害が発生したメモリ領域の(変更されていない)内容を読み出す。メモリ・インターフェイスはメモリ領域の内容を複製システム128に返し(216)、次に複製システムは該当するメモリ領域の内容をセカンダリ・メモリ領域セット132a−yのそれぞれに書き込むようにインターフェイスに命令する(224)。
図4は、複製システム128が維持するシャドウイング・バッファまたはテーブル400である。書き込み障害が受信されるたびに、複製システム128はメモリ領域識別子(通常は障害が発生したメモリ領域に関連付けられたメモリ・アドレス)とオプションでメモリ領域の属性をリストに追加する。別の構成では、選択されたアプリケーションで使用するすべてのメモリ領域識別子のリストがテーブル400に格納される。メモリ領域の書き込み障害が受信されるたびに、最新のデータ同期以降にこのメモリ領域が変更されたことを示すインジケータ・フラグが設定される。
図2に戻り、さらに複製システム128はオペレーティング・システム124に対してこのメモリ領域をアンロックの状態にし、それによってこの領域への書き込みを許可するように命令する(228)。オペレーティング・システム124は、これに応答してメモリ・インターフェイスに対してメモリ領域の状態を「アンロック」に設定するように命令する(232)。これは、現在アンロック(dirty)のページへのさらなる書き込みは、このページの状態が「ロック」に戻されるまで、通常の速度で行われることを意味する。
アプリケーション・プロセスの書き込みコマンドが失敗した後、アプリケーション・プロセスは現在アンロックのメモリ領域への書き込みコマンドを再発行する(236)。ここでメモリ領域がアンロックになっているので、アプリケーション・プロセスは所望の情報をメモリ領域に書き込むことができる。
シャドウイングするスタンバイ処理システムとのデータの同期が実行されると、選択された時点まで(または第1のイベントが発生するまで)、選択されたアプリケーション・プロセスの書き込みコマンドごとに前述のステップが繰り返される。選択された時点は、クロックの設定、選択されたパラメータの値(たとえば、変更されたページの数、変更の数など)、利用可能なセカンダリ・メモリの容量などを含む多くのイベントに基づいていてもよい。1つの構成では、アプリケーション・プロセスがトランザクションの終了に至ると、複製システムの機能を呼び出してすべてのdirtyページを処理してプロセスを安定な状態に戻す。この機能は、シャドウイング・バッファに格納されたdirtyページごとにループする。
選択された時点に到達すると、複製システム128は、選択されたアプリケーション・プロセスに対して「done(完了)」コマンドを発行して対応するプライマリ・メモリ領域セットへの出力を一時的に中断し(240)、オペレーティング・システム124に対して対応するプライマリ・メモリ領域セット中のメモリ領域の状態を「ロック」(またはページを「clean」)に設定するように命令し(244)、比較器126に対して1つまたは複数のセカンダリ・メモリ領域セット132の内容またはイメージを読み出し、メモリ領域ごとにイメージを対応するプライマリ・メモリ領域セット120のイメージと比較して差分または変更された情報を確認するように命令する(248)。ロックの状態にあるメモリ領域は、前回の同期以降変更されていないので、通常は読み出されない。
比較器126は、各メモリ・ページから変更された情報のセットをインターフェイス150に提供する(252)。変更された情報は、通常はメモリ領域の現在のイメージのオフセットと値である。1つの構成では、比較器がメモリ領域を処理するので、セカンダリ・メモリ領域セットに含まれる各メモリ領域の元のイメージは、メモリ領域の現在のイメージによるデータと、元のイメージと変更されたイメージとの間で検出された相違のリストで置き換えられる。別の構成では、セカンダリ・メモリ領域セット内の元の(変更されていない)ページとプライマリ・メモリ領域セット内のdirtyページとの相違の数が選択されたしきい値を超えた場合に、dirtyページの内容全体がスタンバイ処理システムに送信される。
比較器がセカンダリ・メモリ領域セット内のすべての処理を完了すると、メモリ領域のイメージが移行される(インターフェイス150によって維持されるアウトバウンド・キューの末尾に連結される)。アプリケーション・プロセスの新しいセカンダリ・メモリ領域セットが得られ、プロセスは別のトランザクションで継続することができる。インターフェイス150は、変更された情報および/または(構成によっては)dirtyページ自体の内容全体を収集して情報のシリアル・ストリームの形にパケット化し、パケット化された情報を、通常は暗号化された通信として、適切なエラー・チェック情報(たとえば巡回冗長検査すなわちCRC、ローリング・チェックサム(rolling checksum)など)とともに、複製リンク106を経由して適切な1つのスタンバイ処理システムまたは複数のスタンバイ処理システムに送信する。スタンバイ処理システムは、変更された情報がスタンバイ処理システムの同じページに適用された後で、このエラー・チェック情報とそのページのエラー・チェック情報とを比較する。このエラー・チェック・メカニズムでエラーが検出された場合(たとえば、このローリング・チェックサムと相違が適用された後スタンバイ処理システムの同じページのローリング・チェックサムとの値が一致しなかった場合)は、メモリ領域またはページの状態は同期しなくなったと考えられる。この場合は、リフレッシュを実行してメモリ領域を同期した状態に戻すことができる。1つの構成では、個々のページの更新がスタンバイ処理システムによって要求され、全体のリフレッシュへのフォール・バックは特定の間隔に多くのエラーが発生した場合にのみ実行される。
これで、プライマリ・メモリ領域セット内のすべてのメモリ領域が最初の状態にリセットされるので、選択されたイベントまたはトリガが発生し、プライマリ・メモリ領域セット内の情報の変更が再びスタンバイ処理システム(1つ以上)に送信されるまで、複製システム128はメモリ・ページごとに操作216、224、および228を繰り返す。
代替の実施形態では、複製システム128が変更されたメモリ領域のそれぞれについてアドレスを記憶しており、変更された各メモリ領域の内容全体をスタンバイ処理システムに送信する。この実施形態は、複製リンク106の使用可能な帯域幅が問題にならない場合に有効である。
スタンバイ処理システムは、ページごとの相違の形かページ全体かにかかわらず、複製情報を受信し、プライマリ・メモリ領域セット内の各ページの現在のイメージを更新し、更新されたイメージを自らのセカンダリ・メモリ領域セットに一時的に格納する。更新され、一時的に格納されたページのすべてがプライマリ処理システムの対応するページに同期することをエラー・チェック・メカニズムで確認した後でのみ、更新されたページがスタンバイ処理システムのプライマリ・メモリ領域セットにコピーされる。このようにスタンバイ処理システムのプライマリ・メモリ領域セットが遅れて更新されることによって、スタンバイ処理システムには任意の時点でそのプライマリ・メモリ領域セット内の有効なイメージのセットが保証される。別の言い方をすれば、そのプライマリ・メモリ領域セット内の情報はそれより前の特定の時点におけるプライマリ処理システムのプライマリ・メモリ領域セット内の情報に正確に一致する。
本発明のさまざまな変形および変更が使用可能である。本発明のいくつかの機能を提供し、その他の機能を提供しないこともできる。
たとえば、1つの代替の実施形態では、本発明は1つのプライマリ処理システムとN個のスタンバイ処理システムを使用した処理アーキテクチャだけでなく、N個のプライマリ処理システムとM個のスタンバイ処理システム、またはN個のプライマリ処理システムと1つのスタンバイ処理システムを使用したアーキテクチャにも採用されている。
別の代替の実施形態では、本発明は処理システムのパフォーマンスを追跡し、監視するためのパフォーマンス・プロファイリングに使用されている。本発明により、監視システムは監視される処理システムがメモリ内で実行するすべての処理を追跡できる。
更なる代替の実施形態では、プライマリ・メモリ領域セットはこの領域にメモリがロードされたとき第1の状態に設定され、かつ/または処理システムが起動したときにファームウェアによってメモリ領域が第1の状態に設定される。いずれの場合も、複製システム自体はプライマリ・メモリ領域セットの初期状態の設定を制御しない。
更なる代替の実施形態では、プライマリ処理システムが複数のプロセッサを備えている。処理リソースの増大により、スタンバイ処理システム(1つ以上)への更新はより頻繁に送信される可能性がある。各プロセッサは前述の操作のサブセットを実行してもよい。
さらにもう1つの代替実施形態では、特定用途向け集積回路すなわちASIC(Application Specific Integrated Circuits)、プログラマブル論理アレイなどのハードウェア・デバイスを含むがこれらに限定はされない専用ハードウェアによる実装を同様に構築し、本明細書で説明する方法を実施することもできる。さらに、分散処理またはコンポーネント/オブジェクト分散処理、並行処理、または仮想マシン処理を含むがこれらに限定はされないさらに別のソフトウェアによる実装を構築し、本明細書で説明する方法を実施してもよい。
本発明のソフトウェアによる実装は、オプションで、実体のある(tangible)記憶媒体、たとえば、磁気媒体(ディスクやテープなど)、光磁気媒体または光媒体(ディスクなど)、ソリッドステート媒体(メモリカードまたは1つまたは複数の読み取り専用(不揮発性)メモリを備えるその他のパッケージなど)に格納されることも示しておく必要がある。電子メールに添付したデジタル・ファイル、またはその他の独立した情報アーカイブまたはアーカイブのセットは、実体のある記憶媒体と同等の配布媒体と考えられる。したがって、本発明には本発明のソフトウェアによる実装が格納される実体のある記憶媒体または配布媒体、および先行技術で等価物と認識されるもの、および後継の媒体が含まれると考えられる。
本発明の実施態様において実装されるコンポーネントおよび機能について、特定の標準とプロトコルを参照しながら説明するが、本発明はこうした標準およびプロトコルには限定されない。本明細書で言及しない他の同様の標準とプロトコルが存在しており、本発明に含まれると考えられる。さらに、本明細書で言及する標準とプロトコル、および本明細書で言及しない他の同様の標準とプロトコルは、本質的に同じ機能を備えるより高速またはより効果的な等価物に定期的に代えられる場合がある。こうした同じ機能を備える代わりの標準とプロトコルは、本発明に含まれる等価物と考えられる。
本発明には、さまざまな実施形態において、実質的に本明細書で図示し、説明するようなコンポーネント、方法、プロセス、システム、および/または装置が、そのさまざまな実施形態、部分的な組み合わせ、サブセットを含めて含まれる。本開示を理解した後で、本発明を構築し、利用する方法については、当業者には言うまでもない。本発明には、さまざまな実施形態において、たとえばパフォーマンスを向上し、実装が容易でコストを削減するために、本明細書または本発明のさまざまな実施形態において図示および/または説明されていない要素がないデバイスおよびプロセス(前述のデバイスまたはプロセスで使用されているような要素がないものを含む)を提供するステップが含まれる。
本発明に関する以上の説明は、例示と説明を目的として示されている。以上の記述には、本発明を本明細書に開示された1つまたは複数の形態に限定する意図はない。たとえば、前述の「発明を実施するための最良の形態」では、本開示を簡素化するために、1つまたは複数の実施形態において本発明のさまざまな機能が統合されている。この開示された方法は、ここに請求する発明が各請求項に明確に記述された機能より多くの機能を必要とすることを意味すると理解してはならない。むしろ、添付の特許請求の範囲が意味するように、発明の態様は以上に開示された1つの実施形態の全機能より少ない機能にある。したがって、添付の特許請求の範囲は本明細書によって「発明を実施するための最良の形態」に組み込まれており、各請求項は本発明の個別の好ましい実施形態として独立している。
さらに、本発明の説明には1つまたは複数の実施形態と特定の変形および変更が含まれているが、その他の変形および変更、たとえば当業者が本開示を理解した後でその技能と知識の範囲内にあるものも本発明の範囲を逸脱しない。交換可能かつ/または同等である別の構造、機能、範囲、またはステップが本明細書で開示されたかどうかにかかわらず、交換可能かつ/または同等である別の構造、機能、範囲、またはステップを含む別の実施形態を許可される範囲で請求内容に含める権利を取得することを目的としており、特許を取得できる項目を公に提示する意図はない。
本発明の一実施形態による複製処理システムを示すブロック図である。 本発明の一実施形態による、論理コンポーネント間で交換されるさまざまな信号を示す信号流れ図である。 本発明の一実施形態による状態の異なる複数のメモリ領域を示す図である。 本発明の一実施形態によるメモリ領域セットを示すブロック図である。

Claims (14)

  1. (a)少なくとも1つのメモリ領域を前記少なくとも1つのメモリ領域が読み取り専用である第1の状態に設定するステップと、
    (b)前記少なくとも1つのメモリ領域への書き込みの試行に応答して、書き込み障害が発生したという通知を受信するステップと、
    (c)前記少なくとも1つのメモリ領域の前記第1の状態を前記少なくとも1つのメモリ領域が書き込み可能である第2の状態に変更するステップと、
    (d)前記少なくとも1つのメモリ領域に少なくともいくつかの変更が発生した場合に複製するためのスタンバイ処理システムを提供するステップとを備える複製方法。
  2. 前記少なくとも1つのメモリ領域は複数のメモリ領域を備えており、各メモリ領域は一意のメモリ識別子を備えており、
    (e)前記第2の状態に変更された前記各メモリ領域の前記メモリ識別子を指定するステップをさらに備えており、前記提供するステップ(d)において、依然として前記第1の状態にあるメモリ領域の内容は前記スタンバイ処理システムに提供されない請求項1に記載の方法。
  3. 前記少なくとも1つのメモリ領域は複数のメモリ領域を備えており、
    (e)ステップ(d)の後で前記第2の状態にある前記各メモリ領域を前記第1の状態にリセットするステップと、
    ステップ(a)〜(d)を繰り返すステップとをさらに備える請求項1に記載の方法。
  4. (e)アプリケーション・プロセスでコンパイルされた情報に基づいて、複製されるメモリ領域セットと前記セット内の各領域の少なくとも1つの属性を識別するステップと、
    (f)前記通知が受信された場合に、前記障害がアクセス許可違反によるものかどうか、および前記少なくとも1つの領域が前記メモリ領域セット内にあるかどうかを確認するステップと、
    (g)前記障害がアクセス許可違反によらず、前記少なくとも1つの領域が前記メモリ領域セットのメンバーである場合に、前記少なくとも1つのメモリ領域に関連してステップ(c)と(d)を実行するステップと、
    (h)前記障害がアクセス許可違反によるものであるか、または前記少なくとも1つの領域が前記メモリ領域セットのメンバーでない場合に、前記書き込み障害に関連してステップ(c)と(d)を実行しないステップとをさらに備える請求項1に記載の方法。
  5. ステップ(c)は、
    (c1)第1の選択されたメモリ・ロケーションで前記少なくとも1つのメモリ領域が変更されたことを示す下位ステップ(substeps)と、
    (c2)前記少なくとも1つのメモリ領域の前記元の内容を第2の選択されたメモリ・ロケーションに記録する下位ステップと、
    (c3)その後に、前記少なくとも1つのメモリ領域の前記第1の状態を前記少なくとも1つのメモリ領域が書き込み可能な第2の状態に変更する下位ステップとを備えており、第1のイベントが発生したときにステップ(d)が実行され、ステップ(d)は、
    (d1)前記少なくとも1つのメモリ領域の前記元の内容と前記少なくとも1つのメモリ領域の前記現在の内容との相違を確認し、前記相違は前記変更である下位ステップと、
    (d2)前記変更を前記スタンバイ処理システムに提供する下位ステップと、
    (d3)前記少なくとも1つのメモリ領域を前記第1の状態にリセットする下位ステップとを備えており、前記第1のイベントはクロックの設定、選択されたパラメータの値、少なくとも1つのメモリ・セグメントの空き容量、プライマリ処理システムとスタンバイ処理システムとの同期の喪失、トランザクションの終了の少なくとも1つである請求項1に記載の方法。
  6. 前記スタンバイ処理システムは現在前記少なくとも1つのメモリ領域に以前のバージョンの情報を備える少なくとも1つのスタンバイ・メモリ領域を備えており、前記スタンバイ処理システムは前記少なくともいくつかの変更とともに、前記少なくとも1つのメモリ領域の前記現在の情報に関連付けられたチェックサムを受信し、
    (e)前記スタンバイ処理システムが前記以前のバージョンの情報に前記少なくともいくつかの変更を適用して最新の情報を構成するステップと、
    (f)前記チェックサムが前記最新の情報に関して有効かどうかを前記スタンバイ処理システムが確認するステップと、
    (g)前記チェックサムが前記最新の情報に関して有効でない場合に、前記少なくとも1つのスタンバイ・メモリ領域の前記内容のリフレッシュを開始するステップと、
    (h)前記チェックサムが前記最新の情報に関して有効である場合に、前記少なくとも1つのスタンバイ・メモリ領域に前記更新された情報をコピーするステップとをさらに備える請求項1に記載の方法。
  7. (e)前記複数のメモリ領域のいずれが前記第2の状態に変更されたかを追跡して前記アプリケーション・プロセスの動作を監視するステップをさらに備えており、前記各メモリ領域は一意のメモリ識別子を備えており、前記追跡するステップ(e)は、
    (e1)前記第2の状態に変更された前記各メモリ領域の前記メモリ識別子を指定する下位ステップと、
    (e2)前記変更された各メモリ領域への前記少なくともいくつかの変更を複製用のスタンバイ処理システムに提供し、依然として前記第1の状態にあるメモリ領域の内容は前記スタンバイ処理システムには提供されない下位ステップと、
    (e3)前記第1のメモリ領域の前記元の内容を選択されたメモリ・ロケーションに記録する下位ステップと、
    (e4)その後に、前記第1のメモリ領域の前記第1の状態を前記少なくとも1つのメモリ領域が書き込み可能である第2の状態に変更する下位ステップとをさらに備えており、第1のイベントが発生したときにステップ(e2)が実行され、ステップ(e2)は、
    (e2A)前記第1のメモリ領域の前記元の内容と前記第1のメモリ領域の前記現在の内容との相違を確認し、前記相違は前記変更である下位ステップと、
    (e2B)前記変更を前記スタンバイ処理システムに提供する下位ステップとを備えており、前記第1のイベントはクロックの設定、選択されたパラメータの値、少なくとも1つのメモリ・セグメントの空き容量、プライマリ処理システムとスタンバイ処理システムとの同期の喪失、トランザクションの終了の少なくとも1つである請求項1に記載の方法。
  8. 前記請求項1に記載のステップを実行するためのプロセッサ実行可能命令を格納するコンピュータ可読媒体。
  9. (a)アクティブ処理システムであって、
    (i)処理手段と、
    (ii)少なくとも1つのメモリ領域と前記少なくとも1つのメモリ領域にアクセスするアプリケーション・プロセスとを備えるメモリ手段と、
    (iii)複製手段とを備えるアクティブ処理システムと、
    (b)前記アクティブ処理システムが動作不良の場合に前記アクティブ処理システムの機能を実行できるスタンバイ処理システムとを備えており、前記複製手段は、
    前記少なくとも1つのメモリ領域を前記少なくとも1つのメモリ領域が読み取り専用である第1の状態に設定し、
    前記少なくとも1つのメモリ領域への書き込みの試行に応答して書き込み障害が発生したという通知を受信し、
    前記少なくとも1つのメモリ領域の前記第1の状態を前記少なくとも1つのメモリ領域が書き込み可能である第2の状態に変更し、
    複製用の前記スタンバイ処理システムに前記少なくとも1つのメモリ領域への少なくともいくつかの変更を提供するように動作できる複製処理システム。
  10. 前記少なくとも1つのメモリ領域は複数のメモリ領域を備えており、各メモリ領域は一意のメモリ識別子を備えており、前記複製手段は、前記第2の状態に変更された前記各メモリ領域のメモリ識別子を指定し、依然として前記第1の状態にある前記メモリ領域の内容は前記スタンバイ処理システムに提供されないように動作できる請求項9に記載のシステム。
  11. 前記少なくとも1つのメモリ領域は複数のメモリ領域を備えており、前記複製手段は、前記スタンバイ処理システムに前記変更が提供された後に、前記第2の状態にある前記各メモリ領域を前記第1の状態にリセットし、請求項9に記載の動作を繰り返す請求項9に記載のシステム。
  12. 前記複製手段は、さらに、
    アプリケーション・プロセスでコンパイルされた情報に基づいて、複製されるメモリ領域セットと前記セット内の各領域の少なくとも1つの属性を識別し、
    前記通知が受信された場合に、前記障害がアクセス許可違反によるものかどうか、および前記少なくとも1つの領域が前記メモリ領域セット内にあるかどうかを確認し、
    前記障害がアクセス許可違反によらず、前記少なくとも1つの領域が前記メモリ領域セットのメンバーである場合に、前記少なくとも1つの領域の前記第1の状態を前記第2の状態に変更して前記変更を前記スタンバイ処理システムに提供し、
    前記障害がアクセス許可違反によるものであるか、または前記少なくとも1つの領域が前記メモリ領域セットのメンバーでない場合に、前記書き込み障害に関連して前記少なくとも1つの領域の前記第1の状態を前記第2の状態に変更せず、前記変更を前記スタンバイ処理システムに提供しない請求項9に記載のシステム。
  13. 前記複製手段は、
    第1の選択されたメモリ・ロケーションで前記少なくとも1つのメモリ領域が変更されたことを示し、
    前記少なくとも1つのメモリ領域の前記元の内容を第2の選択されたメモリ・ロケーションに記録し、
    その後に、前記少なくとも1つのメモリ領域の前記第1の状態を前記少なくとも1つのメモリ領域が書き込み可能な第2の状態に変更し、第1のイベントが発生したときに前記変更を前記スタンバイ処理システムに提供し、前記複製手段は前記少なくとも1つのメモリ領域の元の内容と前記少なくとも1つのメモリ領域の前記現在の内容との相違を確認し、前記相違は前記変更であり、前記変更を前記スタンバイ処理システムに提供し、
    さらに前記少なくとも1つのメモリ領域を前記第1の状態にリセットし、前記第1のイベントはクロックの設定、選択されたパラメータの値、少なくとも1つのメモリ・セグメントの空き容量、プライマリ処理システムとスタンバイ処理システムとの同期の喪失、トランザクションの終了の少なくとも1つである請求項9に記載のシステム。
  14. 前記スタンバイ処理システムは現在前記少なくとも1つのメモリ領域に以前のバージョンの情報を備える少なくとも1つのスタンバイ・メモリ領域を備えており、前記スタンバイ処理システムは少なくともいくつかの変更とともに、前記少なくとも1つのメモリ領域の前記現在の情報に関連付けられたチェックサムを受信し、さらに前記スタンバイ処理システムは前記少なくともいくつかの変更を前記以前のバージョンの情報を適用して最新の情報を構成し、前記チェックサムが前記最新の情報に関して有効かどうかを確認し、前記チェックサムが前記最新の情報に関して有効でない場合に、前記少なくとも1つのスタンバイ・メモリ領域の内容のリフレッシュを開始し、前記チェックサムが前記最新の情報に関して有効である場合に、前記少なくとも1つのスタンバイ・メモリ領域に前記更新された情報をコピーする請求項9に記載のシステム。
JP2007022555A 2006-02-01 2007-02-01 ソフトウェア複製 Expired - Fee Related JP4563412B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US76471806P 2006-02-01 2006-02-01
US11/480,173 US20070180312A1 (en) 2006-02-01 2006-06-30 Software duplication

Publications (2)

Publication Number Publication Date
JP2007207250A true JP2007207250A (ja) 2007-08-16
JP4563412B2 JP4563412B2 (ja) 2010-10-13

Family

ID=37846686

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007022555A Expired - Fee Related JP4563412B2 (ja) 2006-02-01 2007-02-01 ソフトウェア複製

Country Status (4)

Country Link
US (1) US20070180312A1 (ja)
JP (1) JP4563412B2 (ja)
DE (1) DE102007005207A1 (ja)
GB (1) GB2434890A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011170477A (ja) * 2010-02-17 2011-09-01 Hitachi Ltd ハイパーバイザ及びサーバ装置
JP2017503277A (ja) * 2014-01-02 2017-01-26 ホアウェイ・テクノロジーズ・カンパニー・リミテッド データベースシステムにおけるオンライン分析処理のためのデータを維持する方法および装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2465772A (en) * 2008-11-27 2010-06-02 Sony Comp Entertainment Europe Analysing memory accessed by an application
US9875026B2 (en) * 2011-06-29 2018-01-23 Hewlett Packard Enterprise Development Lp Access commands including expected media positions
US10776267B2 (en) * 2017-12-11 2020-09-15 Red Hat, Inc. Mirrored byte addressable storage

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08149145A (ja) * 1994-11-17 1996-06-07 Fujitsu Ltd Lanシステム
JPH08329027A (ja) * 1995-06-01 1996-12-13 Nec Corp 中央処理二重化システムにおけるクロスコールディスクアクセス方法とその方式
JPH09128267A (ja) * 1995-10-31 1997-05-16 Nec Corp データ処理装置およびデータ処理方法
JP2000047923A (ja) * 1998-07-31 2000-02-18 Fujitsu Ltd ファイルアクセスシステムおよびファイル制御装置
JP2002041249A (ja) * 2000-07-28 2002-02-08 Fujitsu Ltd アクセス制御方法及びこれを用いる記憶装置
JP2002334048A (ja) * 2001-05-11 2002-11-22 Hitachi Ltd 記憶サブシステムの制御方法および記憶サブシステム
JP2004038928A (ja) * 2002-03-19 2004-02-05 Network Appliance Inc 2つのスナップショット間の変化を判定して宛先スナップショットに送信するシステム及び方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69021712T2 (de) * 1990-02-08 1996-04-18 Ibm Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme.
JP2846047B2 (ja) * 1990-03-29 1999-01-13 株式会社東芝 シャドウプロセス生成方式
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
JPH10506483A (ja) * 1994-06-10 1998-06-23 テキサス・マイクロ・インコーポレーテッド フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル
CA2167634A1 (en) * 1995-01-23 1996-07-24 Michael E. Fisher Method and apparatus for maintaining network connections across a voluntary process switchover
US5787485A (en) * 1996-09-17 1998-07-28 Marathon Technologies Corporation Producing a mirrored copy using reference labels
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5958062A (en) * 1997-03-19 1999-09-28 Fujitsu Limited Client/server system and computer system
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
US6449733B1 (en) * 1998-12-07 2002-09-10 Compaq Computer Corporation On-line replacement of process pairs in a clustered processor architecture
US6275915B1 (en) * 1999-04-09 2001-08-14 Avaya Technology Corp. Selective memory duplication arrangement
US6622263B1 (en) * 1999-06-30 2003-09-16 Jack Justin Stiffler Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance
US6311232B1 (en) * 1999-07-29 2001-10-30 Compaq Computer Corporation Method and apparatus for configuring storage devices
US6687849B1 (en) * 2000-06-30 2004-02-03 Cisco Technology, Inc. Method and apparatus for implementing fault-tolerant processing without duplicating working process
KR100441712B1 (ko) * 2001-12-29 2004-07-27 엘지전자 주식회사 확장 가능형 다중 처리 시스템 및 그의 메모리 복제 방법
US6961870B2 (en) * 2002-03-13 2005-11-01 Inventec Corporation Data exchange update and back-up system and method between dual operating systems of a computer
JP2004318828A (ja) * 2003-03-31 2004-11-11 Seiko Epson Corp データバックアップシステム及びデータバックアップ方法、装着可能なコンピュータ、メール送信システム、画像情報送信システム並びにデータバックアッププログラム
US7047380B2 (en) * 2003-07-22 2006-05-16 Acronis Inc. System and method for using file system snapshots for online data backup
US7246211B1 (en) * 2003-07-22 2007-07-17 Swsoft Holdings, Ltd. System and method for using file system snapshots for online data backup
US7440553B2 (en) * 2004-02-04 2008-10-21 Samsung Electronics Co., Ltd. Apparatus and method for checkpointing a half-call model in redundant call application nodes
EP1784727B1 (en) * 2004-08-26 2019-05-08 Red Hat, Inc. Method and system for providing transparent incremental and multiprocess check-pointing to computer applications
US7284150B2 (en) * 2004-09-22 2007-10-16 International Business Machines Corporation System and method for reliably storing data and providing efficient incremental backup and asynchronous mirroring by preferentially handling new data
JP4588486B2 (ja) * 2005-02-24 2010-12-01 株式会社日立製作所 計算機システム及び管理計算機とホスト計算機並びにボリューム管理方法
US20070027936A1 (en) * 2005-07-28 2007-02-01 Stakutis Christopher J Determining changes made to a source file to transmit to a target location providing a mirror copy of the source file
US20070226005A1 (en) * 2006-01-06 2007-09-27 Kevin Smith Totaldentist

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08149145A (ja) * 1994-11-17 1996-06-07 Fujitsu Ltd Lanシステム
JPH08329027A (ja) * 1995-06-01 1996-12-13 Nec Corp 中央処理二重化システムにおけるクロスコールディスクアクセス方法とその方式
JPH09128267A (ja) * 1995-10-31 1997-05-16 Nec Corp データ処理装置およびデータ処理方法
JP2000047923A (ja) * 1998-07-31 2000-02-18 Fujitsu Ltd ファイルアクセスシステムおよびファイル制御装置
JP2002041249A (ja) * 2000-07-28 2002-02-08 Fujitsu Ltd アクセス制御方法及びこれを用いる記憶装置
JP2002334048A (ja) * 2001-05-11 2002-11-22 Hitachi Ltd 記憶サブシステムの制御方法および記憶サブシステム
JP2004038928A (ja) * 2002-03-19 2004-02-05 Network Appliance Inc 2つのスナップショット間の変化を判定して宛先スナップショットに送信するシステム及び方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011170477A (ja) * 2010-02-17 2011-09-01 Hitachi Ltd ハイパーバイザ及びサーバ装置
US8479198B2 (en) 2010-02-17 2013-07-02 Hitachi, Ltd. Hypervisor and server apparatus capable of restoring data inside a failure area
JP2017503277A (ja) * 2014-01-02 2017-01-26 ホアウェイ・テクノロジーズ・カンパニー・リミテッド データベースシステムにおけるオンライン分析処理のためのデータを維持する方法および装置
US9922105B2 (en) 2014-01-02 2018-03-20 Huawei Technologies Co., Ltd. Method and apparatus of maintaining data for online analytical processing in a database system

Also Published As

Publication number Publication date
GB2434890A (en) 2007-08-08
DE102007005207A1 (de) 2007-10-11
US20070180312A1 (en) 2007-08-02
JP4563412B2 (ja) 2010-10-13
GB0701103D0 (en) 2007-02-28

Similar Documents

Publication Publication Date Title
CN110071821B (zh) 确定事务日志的状态的方法,节点和存储介质
JP4405509B2 (ja) データ管理方法、システム、およびプログラム(リモート記憶位置にフェイルオーバを行うための方法、システム、およびプログラム)
US8332687B1 (en) Splitter used in a continuous data protection environment
US8285824B2 (en) Storage system and data replication method that refuses one or more requests for changing the first logical configuration information until the first storage apparatus and second storage apparatus are synchronized
US20080140963A1 (en) Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots
US20100138687A1 (en) Recording medium storing failure isolation processing program, failure node isolation method, and storage system
JP5699852B2 (ja) 情報処理装置、ストレージ制御方法およびプログラム
JP2003507791A (ja) 遠隔ミラーリングシステム、装置及び方法
JP2005196683A (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
JP2008059583A (ja) クラスタ・システムならびにクラスタ・システム内でレプリカをバックアップする方法およびプログラム製品
US20140258659A1 (en) Protection of former primary volumes in a synchronous replication relationship
JP4563412B2 (ja) ソフトウェア複製
US7890715B2 (en) Suspension of an asynchronous remote copy pair system having a primary controller and a remote controller
CN111147274B (zh) 为集群解决方案创建高度可用的仲裁集的系统和方法
JP2002244933A (ja) チェックサムを異なるメモリ位置へ動的に移動させるシステムおよび方法
CN106326030B (zh) 用于存储系统中的软切换的方法和装置
US20090150459A1 (en) Highly available multiple storage system consistency heartbeat function
US8745343B2 (en) Data duplication resynchronization with reduced time and processing requirements
JP2004348174A (ja) 記憶装置システム
US11907551B2 (en) Performance efficient and resilient creation of network attached storage objects
US10452321B2 (en) Storage system and control method therefor
US11010351B1 (en) File system replication between software defined network attached storage processes using file system snapshots
JP5509272B2 (ja) 計算機システム、データ一致化方法およびデータ一致化処理プログラム
US20240070035A1 (en) Information processing system and backup method
US20230350753A1 (en) Storage system and failure handling method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100609

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100728

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

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees