JP2015508537A - プライマリ/バックアップ複製スキームにおける同期化のための方法および装置 - Google Patents

プライマリ/バックアップ複製スキームにおける同期化のための方法および装置 Download PDF

Info

Publication number
JP2015508537A
JP2015508537A JP2014550297A JP2014550297A JP2015508537A JP 2015508537 A JP2015508537 A JP 2015508537A JP 2014550297 A JP2014550297 A JP 2014550297A JP 2014550297 A JP2014550297 A JP 2014550297A JP 2015508537 A JP2015508537 A JP 2015508537A
Authority
JP
Japan
Prior art keywords
epoch
primary
output
backup
current
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.)
Pending
Application number
JP2014550297A
Other languages
English (en)
Inventor
ナムジョシ,ケダー
コッポール,プラモド
スタソポウロス,タノス
ウィルフォング,ゴードン・ティー
Original Assignee
アルカテル−ルーセント
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 アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2015508537A publication Critical patent/JP2015508537A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/2038Error 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 a single 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

プライマリ/バックアップ複製機能が開示される。プライマリプロセスおよびバックアッププロセスが、プライマリプロセスの状態情報をバックアッププロセスの状態情報と同期化するように構成されている同期化プロセスに関与する。この同期化プロセスは、エポックと呼ばれる期間において機能する。現在のエポック中に、プライマリプロセスは、前のエポック以降のプライマリプロセスの状態情報に対する変化を表す状態更新情報を計算する。現在のエポック中に、プライマリプロセスはまた、現在のエポック中に生成された出力メッセージを、現在のエポックにおいて使用するための専用とされている関連付けられている出力バッファ内にバッファリングする。プライマリプロセスは、前のエポックに関する状態更新確認応答をバックアッププロセスから受信することとは無関係に新たなエポックを開始する。現在のエポックに関してバッファリングされている出力メッセージは、現在のエポックに関する状態更新確認応答をプライマリプロセスが受信して、すべての前のエポックのすべての出力バッファが空になった後に、関連付けられている出力バッファからリリースされる。

Description

本件は一般に、プライマリ/バックアップ複製スキームにおける同期化を提供することに関する。
クラウドコンピューティングは、コンピューティングサービスが提供される方法を変えている。データセンターの機能をフルに利用するために、多くのサービスが、負荷に伴ってスケーリングするように、および障害に対する耐性を有するように設計されている。複数のサービス(たとえば、テレコミュニケーション、ゲーミング等などのインタラクティブなサービス)は、遅延およびジッタなどのネットワークパフォーマンスパラメータに関して相対的に厳しい制限を有している。これらの基準、すなわち、弾力性、フォルトトレランス、およびネットワークパフォーマンスは、多くのさまざまな点で相いれないことがある。プロセスにフォルトトレランスを加えるさまざまなフォルトトレランスメカニズムがあるが、そのようなフォルトトレランスは典型的には、ネットワークオーバーヘッドを招くという犠牲を払って加えられる。そのような1つのフォルトトレランスメカニズムが、プライマリ/バックアップ複製であり、このプライマリ/バックアップ複製においては、プライマリプロセスの障害の後にバックアッププロセスがプライマリプロセスの役割を引き継ぐことができるように、プライマリプロセスの状態がバックアッププロセスの状態と同期化される。しかしながら、不利なことに、メモリおよびディスクの両方のリカバリを可能にするものを含む、多くの既存のプライマリ/バックアップ複製スキームにおいては、プライマリプロセスとバックアッププロセスとの間における定期的な同期化が、少なくとも、プライマリプロセスとバックアッププロセスとの間における往復遅延に等しい遅延を加える。これは、遅延の影響を受けやすいサービスのネットワークパフォーマンスを著しく低下させる。
従来技術におけるさまざまな欠点は、プライマリ/バックアップ複製を提供するための実施形態によって対処される。
少なくともいくつかの実施形態においては、プライマリプロセスおよびバックアッププロセスが、プライマリプロセスの状態情報をバックアッププロセスの状態情報と同期化するように構成されている同期化プロセスに関与する。この同期化プロセスは、エポックと呼ばれる期間において機能する。それぞれのエポックごとに、エポック中に生成された出力メッセージをバッファリングする際に使用するために、関連付けられている出力バッファが割り当てられる。現在のエポック中に、プライマリプロセスは、前のエポック以降のプライマリプロセスの状態情報に対する変化を表す状態更新情報を計算する。現在のエポック中に、プライマリプロセスはまた、現在のエポック中に生成された出力メッセージを、現在のエポックにおいて使用するための専用とされている関連付けられている出力バッファ内にバッファリングする。プライマリプロセスは、前のエポックに関する状態更新確認応答をバックアッププロセスから受信することとは無関係に新たなエポックを開始する。現在のエポックに関してバッファリングされている出力メッセージは、現在のエポックに関する状態更新確認応答をプライマリプロセスが受信して、すべての前のエポックのすべての出力バッファが空になった後に、関連付けられている出力バッファからリリースされる。
一実施形態においては、ある装置が、プライマリプロセスとバックアッププロセスとの間において状態を同期化するように構成されている。この装置は、プロセッサと、少なくとも1つのメモリとを含む。少なくとも1つのメモリは、プライマリプロセスの状態情報をバックアッププロセスの状態情報と同期化するように構成されている同期化プロセスのそれぞれの複数のエポックに関連付けられている複数の出力バッファを保持するように構成されている。プロセッサは、現在のエポック中に、現在のエポックに関して、前のエポック以降のプライマリプロセスの状態情報に対する変化を表す状態更新情報を計算し、現在のエポック中に生成された出力メッセージを、現在のエポックに関連付けられている出力バッファ内にバッファリングするように構成されている。プロセッサはまた、前のエポック中にプライマリプロセスによって決定された状態更新情報がバックアッププロセスによって受信されたことを確認して応答する前のエポックに関する状態更新確認応答をバックアッププロセスから受信することとは無関係に新たなエポックを開始するように構成されている。
一実施形態においては、プライマリプロセスとバックアッププロセスとの間において状態を同期化するための方法が提供される。この方法は、プロセッサおよび少なくとも1つのメモリを使用する。プライマリプロセスの状態情報をバックアッププロセスの状態情報と同期化するように構成されている同期化プロセスの現在のエポック中に、現在のエポックに関して状態更新情報が計算され、その状態更新情報は、前のエポック以降のプライマリプロセスの状態情報に対する変化を表し、現在のエポック中に生成された出力メッセージが、現在のエポックに関連付けられている出力バッファ内にバッファリングされる。前のエポック中にプライマリプロセスによって決定された状態更新情報がバックアッププロセスによって受信されたことを確認して応答する前のエポックに関する状態更新確認応答をバックアッププロセスから受信することとは無関係に新たなエポックが開始される。
一実施形態においては、コンピュータ可読記録媒体が、コンピュータによって実行されたときに、プライマリプロセスとバックアッププロセスとの間において状態を同期化するための方法をコンピュータに実行させる命令を格納している。プライマリプロセスの状態情報をバックアッププロセスの状態情報と同期化するように構成されている同期化プロセスの現在のエポック中に、現在のエポックに関して状態更新情報が計算され、その状態更新情報は、前のエポック以降のプライマリプロセスの状態情報に対する変化を表し、現在のエポック中に生成された出力メッセージが、現在のエポックに関連付けられている出力バッファ内にバッファリングされる。前のエポック中にプライマリプロセスによって決定された状態更新情報がバックアッププロセスによって受信されたことを確認して応答する前のエポックに関する状態更新確認応答をバックアッププロセスから受信することとは無関係に新たなエポックが開始される。
本明細書における教示は、添付の図面と併せて以降の詳細な説明を考察することによって容易に理解されることが可能である。
アシンクロナスパイプラインドチェックポインティングプライマリ/バックアップ複製スキームをサポートするように構成されているシステムを示すハイレベルブロック図である。 図1のシステム内のアシンクロナスパイプラインドチェックポインティングプライマリ/バックアップ複製スキームを示す例示的なオペレーション図である。 図2に関して示され説明されているようなエポックを使用するプライマリ/バックアップ複製を提供するための方法の一実施形態を示す図である。 図2に関して示され説明されているようなエポックに関連付けられている情報を管理することによってプライマリ/バックアップ複製を提供するための方法の一実施形態を示す図である。 本明細書において説明されている機能を実行する際に使用するのに適しているコンピュータを示すハイレベルブロック図である。
理解を容易にする目的で、図どうしに共通している同じ要素を指すために、可能な場合には、同じ参照番号が使用されている。
一般に、プライマリ/バックアップ複製機能が本明細書において示され説明されているが、さまざまなその他の機能が本明細書において提示されることもあるだろう。
主として、チェックポイントベースのプライマリ/バックアップ複製(本明細書においては、アシンクロナスパイプラインドチェックポインティングプライマリ/バックアップ複製スキームとして示されている)を提供するためのプライマリ/バックアップ複製機能の実施形態の使用に関して示され説明されているが、プライマリ/バックアップ複製機能のさまざまな実施形態は、イベントベースのプライマリ/バックアップ複製(たとえば、入力、割り込み等などの非決定性のイベントに基づくプライマリ/バックアップ複製)のためのプライマリ/バックアップ複製を提供するために使用されることも可能であるということに留意されたい。
図1は、アシンクロナスパイプラインドチェックポインティングプライマリ/バックアップ複製スキームをサポートするように構成されているシステムのハイレベルブロック図を示している。
図1において示されているように、システム100は、プライマリプロセス110およびバックアッププロセス110(総称して、プロセス110)、ならびに関連付けられている環境120を含む。図1においてさらに示されているように、プライマリプロセスには、出力バッファモジュール112が関連付けられている。
プライマリプロセス110は、環境120と対話するように構成されている。プライマリプロセス110は、環境120から入力メッセージを受信して、それらの受信された入力メッセージを処理するように構成されている。プライマリプロセス110は、(たとえば、プライマリプロセス110によって受信される入力メッセージとは無関係なローカル処理に基づいて、および/またはプライマリプロセス110によって受信される入力メッセージの処理に基づいて)出力メッセージを生成して、それらの出力メッセージを環境120に提供するように構成されている。プライマリプロセス110は、出力バッファモジュール112を使用して、それらの生成された出力メッセージをバッファリングするように構成されている。出力バッファモジュール112(およびその関連付けられている出力バッファb−b)は、任意の適切な様式で(たとえば、それぞれのバッファごとに別々のキューを使用して、それぞれの出力バッファを区別するためのキューマーカを含む単一のキューを使用して、といった具合に)実装されることが可能である。プライマリプロセス110は、受信入力メッセージをバッファリングするために1つまたは複数の入力バッファ(明確にする目的で省略されている)を使用するように構成されることも可能である。プライマリプロセス110と環境120との間における通信は、双方向である(これは、出力バッファモジュール112をよりよく示すためにプライマリプロセス110への入力とプライマリプロセス110からの出力とに関する2つの異なる通信パスを使用して表されているが、任意の適切な様式で提供されることが可能である)ということに留意されたい。
バックアッププロセス110は、プライマリプロセス110をバックアップするように構成されている。バックアッププロセス110は、プライマリプロセス110が機能しなくなったときにアクティブプロセスとして機能するように構成されている。バックアッププロセス110は、アクティブなときには、上述のように、プライマリプロセス110の様式と同様の様式で機能するように構成されている。バックアッププロセス110がアクティブであるときには、バックアッププロセス110と環境120との間における通信は、双方向である(これは、バックアッププロセス110への入力とバックアッププロセス110からの出力との両方に関する1つの通信パスを使用して表されているが、任意の適切な様式で提供されることが可能である)ということに留意されたい。
プライマリプロセス110が機能しなくなったときにバックアッププロセス110がアクティブプロセスの役割を担うためには、プライマリプロセス110とバックアッププロセス110とが同期化されることが必要である。したがって、プライマリプロセス110の状態とマッチするようにバックアッププロセス110の状態を定期的に同期化するために、チェックポイントベースの同期化が実行される。プライマリプロセス110とバックアッププロセス110との間における状態の同期化は、ディスク状態およびメモリ状態の同期化を含む。プライマリプロセス110とバックアッププロセス110との間におけるディスク状態およびメモリ状態の両方の整合性を確保するためには、状態情報がそれに基づくネットワーク出力がプライマリプロセス110によって環境120へリリースされることが可能になる前に、プライマリプロセス110とバックアッププロセス110とが同期化されることが必要であるということに留意されたい。一実施形態においては、アシンクロナスパイプラインドチェックポインティングプライマリ/バックアップ複製スキームを使用して同期化が実行され、そのアシンクロナスパイプラインドチェックポインティングプライマリ/バックアップ複製スキームは、本明細書においては図2−図4に関連して示され、説明されている。
プロセス110は、アプリケーション、クラウドコンピューティング環境における仮想マシン(VM)等など、プライマリ/バックアップ複製が使用されることが可能である任意の適切なタイプのプロセスを含むことができる。状態情報と、関連付けられている状態情報確認応答とをやり取りする目的でのプロセス110どうしの間における通信は、任意の適切な様式で提供されることが可能であるということに留意されたい。たとえば、プロセス110どうしの間における通信は、1つのデバイス内の内部通信を介することが可能であり、その場合には、両方のプロセス110は、単一の物理デバイス内で(例示としては、プライマリプロセス110とバックアッププロセス110との間における破線を使用して)実施される。たとえば、プロセス110どうしの間における通信は、通信ネットワークを介することが可能であり、その場合には、プロセス110どうしは、別々の物理デバイス上で(例示としては、環境120および/またはその他の任意の適切な環境もしくはネットワークを介して)稼働している。明確にする目的で省略されているが、プロセス110どうしは、さまざまなプロセッサおよびメモリ(ならびに任意選択で、さまざまなその他のハードウェアおよびソフトウェア)が関連付けられている1つまたは複数の物理マシン上で稼働していることが可能であるということがわかるであろう。
環境120は、通信ネットワークまたはその他のタイプの環境など、任意の適切なタイプの環境を含むことができる。明確にする目的で省略されているが、環境120は、プライマリプロセス110(および、アクティブなときには、バックアッププロセス110)がさまざまなタイプのメッセージをやり取りすることができる相手であるさまざまなノードを含むことができるということがわかるであろう。たとえば、プライマリプロセス110(および、アクティブなときには、バックアッププロセス110)は、環境120からさまざまなタイプの入力メッセージを受信して処理することができ、同様に、プライマリプロセス110(および、アクティブなときには、バックアッププロセス110)は、さまざまなタイプの出力メッセージを生成して環境120へ伝搬することができる。
図2は、図1のシステム内のアシンクロナスパイプラインドチェックポインティングプライマリ/バックアップ複製スキームの例示的なオペレーション図を示している。
図2の例示的なオペレーション図200において示されているように、プライマリプロセス110(Pと示されている)およびバックアッププロセス110(Bと示されている)は、プライマリプロセス110とバックアッププロセス110との間において状態を同期化するために対話する。
プライマリプロセス110は、エポックと示されている期間内で機能する(例示としては、i番目のエポックを示すために、eが使用される)。
現在のエポックeは、前のエポックei−1(本明細書においては、先行エポックと呼ばれることも可能である)の終了後の任意の時点で開始され、同様に、新たなエポックei+1(本明細書においては、次なるエポックと呼ばれることも可能である)は、現在のエポックeの終了後の任意の時点で開始される。
現在のエポックe内で、プライマリプロセス110は、オペレーション(すなわち、プライマリプロセス110のオペレーション)を実行し、これは、その状態情報に対する変化をもたらす場合がある。プライマリプロセス110は、バックアッププロセス110のために状態更新情報を決定する(例示としては、現在のエポックe中にバックアッププロセス110のためにプライマリプロセス110によって計算された現在の状態更新情報を示すために、mが使用される)。現在のエポックe中にプライマリプロセス110によって決定された現在の状態更新情報mは、前のエポックei−1中にプライマリプロセス110によって前の状態更新情報mi−1が決定されて以降のプライマリプロセス110の状態に対する変化(ひいては、プライマリプロセス110の状態と、バックアッププロセス110の状態との間における相違)を表す。プライマリプロセス110は、現在のエポックe中に自分のオペレーションを実行するのと同時に、または現在のエポックe中に自分のオペレーションを完了した後に、現在の状態更新情報miを計算することができる。
現在のエポックe内で、プライマリプロセス110は、プライマリプロセス110が機能する環境に提供されることを意図されている出力メッセージを生成することもできる。プライマリプロセス110は、それらの出力メッセージを任意の適切な様式で生成することができる。たとえば、プライマリプロセス110は、プライマリプロセス110において受信されるいかなる入力メッセージとも無関係に実行されるプライマリプロセス110におけるローカル処理に基づいて出力メッセージを生成することができる。たとえば、プライマリプロセス110は、入力メッセージを受信し、それらの入力メッセージを処理し、関連付けられている出力メッセージを作成することができる。入力メッセージの処理および出力メッセージの生成は、プライマリプロセス110によって実行されるオペレーションの一部であるとみなされることが可能であるということに留意されたい。現在のエポックe中に生成された出力メッセージは、現在のエポックeの専用とされている関連付けられている出力バッファ内に格納される(例示としては、i番目のエポックに関するi番目の出力バッファを示すために、bが使用される)。
プライマリプロセスは、現在のエポックeの終了後の任意の時点で新たなエポックei+1を開始する。次いでプライマリプロセス110は、新たなエポックei+1(プライマリプロセス110にとっては、これが現在のエポックになっている)の間に自分の機能を実行することを開始することができる。すなわち、プライマリプロセス110は、自分のオペレーションを実行すること、新たなエポックei+1に関する新たな状態更新情報mi+1を計算すること、新たなエポックei+1中に出力メッセージを生成してバッファリングすることなどが可能である。プライマリプロセス110は、(1)任意の前のエポックに関する関連付けられている状態更新情報をバックアッププロセス110が受信して適用したことを示すバックアッププロセス110からのあらゆる状態更新確認応答を受信すること、(2)現在のエポックeに関する状態更新情報をバックアッププロセス110へ送信すること、および(3)現在のエポックeに関する状態更新情報をバックアッププロセス110が受信して適用したことを示すバックアッププロセス110からの状態更新確認応答を受信することとは無関係に、新たなエポックei+1を開始するということに留意されたい。任意の現在のまたは過去の状態更新確認応答を受信することとは無関係に新たなエポックei+1を開始して以降、プライマリプロセスは、任意の所与の時点で保留中でありうるエポックの数に関するいかなる制約も伴わずに、新たなエポックを開始して、それらの新たなエポックに関する状態更新情報を引き続き送信することができるということにさらに留意されたい。プライマリプロセス110は、連続したエポックにわたって、この様式で継続する。
プライマリプロセス110は、現在のエポックe中に決定された現在の状態更新情報をバックアッププロセス110へ送信する(例示としては、プライマリプロセス110からバックアッププロセス110へ送信される現在の状態更新情報を示すために、mが使用される)。プライマリプロセス110は、次なるエポックei+1の初期化とは無関係に、現在のエポックeに関する現在の状態更新情報miをバックアッププロセス110へ送信することができる。一実施形態においては、たとえば、プライマリプロセス110は、現在のエポックe中に現在のエポックeに関する現在の状態更新情報mをバックアッププロセス110へ送信することができる(たとえば、その場合には、現在の状態更新情報mは、現在のエポックe中にプライマリプロセス110によってバックアッププロセス110へと押し出されるが、必ずしも現在のエポックe中にバックアッププロセス110によって受信されるとは限らない)。一実施形態においては、たとえば、プライマリプロセス110は、次なるエポックei+1中に現在のエポックeに関する現在の状態更新情報mをバックアッププロセス110へ送信することができる(たとえば、その場合には、現在の状態更新情報mは、現在のエポックeが終了した後に、プライマリプロセス110によってバックアッププロセス110へと押し出される)。このような実施形態の組合せがサポートされることも可能である(たとえば、その場合には、現在のエポックeの終了、および次なるエポックei+1の開始の両方の最中に、現在の状態更新情報mをプライマリプロセス110によってバックアッププロセス110へと押し出すことが行われる)ということに留意されたい。状態更新情報は、任意の適切な様式で(たとえば、任意の適切な通信メディアを介して送信される1つまたは複数のメッセージを使用して)プライマリプロセス110からバックアッププロセス110へ送信されることが可能である。
バックアッププロセス110は、プライマリプロセス110のエポックとは無関係に、エポックeに関するプライマリプロセス110によって送信された状態更新情報mを受信し、プライマリプロセス110から受信された状態更新情報mに基づいて自分の状態情報を更新し、関連付けられている状態更新確認応答をプライマリプロセス110へ送信する(例示としては、エポックeの状態更新情報mに対応してバックアッププロセス110からプライマリプロセス110へ送信される状態更新確認応答を示すために、aが使用される)。状態更新確認応答は、任意の適切な様式で(たとえば、任意の適切な通信メディアを介して送信される任意の適切なタイプのメッセージを使用して)バックアッププロセス110からプライマリプロセス110へ送信されることが可能である。プライマリプロセス110は、(1)エポックeに関するバックアッププロセス110からの状態更新確認応答aを受信した後に、および(2)エポックeよりも前のすべてのエポックに関するすべての出力メッセージが、それらの関連付けられている出力バッファから環境120へリリースされた後に、エポックeの出力バッファbから出力メッセージをリリースする。
出力メッセージがエポックeの出力バッファbから環境120へリリースされた時点で、プライマリプロセス110は、もはやエポックe内で機能していないが、出力メッセージがエポックeの出力バッファbから環境120へリリースされるまで、エポックeは、プライマリプロセス110においては依然として保留中であるとみなされるということに留意されたい。したがって、上述のように、プライマリプロセス110は、エポックeの出力メッセージがエポックeの出力バッファbから環境120へリリースされることが可能である状況をモニタするように(たとえば、エポックeに関するバックアッププロセス110からの状態更新確認応答aが受信されていないかモニタするように、およびエポックeよりも前のすべてのエポックに関するすべての出力メッセージが、それらの関連付けられている出力バッファから環境120へいつリリースされたかを検知するために前のエポックの出力バッファの現在のステータスをモニタするように構成されている。
バッファbは、エポックe中に生成された出力メッセージを格納するために、それぞれのエポックeごとにインスタンス化されており、同様に、エポックeのバッファbは、出力メッセージがバッファbからリリースされた後に終了される。したがって、それぞれのバッファは、特定の長さの時間にわたって(すなわち、その関連付けられているエポックの開始から、その関連付けられているエポックの出力バッファから出力メッセージがリリースされるまで)存在し、任意の所与の時点で特定の数のバッファのみが存在することになる。
上述のように、それぞれのバッファは、特定の長さの時間にわたって存在し、ひいては、保留中のバッファの数に関する限界は、次のように計算されることが可能である。第1に、eが現在のエポックであるときに、またはプライマリプロセス110が、まだバックアッププロセス110からの状態更新確認応答aを待っているときに、エポックeが保留中であるとみなされる場合には、1つのバッファbは、保留中のエポックeごとに存在しなければならないということに留意されたい。第2に、エポックeの終了と、プライマリプロセス110が、関連付けられている状態更新確認応答aをバックアッププロセス110から受信する時点との間における時間をTと表す(これは、大まかには、プライマリプロセス110とバックアッププロセス110との間における往復時間と考えられることが可能である)。第3に、|エポック|で、エポックの長さ(時間)を表す。kが(k−1)|エポック|≧Tを満たす場合には、最大でk個の保留中のエポックが存在することになり、したがって、k個のバッファで十分であろう。したがって、アシンクロナスパイプラインドチェックポインティングプライマリ/バックアップ複製スキームは、APCという表記を使用して表されることが可能であり、この場合、nは、確認応答されていないチェックポイントの数を表す(n=k−1)。
アシンクロナスパイプラインドチェックポインティングプライマリ/バックアップ複製スキームのオペレーションは、図2の例示的なオペレーション図200のさらに具体的な考察を介して、よりよく理解されることが可能である。
図2のエポックeの説明が、以降に続く。エポックeにおいて生成された出力メッセージは、エポックeに関連付けられているバッファb内にバッファリングされる。エポックeの完了時に、プライマリプロセス110は、状態更新情報mをバックアッププロセス110へ送信する(この状態更新情報mは、伝搬遅延に起因して、第3のエポックeの終了付近までバックアッププロセス110においては受信されない)。バックアッププロセス110は、その状態更新情報を処理し、これは、第3のエポックeの終了付近から、第4のエポックeの開始付近までに行われる。バックアッププロセス110は、状態更新確認応答aをプライマリプロセス110へ送信する(この状態更新確認応答aは、伝搬遅延に起因して、第6のエポックeの開始付近までプライマリプロセス110においては受信されない)。次いで、エポックe中にバッファb内にバッファリングされた出力メッセージは、第6のエポックe中に状態更新確認応答aが受信されたときに(前のエポックのバッファが空にされていると想定して)環境120へリリースされる。この時点で、第1のエポックeは、プライマリプロセス110に関して、もはや保留中ではなくなる。
図2のエポックeの説明が、以降に続く。エポックeにおいて生成された出力メッセージは、エポックeに関連付けられているバッファb内にバッファリングされる。エポックeの完了時に、プライマリプロセス110は、状態更新情報mをバックアッププロセス110へ送信する(この状態更新情報mは、伝搬遅延に起因して、第4のエポックeの終了付近までバックアッププロセス110においては受信されない)。バックアッププロセス110は、その状態更新情報を処理し、これは、第4のエポックeの終了付近から、第5のエポックeの開始付近までに行われる。バックアッププロセス110は、状態更新確認応答aをプライマリプロセス110へ送信する(この状態更新確認応答aは、伝搬遅延に起因して、第7のエポックeの開始付近までプライマリプロセス110においては受信されない)。次いで、エポックe中にバッファb内にバッファリングされた出力メッセージは、第7のエポックe中に状態更新確認応答aが受信されたときに(前のエポックのバッファが空にされていると想定して)環境120へリリースされる。この時点で、第2のエポックeは、プライマリプロセス110に関して、もはや保留中ではなくなる。第2のエポックeからは、次なるエポック(第3のエポックe)の開始は、任意の前のエポック(すなわち、エポックe、e、およびe2)に関する関連付けられている状態更新情報をバックアッププロセス110が受信して適用したことを示すバックアッププロセス110からのあらゆる状態更新確認応答を受信することとは無関係であると見られることが可能である。なぜなら、エポックeの状態更新確認応答aおよびエポックeの更新確認応答aがプライマリプロセス110によって受信される前に、第3のエポックeが開始されるためである。
図3は、図2に関して示され説明されているようなエポックを使用するプライマリ/バックアップ複製を提供するための方法の一実施形態を示している。
ステップ310において、方法300が開始する。
ステップ320において、エポックeが初期化される。エポックeは、エポックeのために割り当てられている関連付けられているバッファbを有している。
ステップ330において、プライマリプロセスが、エポックe中に機能を実行する。プライマリプロセスは、オペレーション(そのうちの少なくともいくつかは、プライマリプロセスの状態情報に対する変化をもたらす場合がある)を実行し、エポックeに関する状態更新情報を計算し、生成された出力メッセージを、エポックeに関連付けられているバッファb内にバッファリングする。これらの機能は、エポックe内の任意の適切な時点で実行されることが可能である(たとえば、状態更新情報は、オペレーションが実行されるのと同時に、および/またはその後で計算されることが可能であり、出力メッセージは、エポックeの全体を通じて任意の時点で生成されバッファリングされることが可能であるなど、ならびにそれらのさまざまな組合せが可能である)ということに留意されたい。
ステップ340において、方法300は、エポックeが完了しているかどうかを決定する。エポックeは、エポックeに関する状態更新情報が決定された後の任意の時点で完了しているとみなされることが可能である。エポックeが完了していない場合には、方法300は、ステップ330へ戻る(すなわち、プライマリプロセスは、機能(たとえば、エポックeに関する状態更新情報を決定すること、生成された出力メッセージを、エポックeに関連付けられているバッファb内にバッファリングすることなど)のうちのいくつかまたはすべてを引き続き実行する)。エポックeが完了している場合には、方法300は、(1)ステップ320へ戻って次なるエポック(i=i+1)を開始し、(2)ステップ350へ進む。次なるエポックei+1が開始されるが、エポックe中に生成された出力メッセージが環境へリリースされることが可能になるまでそれらの出力メッセージをバッファリングする目的でエポックeは保留中のままであるということに留意されたい。
ステップ350において、プライマリプロセスは、エポックeに関連付けられている情報の管理を開始する。これは、状態更新情報をバックアッププロセスへ送信すること、およびエポックeに関連付けられているバッファb内にバッファリングされている出力メッセージのリリースをコントロールするためのアクションを実行することを含むことができる。エポックeに関連付けられている情報を管理するための例示的なプロセスは、本明細書においては図4に関連して示され、説明されている。
図3においては、方法300は、ステップ340から、方法300が(次なるエポックei+1の初期化のために)ステップ320へ戻り、また(エポックeに関連付けられている情報の管理のために)ステップ350へ進むように構成されている。これは、ステップ320−340のそれぞれの実行ごとにステップ350の別々の実行が存在することになるということを示している。したがって、任意の所与の時点で、エポックeに関するステップ320−340の現在の実行と、エポックeに関するステップ320−340の実行の時点でまだ保留中である1つまたは複数の前のエポックに関するステップ350の1つまたは複数の同時の実行とが存在することになる。
図4は、図2に関して示され説明されているようなエポックに関連付けられている情報を管理することによってプライマリ/バックアップ複製を提供するための方法の一実施形態を示している。
上述のように、図4の方法400は、図3の方法300によって初期化されたそれぞれのエポックeごとに図3の方法300のステップ350として使用するのに適している。
ステップ410において、方法400が開始する。この時点で、エポックeに関する状態更新情報が、プライマリプロセスによって(たとえば、図3の方法300のステップ320−340を使用して)計算されていると想定される。
ステップ420において、プライマリプロセスは、エポックeに関する状態更新情報をバックアッププロセスへ送信する。
ステップ430において、プライマリプロセスは、エポックeに関する状態更新確認応答がバックアッププロセスから受信されていないかモニタする。
ステップ440において、プライマリプロセスは、エポックeの状態更新確認応答が受信されているかどうかを決定する。エポックeの状態更新確認応答が受信されていない場合には、方法400は、ステップ430へ戻る(すなわち、プライマリプロセスは、エポックeに関する状態更新確認応答が受信されていないか引き続きモニタする)。エポックeの状態更新確認応答が受信されている場合には、方法400は、ステップ450へ進む。
ステップ450において、プライマリプロセスは、すべての前のエポックのすべての出力メッセージが環境へリリースされているかどうかを決定する。すべての前のエポックのすべての出力メッセージが環境へリリースされているわけではない場合には、方法400は、ステップ450に留まる(すなわち、プライマリプロセスは、エポックeのバッファbの出力メッセージに関して処理を進める前に、すべての前のエポックのすべての出力メッセージが環境へリリースされるまで待つ)。すべての前のエポックのすべての出力メッセージが環境へリリースされている場合には、方法400は、ステップ460へ進む。
ステップ460において、プライマリプロセスは、エポックeのバッファbの出力メッセージを環境へリリースする。
ステップ470において、方法400は終了する。図3に関連して述べたように、図4の方法400は、図3の方法300によって初期化されたそれぞれのエポックごとに繰り返される。したがって、任意の所与の時点で、方法400の複数の実行が、互いと、ならびに図3の方法300の実行と同時にアクティブになることが予想される。
上述したように、図3の方法300および図4の方法400は、エポックeが完了して新たなエポックei+1が開始された後にエポックeに関する状態更新情報がプライマリプロセスからバックアッププロセスへ送信される一実施形態に関連して示され説明されているが、エポックeに関する状態更新情報は、その他の任意の適切な時点で(たとえば、(示されていないが)ステップ330の一部としてエポックe内で、(図4において示されているように)ステップ350の一部としてエポックeの後に、またはそれらの組合せで)プライマリプロセスからバックアッププロセスへ送信されることが可能であるということに留意されたい。
本明細書においては、主として、プライマリ要素およびバックアップ要素がプロセスであるプライマリ/バックアップ複製スキームにおける同期化を提供することに関連して示され説明されているが、本明細書において示され説明されているさまざまな実施形態は、その他のタイプのプライマリ要素およびバックアップ要素に関するプライマリ/バックアップ複製スキームにおける同期化を提供するために(たとえば、プライマリデバイスとバックアップデバイスとの(たとえば、ネットワークのノードどうしの、またはその他の適切なタイプのデバイスどうしの)間における同期化のために、プライマリアプリケーションとバックアップアプリケーションとの間における同期化のためになど)使用されることが可能であるということがわかるであろう。
図5は、本明細書において説明されている機能を実行する際に使用するのに適しているコンピュータのハイレベルブロック図を示している。
図5において示されているように、コンピュータ500は、プロセッサ要素502(たとえば、中央処理装置(CPU)および/またはその他の適切な(1つもしくは複数の)プロセッサ)、ならびにメモリ504(たとえば、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)など)を含む。コンピュータ500はまた、協同モジュール/プロセス505、ならびに/またはさまざまな入力/出力デバイス506(たとえば、ユーザ入力デバイス(キーボード、キーパッド、マウスなど)、ユーザ出力デバイス(ディスプレイ、スピーカーなど)、入力ポート、出力ポート、受信機、送信機、およびストレージデバイス(たとえば、テープドライブ、フロッピー(登録商標)ドライブ、ハードディスクドライブ、コンパクトディスクドライブなど))を含むことができる。
本明細書において示され説明されている機能は、ソフトウェアにおいて(たとえば、1つもしくは複数のプロセッサ上でのソフトウェアの実施を介して)実施されることが可能であり、ならびに/またはハードウェアにおいて(たとえば、汎用コンピュータ、1つもしくは複数の特定用途向け集積回路(ASIC)、および/もしくはその他の任意のハードウェア均等物を使用して)実施されることが可能であるということがわかるであろう。
本明細書において示され説明されている機能は、(たとえば、専用コンピュータを実装する目的で汎用コンピュータ上で実行するために(たとえば、1つもしくは複数のプロセッサによる実行を介して))ソフトウェアにおいて実施されることが可能であり、ならびに/またはハードウェアにおいて(たとえば、1つもしくは複数の特定用途向け集積回路(ASIC)、および/または1つもしくは複数のその他のハードウェア均等物を使用して)実施されることが可能であるということがわかるであろう。
一実施形態においては、協同プロセス505は、本明細書において論じられている機能を実施するために、メモリ404内にロードされて、プロセッサ502によって実行されることが可能である。したがって、協同プロセス505(関連付けられているデータ構造を含む)は、コンピュータ可読記録媒体、たとえば、RAMメモリ、磁気または光学ドライブまたはディスケットなどに格納されることが可能である。
図5において示されているコンピュータ500は、本明細書において説明されている機能要素、および/または本明細書において説明されている機能要素の一部を実施するのに適している一般的なアーキテクチャおよび機能性を提供するということがわかるであろう。たとえば、コンピュータ500は、プライマリプロセス110、プライマリプロセス110をホストするように構成されているデバイス、バックアッププロセス110、バックアッププロセス110をホストするように構成されているデバイス、環境120のデバイスなどのうちの1つまたは複数を実施するのに適している一般的なアーキテクチャおよび機能性を提供する。
本明細書においてソフトウェア方法として論じられているステップのうちのいくつかは、ハードウェア内に、たとえば、さまざまな方法ステップを実行するためにプロセッサと協同する回路として実装されることが可能であると考えられる。本明細書において説明されている機能/要素の一部は、コンピュータプログラム製品として実装されることが可能であり、その場合には、コンピュータ命令が、コンピュータによって処理されたときに、本明細書において説明されている方法および/または技術が呼び出されるかまたはその他の形で提供されるように、そのコンピュータのオペレーションを適合させる。本発明の方法を呼び出すための命令は、固定式のメディアもしくは取り外し可能なメディア内に格納されること、ブロードキャストメディアもしくはその他の信号搬送メディア内に含めてデータストリームを介して伝送されること、および/またはそれらの命令に従って機能するコンピューティングデバイス内のメモリ内に記憶されることが可能である。
さまざまな実施形態の態様が、特許請求の範囲において明記されている。さまざまな実施形態のそれらおよびその他の態様は、下記の番号付けされた条項において明記されている:
1. プライマリプロセスとバックアッププロセスとの間において状態を同期化するための装置であって、
プライマリプロセスの状態情報をバックアッププロセスの状態情報と同期化するように構成されている同期化プロセスのそれぞれの複数のエポックに関連付けられている複数の出力バッファを保持するように構成されている少なくとも1つのメモリと、
現在のエポック中に、
現在のエポックに関して、前のエポック以降のプライマリプロセスの状態情報に対する変化を表す状態更新情報を計算し、
現在のエポック中に生成された出力メッセージを、現在のエポックに関連付けられている出力バッファ内にバッファリングし、
前のエポック中にプライマリプロセスによって決定された状態更新情報がバックアッププロセスによって受信されたことを確認して応答する前のエポックに関する状態更新確認応答をバックアッププロセスから受信することとは無関係に新たなエポックを開始する
ように構成されているプロセッサとを含む、装置。
2. プロセッサが、
現在のエポック中に、入力メッセージを受信し、出力メッセージの少なくとも一部分を生成するために入力メッセージを処理するように構成されている、第1条に記載の装置。
3. プロセッサが、
現在のエポック中に、出力メッセージの少なくとも一部分を生成するためにローカル処理を実行するように構成されている、第1条に記載の装置。
4. プロセッサが、
状態更新確認応答が現在のエポックに関してバックアッププロセスから受信され、すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされている場合には、現在のエポックに関連付けられている出力バッファから出力メッセージをリリースするように構成されている、第1条に記載の装置。
5. プロセッサが、出力メッセージを、出力バッファから、プライマリプロセスおよびバックアッププロセスに関連付けられている環境へリリースするように構成されている、第4条に記載の装置。
6. 環境が、通信ネットワークと、プライマリプロセスと通信するように構成されている少なくとも1つのその他のプロセスとを含む、第5条に記載の装置。
7. プロセッサが、
現在のエポックに関連付けられている状態更新情報がバックアッププロセスによって受信され処理された旨のバックアッププロセスからの確認応答をモニタするように構成されている、第1条に記載の装置。
8. プロセッサが、
確認応答が受信された場合には、すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされているかどうかを特定するように構成されている、第7条に記載の装置。
9. プロセッサが、
すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされているわけではないという決定が行われた場合には、現在のエポックに関連付けられている出力バッファから出力メッセージをリリースするのを遅らせるように構成されている、第8条に記載の装置。
10. プロセッサが、
すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされているという決定が行われた場合には、現在のエポックに関連付けられている出力バッファから出力メッセージをリリースするように構成されている、第8条に記載の装置。
11. プライマリプロセスとバックアッププロセスとの間において状態を同期化するための方法であって、
プライマリプロセスの状態情報をバックアッププロセスの状態情報と同期化するように構成されている同期化プロセスの現在のエポックに関する状態更新情報を計算するステップであり、状態更新情報が、現在のエポック中に計算され、状態更新情報が、前のエポック以降のプライマリプロセスの状態情報に対する変化を表す、計算するステップと、
現在のエポック中に生成された出力メッセージを、現在のエポックに関連付けられている出力バッファ内にバッファリングするステップであり、出力メッセージが、現在のエポック中にバッファリングされる、バッファリングするステップと、
前のエポック中にプライマリプロセスによって決定された状態更新情報がバックアッププロセスによって受信されたことを確認して応答する前のエポックに関する状態更新確認応答をバックアッププロセスから受信することとは無関係に新たなエポックを開始するステップと
のためにプロセッサおよび少なくとも1つのメモリを使用するステップを含む、方法。
12. 現在のエポック中に、入力メッセージを受信し、出力メッセージの少なくとも一部分を生成するために入力メッセージを処理するステップ
をさらに含む、第11条に記載の方法。
13. 現在のエポック中に、出力メッセージの少なくとも一部分を生成するためにローカル処理を実行するステップ
をさらに含む、第11条に記載の方法。
14. 状態更新確認応答が現在のエポックに関してバックアッププロセスから受信され、すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされている場合には、現在のエポックに関連付けられている出力バッファから出力メッセージをリリースするステップ
をさらに含む、第11条に記載の方法。
15. 出力メッセージが、出力バッファから、プライマリプロセスおよびバックアッププロセスに関連付けられている環境へリリースされる、第14条に記載の方法。
16. 環境が、通信ネットワークと、プライマリプロセスと通信するように構成されている少なくとも1つのその他のプロセスとを含む、第15条に記載の方法。
17. 現在のエポックに関連付けられている状態更新情報がバックアッププロセスによって受信され処理された旨のバックアッププロセスからの確認応答をモニタするステップ
をさらに含む、第11条に記載の方法。
18. 確認応答が受信された場合には、すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされているかどうかを決定するステップ
をさらに含む、第17条に記載の方法。
19. すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされているわけではないという決定が行われた場合には、現在のエポックに関連付けられている出力バッファから出力メッセージをリリースするのを遅らせるステップ
をさらに含む、第18条に記載の方法。
20. すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされているという決定が行われた場合には、現在のエポックに関連付けられている出力バッファから出力メッセージをリリースするステップ
をさらに含む、第18条に記載の方法。
21. コンピュータによって実行されたときに、プライマリプロセスとバックアッププロセスとの間における同期化のための方法をコンピュータに実行させる命令を格納しているコンピュータ可読記録媒体であって、その方法が、
プライマリプロセスの状態情報をバックアッププロセスの状態情報と同期化するように構成されている同期化プロセスの現在のエポックに関する状態更新情報を計算するステップであり、状態更新情報が、現在のエポック中に計算され、状態更新情報が、前のエポック以降のプライマリプロセスの状態情報に対する変化を表す、計算するステップと、
現在のエポック中に生成された出力メッセージを、現在のエポックに関連付けられている出力バッファ内にバッファリングするステップであり、出力メッセージが、現在のエポック中にバッファリングされる、バッファリングするステップと、
前のエポック中にプライマリプロセスによって決定された状態更新情報がバックアッププロセスによって受信されたことを確認して応答する前のエポックに関する状態更新確認応答をバックアッププロセスから受信することとは無関係に新たなエポックを開始するステップとを含む、コンピュータ可読記録媒体。
本明細書においては、本発明の教示を組み込むさまざまな実施形態が示され、詳細に説 明されているが、当業者なら、依然としてそれらの教示を組み込むその他の多くの変更された実施形態を容易に考案することができる。

Claims (10)

  1. プライマリプロセスとバックアッププロセスとの間において状態を同期化するための装置であって、
    プライマリプロセスの状態情報をバックアッププロセスの状態情報と同期化するように構成されている同期化プロセスのそれぞれの複数のエポックに関連付けられている複数の出力バッファを保持するように構成されている少なくとも1つのメモリと、
    現在のエポック中に、
    現在のエポックに関して、前のエポック以降のプライマリプロセスの状態情報に対する変化を表す状態更新情報を計算し、
    現在のエポック中に生成された出力メッセージを、現在のエポックに関連付けられている出力バッファ内にバッファリングし、
    前のエポック中にプライマリプロセスによって決定された状態更新情報がバックアッププロセスによって受信されたことを確認して応答する前のエポックに関する状態更新確認応答をバックアッププロセスから受信することとは無関係に新たなエポックを開始する
    ように構成されているプロセッサとを含む、装置。
  2. プロセッサが、
    現在のエポック中に、入力メッセージを受信し、出力メッセージの少なくとも一部分を生成するために入力メッセージを処理するように構成されている、請求項1に記載の装置。
  3. プロセッサが、
    現在のエポック中に、出力メッセージの少なくとも一部分を生成するためにローカル処理を実行するように構成されている、請求項1に記載の装置。
  4. プロセッサが、
    状態更新確認応答が現在のエポックに関してバックアッププロセスから受信され、すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされている場合には、現在のエポックに関連付けられている出力バッファから出力メッセージをリリースするように構成されている、請求項1に記載の装置。
  5. プロセッサが、出力メッセージを、出力バッファから、プライマリプロセスおよびバックアッププロセスに関連付けられている環境へリリースするように構成されている、請求項4に記載の装置。
  6. プロセッサが、
    現在のエポックに関連付けられている状態更新情報がバックアッププロセスによって受信され処理された旨のバックアッププロセスからの確認応答をモニタするように構成されている、請求項1に記載の装置。
  7. プロセッサが、
    確認応答が受信された場合には、すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされているかどうかを決定するように構成されている、請求項6に記載の装置。
  8. プロセッサが、
    すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされているわけではないという決定が行われた場合には、現在のエポックに関連付けられている出力バッファから出力メッセージをリリースするのを遅らせ、
    すべての前のエポックの出力メッセージがそれらのそれぞれの出力バッファからリリースされているという決定が行われた場合には、現在のエポックに関連付けられている出力バッファから出力メッセージをリリースするように構成されている、請求項7に記載の装置。
  9. プライマリプロセスとバックアッププロセスとの間において状態を同期化するための方法であって、
    プライマリプロセスの状態情報をバックアッププロセスの状態情報と同期化するように構成されている同期化プロセスの現在のエポックに関する状態更新情報を計算するステップであり、状態更新情報が、現在のエポック中に計算され、状態更新情報が、前のエポック以降のプライマリプロセスの状態情報に対する変化を表す、計算するステップと、
    現在のエポック中に生成された出力メッセージを、現在のエポックに関連付けられている出力バッファ内にバッファリングするステップであり、出力メッセージが、現在のエポック中にバッファリングされる、バッファリングするステップと、
    前のエポック中にプライマリプロセスによって決定された状態更新情報がバックアッププロセスによって受信されたことを確認して応答する前のエポックに関する状態更新確認応答をバックアッププロセスから受信することとは無関係に新たなエポックを開始するステップと
    のためにプロセッサおよび少なくとも1つのメモリを使用するステップを含む、方法。
  10. コンピュータによって実行されたときに、プライマリプロセスとバックアッププロセスとの間における同期化のための方法をコンピュータに実行させる命令を格納しているコンピュータ可読記録媒体であって、その方法が、
    プライマリプロセスの状態情報をバックアッププロセスの状態情報と同期化するように構成されている同期化プロセスの現在のエポックに関する状態更新情報を計算するステップであり、状態更新情報が、現在のエポック中に計算され、状態更新情報が、前のエポック以降のプライマリプロセスの状態情報に対する変化を表す、計算するステップと、
    現在のエポック中に生成された出力メッセージを、現在のエポックに関連付けられている出力バッファ内にバッファリングするステップであり、出力メッセージが、現在のエポック中にバッファリングされる、バッファリングするステップと、
    前のエポック中にプライマリプロセスによって決定された状態更新情報がバックアッププロセスによって受信されたことを確認して応答する前のエポックに関する状態更新確認応答をバックアッププロセスから受信することとは無関係に新たなエポックを開始するステップとを含む、コンピュータ可読記録媒体。
JP2014550297A 2011-12-29 2012-11-19 プライマリ/バックアップ複製スキームにおける同期化のための方法および装置 Pending JP2015508537A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/339,497 US8868862B2 (en) 2011-12-29 2011-12-29 Method and apparatus for synchronization in primary-backup replication schemes
US13/339,497 2011-12-29
PCT/US2012/065755 WO2013101362A2 (en) 2011-12-29 2012-11-19 Method and apparatus for synchronization in primary-backup replication schemes

Publications (1)

Publication Number Publication Date
JP2015508537A true JP2015508537A (ja) 2015-03-19

Family

ID=47428981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014550297A Pending JP2015508537A (ja) 2011-12-29 2012-11-19 プライマリ/バックアップ複製スキームにおける同期化のための方法および装置

Country Status (6)

Country Link
US (1) US8868862B2 (ja)
EP (1) EP2798496B1 (ja)
JP (1) JP2015508537A (ja)
KR (1) KR20140097511A (ja)
CN (1) CN104054058B (ja)
WO (1) WO2013101362A2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10284417B2 (en) * 2015-06-22 2019-05-07 Arista Networks, Inc. Method and system for sharing state between network elements
US10430240B2 (en) * 2015-10-13 2019-10-01 Palantir Technologies Inc. Fault-tolerant and highly-available configuration of distributed services
CN106776155A (zh) * 2016-12-08 2017-05-31 西安交大捷普网络科技有限公司 一种应用态连接同步方法
US11102106B2 (en) 2018-04-04 2021-08-24 Arista Networks, Inc. Dynamic flooding for link state protocols
US11671329B2 (en) 2018-04-04 2023-06-06 Arista Networks, Inc. Computation of network flooding topologies
US11218399B2 (en) 2018-06-20 2022-01-04 Arista Networks, Inc. Embedded area abstraction
US11296948B2 (en) 2020-01-09 2022-04-05 Arista Networks, Inc. Topology partition detection
CN111651211A (zh) * 2020-05-06 2020-09-11 珠海格力电器股份有限公司 一种防止示教器系统崩溃的方法、计算机可读存储介质及示教器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006285448A (ja) * 2005-03-31 2006-10-19 Oki Electric Ind Co Ltd 冗長システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247141B1 (en) * 1998-09-24 2001-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Protocol for providing replicated servers in a client-server system
US6453386B1 (en) * 1999-09-30 2002-09-17 International Business Machines Corporation Method and system for performing variable aging to optimize a memory resource
US7216136B2 (en) * 2000-12-11 2007-05-08 International Business Machines Corporation Concurrent collection of cyclic garbage in reference counting systems
US6990608B2 (en) * 2002-04-25 2006-01-24 Hewlett-Packard Development Company, L.P. Method for handling node failures and reloads in a fault tolerant clustered database supporting transaction registration and fault-in logic
US7966538B2 (en) * 2007-10-18 2011-06-21 The Regents Of The University Of Michigan Microprocessor and method for detecting faults therein
US9723074B2 (en) 2011-11-15 2017-08-01 Alcatel Lucent Method and apparatus for in the middle primary backup replication

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006285448A (ja) * 2005-03-31 2006-10-19 Oki Electric Ind Co Ltd 冗長システム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6015029865; Brendan CULLY et al.: '"Remus: High Availability via Asynchronous Virtual Machine Replication"' NSDI'08: 5th USENIX Symposium on Networked Systems Design and Implementation , 20080416, pages:161-174, The University of British Columbia *
JPN6015031894; Adrian COLESA et al.: '"Transparent Fault-Tolerance Based on Asynchronous Virtual Machine Replication"' Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), 2010 12th International Symposium , 20100926, Pages:442-448, IEEE *
JPN7015002184; Timothy WOOD et al.: '"PipeCloud: Using Causality to Overcome Speed-of-Light Delays in Cloud-Based Disaster Recovery"' Proceeding SOCC '11 Proceedings of the 2nd ACM Symposium on Cloud Computing Article No. 17 , 20111026, pages:1-13, ACM *

Also Published As

Publication number Publication date
US20130173876A1 (en) 2013-07-04
CN104054058A (zh) 2014-09-17
CN104054058B (zh) 2017-10-13
WO2013101362A2 (en) 2013-07-04
EP2798496A2 (en) 2014-11-05
US8868862B2 (en) 2014-10-21
KR20140097511A (ko) 2014-08-06
EP2798496B1 (en) 2019-01-09
WO2013101362A3 (en) 2013-10-10

Similar Documents

Publication Publication Date Title
JP2015508537A (ja) プライマリ/バックアップ複製スキームにおける同期化のための方法および装置
US10917457B2 (en) Command processing in distributed computing systems
USRE47852E1 (en) Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency
JP5258019B2 (ja) アプリケーション・プロセス実行の範囲内での非決定論的オペレーションを管理、ロギング、またはリプレイするための予測方法
JP5063704B2 (ja) 協定タイミング・ネットワーク内のサーバの同期を促進する方法、システム、およびコンピュータ・プログラム
US9465650B2 (en) Executing distributed globally-ordered transactional workloads in replicated state machines
JP5042318B2 (ja) 協定タイミング・ネットワーク内の階層1構成を定義する方法、システム、およびコンピュータ・プログラム
CN101595668A (zh) 建立协调定时网络中的服务器之间的逻辑路径的方法和系统
US20090257456A1 (en) Coordinated timing network having servers of different capabilities
US7925916B2 (en) Failsafe recovery facility in a coordinated timing network
WO2008092750A1 (en) Facilitating recovery in a coordinated timing network
US10609137B2 (en) Global logical timestamp
WO2009081657A1 (ja) ノードシステム、サーバ切換え方法、サーバ装置、およびデータ引き継ぎ方法
Scales et al. The design and evaluation of a practical system for fault-tolerant virtual machines
CN110351122A (zh) 容灾方法、装置、系统与电子设备
Osrael et al. Axis2-based replication middleware forweb services
US7636821B2 (en) Asynchronous hybrid mirroring system
Dinh-Tuan et al. MS2M: A message-based approach for live stateful microservices migration
US10564665B2 (en) Performing scalable, causally consistent reads using a logical wall clock
US8429136B2 (en) Information processing method and information processing apparatus
KR20090084895A (ko) 통합형 타이밍 네트워크에서 계층-1 구성을 정의하는 방법
JP5493880B2 (ja) 並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法
Srivastava Redundancy management for network devices
Ahn Scalable Message Logging Algorithm for Geographically Distributed Broker-based Sensor Networks.

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150811

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160126