(57)【特許請求の範囲】
【請求項１】
動的なイベント駆動型チェックポイントシステムにおいて遅延を決定する方法であって、
第１のマシンから第２のマシンに転送されるべきバッファリングされているネットワークビットの数Ｎを決定することと、
標的ビット転送レートＲを決定することと、
ネットワークプロトコルおよびプロトコル状態情報に関わりなく、ＮのＲに対する比率としてチェックポイント間隔遅延を決定することと
を含む、方法。
【請求項２】
前記遅延は、最小遅延をさらに含む、請求項１に記載の方法。
【請求項３】
チェックポイントコンピューティングシステムであって、
一次マシンを備えている第１のフォールトトレラントコンピュータデバイスと、
第２のコンピュータデバイスと
を備え、
前記第１のコンピュータデバイスおよび前記第２のコンピュータデバイスは、ネットワーク化されており、
前記一次マシンは、第１のチェックポインティングエンジンと、第１のネットワークインターフェースとを備え、
前記第２のコンピュータデバイスは、第２のネットワークインターフェースを備え、
前記第１のチェックポインティングエンジンは、ネットワークプロトコルおよびプロトコル状態情報に関わりなく、前記第１のマシンから前記第２のマシンに転送されるべきバッファリングされているネットワークビットの数Ｎと、標的ビット転送レートＲとに応答して、遅延間隔によってチェックポイントを遅延させる、
チェックポイントコンピューティングシステム。
【請求項４】
前記チェックポイント遅延間隔は、実際のネットワークビット転送レートに応答して変動させられる、請求項３に記載のチェックポイントコンピューティングシステム。
【請求項５】
前記チェックポイント遅延間隔は、残りの解放されるトラフィックを超える保留ネットワークトラフィックに応答して中止される、請求項３に記載のチェックポイントコンピューティングシステム。
【請求項６】
前記チェックポイント遅延間隔は、前記標的ネットワーク配信レートＲで除算された転送されているビットのバッチサイズＮに等しい、請求項３に記載のチェックポイントコンピューティングシステム。
【請求項７】
前記第１のチェックポインティングエンジンは、最小遅延に応答して前記チェックポイントを遅延させる、請求項３に記載のチェックポイントコンピューティングシステム。
【請求項８】
前記チェックポイント間隔遅延は、前記標的ネットワーク配信レートで除算された転送されているビットのバッチサイズに追加の最小遅延を加えたものに等しい、請求項３に記載のチェックポイントコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願）
本願は、米国仮特許出願第６１／９２１，７１５号（２０１３年１２月３０日出願、本願の譲受人によって所有）に対する優先権を主張し、上記出願の内容は、その全体が参照により本明細書に援用される。
【０００２】
（発明の分野）
本発明は、概して、フォールトトレラントコンピューティングの分野に関し、より具体的には、チェックポインティング、ネットワーキング、および仮想化システムに関する。
【背景技術】
【０００３】
フォールトトレラントコンピューティングを達成する種々の方法がある。具体的には、フォールトトレラントハードウェアおよびソフトウェアが、単独または一緒のいずれかで使用され得る。例として、一方のコンピュータ、すなわち、アクティブコンピュータまたはホストが、能動的に計算を行う一方で、他方のコンピュータ（または複数のコンピュータ）が、アクティブコンピュータまたはその上のハードウェアもしくはソフトウェア構成要素が、あるタイプの故障を被る場合に備えて、アイドルまたはスタンバイ状態であるように、２つ（またはそれを上回る）コンピュータを接続することが可能である。これらのシステムでは、アクティブコンピュータの状態についての情報は、スタンバイコンピュータが、アクティブコンピュータが故障を被った計算の時点で実質的に引き継ぐことができるように、スタンバイコンピュータに周期的に保存されなければならない。この例は、クラウドまたは他のコンピューティングシステムの一部として仮想化環境を使用するという現代の実践に拡張されることができる。
【０００４】
仮想化は、特定のプロジェクトまたは組織に必要とされるサーバもしくは他のリソースの数を削減するために多くの分野で使用される。現代の仮想マシンコンピュータシステムは、物理的ホストコンピュータ内でゲストとして動作する仮想マシン（ＶＭ）を利用する。各仮想マシンは、独自の仮想オペレーティングシステムを含み、ホスト物理的マシン上で実行する管理オペレーティングシステムまたはハイパーバイザの制御下で動作する。各仮想マシンは、１つ以上のアプリケーションを実行し、アプリケーションによる要求に応じて、物理的データ記憶装置およびコンピュータネットワークにアクセスする。加えて、各仮想マシンは、順に、別の仮想マシンのためのホストコンピュータシステムの役割を果たし得る。
【０００５】
複数の仮想マシンは、グループとして構成され、同一のプログラムのうちの１つ以上のものを実行し得る。典型的には、グループ内の１つの仮想マシンは、一次またはアクティブ仮想マシンであり、残りの仮想マシンは、二次またはスタンバイ仮想マシンである。一次仮想マシンに何らか問題がある場合、二次仮想マシンのうちの１つが引き継ぎ、フォールトトレラントコンピューティングシステムにおけるその役割を担う。この冗長性は、仮想マシンのグループがフォールトトレラントコンピューティングシステムとして動作することを可能にする。一次仮想マシンは、アプリケーションを実行し、ネットワークデータを受信および送信し、自動またはユーザ開始タスクもしくは相互作用を行いながら、データ記憶装置を読み取り、それに書き込む。二次仮想マシンは、一次仮想マシンと同一の能力を有するが、一次仮想マシンが故障するか、またはエラーによる影響を受けるまで、関連タスクおよびアクティビティを引き継がない。
【０００６】
そのような仮想マシンの集合がフォールトトレラントシステムとして機能するために、二次仮想マシンの動作状態、メモリ、およびデータ記憶装置コンテンツは、一次仮想マシンの最終動作状態、メモリ、およびデータ記憶装置コンテンツと同等であるべきである。この条件が満たされた場合、二次仮想マシンは、いかなるデータも損失することなく、一次仮想マシンの役割を引き継ぎ得る。二次マシンおよびそのメモリの状態が一次マシンおよびそのメモリの状態と同等であることを仮定するために、一次仮想マシンが、その状態およびメモリコンテンツを二次仮想マシンに周期的に転送することが必要である。
【０００７】
仮想マシンの状態の間の同期性を維持するためのデータの周期的転送は、チェックポインティングと称される。チェックポイントは、データが転送されるべき時点を定義する。チェックポイント中、一次仮想マシン上の処理は、仮想マシンおよび関連メモリの最終状態がチェックポイント間隔中に変更されないように、一時停止される。関連データが転送されると、一次および二次仮想マシンは両方とも、同一の状態となる。一次仮想マシンは、プロセスにおける可能な限り早い時点で再開され、プロセスが繰り返す場合、次のチェックポイントまでアプリケーションを実行し続ける。
【０００８】
チェックポイントは、最後のチェックポイントからの経過時間の上限量の経過、またはメモリアクセスの数（ダーティページと称される）、ネットワーク事象の発生（一次仮想マシンから出力されるネットワーク確認応答等）、もしくはアプリケーションの実行中の（利用可能なメモリと比較した）二次仮想マシン上の過剰なバッファリングの発生等のあるイベントの発生によるより早い時間のいずれかによって、決定されることができる。アイドル一次仮想マシンが、例えば、上限経過タイマに依拠して周期的チェックポイントを行うであろう一方で、使用中のマシンは、おそらく、記述されたイベントのうちの１つをトリガするであろう。このイベントベースのアプローチは、動的または可変レートチェックポインティングと見なされる。
【０００９】
アウトバウンドネットワークトラフィックは、一次仮想マシンと仮想マシンから伝送を受信するネットワーク上のコンピュータとの間の待ち時間が少ない交換を確実にするように、即時チェックポイントサイクルを引き起こすことができる。これは、フォルダ列挙、ファイル削除、属性操作、およびさらに単一スレッドトランザクション交換等のファイルレベル動作のために望ましい。これらのタイプの待ち時間に敏感な交換の下では、迅速かつ応答が早いチェックポイントレートを有することが望ましい。あるクライアント要求およびサーバ応答等の待ち時間に敏感な交換は、非常に応答が早いチェックポイント機構から利益を得る。
【００１０】
しかしながら、過剰なチェックポインティングは、一次仮想マシンの性能低下につながり得る。順に、これは、フォールトトレラントシステムの有用性を損ない得る、減少したレベルのネットワークスループットをもたらし得る。これは、ストリーミングネットワーク負荷が存在するときに、イベントベースのアプローチにおいて特に起こり得る。
【００１１】
固定最小遅延を各チェックポイントサイクルに追加することは、スループットを向上させる１つの効果的な方法であり、遅延がさらに増加させられると、向上は、あるストリーミング負荷条件下で得られることができる。しかしながら、このタイプの遅延は、前述の待ち時間に敏感な負荷への弊害を引き起こす。加えて、１つのストリーミング負荷のための正しい遅延は、他のストリーミング負荷には効果がない場合がある。
【００１２】
したがって、関連アプリケーションおよびシステムユーザの要件を満たしながら、システムのチェックポインティングを動的に変動させる方法の必要性が存在する。
【００１３】
本発明の実施形態は、この必要性およびその他に対処する。
【発明の概要】
【課題を解決するための手段】
【００１４】
一側面では、本発明は、チェックポイント間隔において遅延を決定するための方法に関する。一実施形態では、本方法は、ネットワーク上で転送されるビット数を決定するステップと、標的ビット転送レートを決定するステップと、標的ビット転送レートで除算された転送されるビット数として、遅延を計算するステップとを含む。別の実施形態では、遅延はさらに、最小遅延を含む。
【００１５】
別の側面では、本発明は、チェックポイント間隔を遅延させる方法に関する。一実施形態では、本方法は、ネットワークデータの前のバッチの転送を監視するステップと、ネットワークデータの前のバッチの転送がある所定の完了のレベルに達するまで、後続のチェックポイントを遅延させるステップとを含む。別の実施形態では、所定の完了のレベルは、１００％である。
【００１６】
別の側面では、本発明は、コンピューティングシステムに関する。一実施形態では、コンピュータシステムは、一次仮想マシンを備えている第１のフォールトトレラントコンピュータデバイスと、第２のコンピュータデバイスとを含み、第１のコンピュータデバイスおよび第２のコンピュータデバイスは、ネットワーク化され、一次仮想マシンは、第１のチェックポインティングエンジンと、第１のネットワークインターフェースとを備え、二次仮想マシンは、第２のネットワークインターフェースを備え、第１のチェックポインティングエンジンは、ネットワークパラメータに応答して、遅延間隔によってチェックポイントを遅延させる。別の実施形態では、ネットワークパラメータは、標的ネットワーク配信レートである。さらに別の実施形態では、チェックポイント遅延は、ネットワークトラフィック配信の完了に応答して中止される。
【００１７】
なおも別の実施形態では、チェックポイント遅延は、実際のネットワーク配信レートに応答して延長される。一実施形態では、チェックポイント遅延は、残りの解放されるトラフィックを超える保留ネットワークトラフィックに応答して中止される。別の実施形態では、チェックポイント遅延間隔は、標的ネットワーク配信レートで除算された転送されているビットのバッチサイズに等しい。さらに別の実施形態では、第１のチェックポインティングエンジンは、最小遅延に応答してチェックポイントを遅延させる。なおもさらなる実施形態では、チェックポイント間隔遅延は、標的ネットワーク配信レートで除算された転送されているビットのバッチサイズに追加の最小遅延を加えたものに等しい。
【図面の簡単な説明】
【００１８】
本発明の構造および機能は、添付図面と併せて本明細書の説明から最も良く理解されることができる。図は、必ずしも一定の縮尺ではなく、代わりに、概して、例証的原理が強調されている。図は、全ての側面において例証的と見なされるものであり、本発明を限定することを意図しておらず、その範囲は、請求項のみによって定義される。
【図１】図１は、本発明に従って構築された仮想マシン内のチェックポインティングエンジンの実施形態のブロック図である。
【図２】図２（ａ）および（ｂ）は、それぞれ、仮想マシンおよびチェックポインティングエンジンの実施形態の従来技術に公知であるタイミング図である。
【図３】図３（ａ）および（ｂ）は、それぞれ、本発明に従って構築された仮想マシンおよびチェックポインティングエンジンの実施形態のタイミング図である。
【発明を実施するための形態】
【００１９】
本発明の詳細な実施形態が、本明細書で開示されるが、開示される実施形態は、種々の形態で具現化され得る本発明の例示的実施形態にすぎないことを理解されたい。したがって、本明細書で開示される具体的機能詳細は、限定的としてではなく、請求項の根拠として、かつ事実上あらゆる適切に詳細な実施形態で本発明を様々に採用するように当業者を教示するための代表的根拠として解釈されるにすぎない。
【００２０】
可変レートチェックポイントシステムでは、チェックポイントサイクルが、一次仮想マシン上のイベントの発生に応答して一次仮想マシン上で開始される場合、過剰なチェックポイントレートが起こり得る。通常、そのような即時チェックポイントサイクルは、仮想マシンの間のチェックポイントデータの待ち時間が少ない交換を確実にする。これは、例えば、フォルダ列挙、ファイル削除、属性操作、およびさらに単一スレッドトランザクション交換等の一連のファイルレベル動作がある場合に当てはまり得る。これらのタイプの待ち時間に敏感な負荷の下では、迅速かつ応答が早いチェックポイントレートを有することが望ましい。
【００２１】
しかしながら、多くの他のタイプの動作は、一次仮想マシンから１つ以上の二次マシンへのネットワークデータのストリーミング転送をもたらす。例は、（特に大容量ファイルの）ファイル転送、ウェブサービス転送、またはさらに複数スレッドトランザクション処理負荷を含む。これらの条件下で、チェックポイントレートは、スループットに悪影響を及ぼす点まで急速に上昇し得る。高チェックポイントレートは、一次仮想マシンに過剰な一時停止／再開サイクルを負担させる。さらに、高チェックポイントレートは、一次マシンのメモリサブシステムおよび相互接続に重い負担をかける。手短に言えば、クライアントマシンにアプリケーションネットワークデータをストリーミング配信する拡張性は、そのような過剰に積極的なチェックポインティングによって有意に妨げられる。
【００２２】
要するに、柔軟なチェックポイント周期を提供しながら、チェックポインティングの待ち時間を短縮するという問題に対処するために、チェックポイントレートを低減させる動的方法が、使用される。この動的方法は、チェックポイントレートが、直近で完了したチェックポイントサイクルによって生成されたデータの量に比例して低減させられる。この方法は、ネットワーク関連または他のデータ転送パラメータ等の１つ以上の入力もしくはパラメータが、チェックポイントレートを減少させるために使用されるという点で、動的である。
【００２３】
図１を参照すると、仮想マシン１００を伴うチェックポインティングエンジン１２２の構成要素が、示されている。仮想マシン１００は、典型的には、フォールトトレラントコンピューティングシステムを達成するために、第２の仮想マシン（図示せず）に接続されるであろう。仮想マシン１００は、チェックポイントモジュール１０１を含む。チェックポイントモジュール１０１は、ネットワークデータ１０９を入力／出力モジュール（Ｉ／Ｏ）１１０の中にバッファリングし、通知イベント１１２が、チェックポインティングエンジン１２２に警告する。記憶装置データ（一般的にブロックＩＯと称される）は、入力／出力モジュール（Ｉ／Ｏ）１１０とブロックインターフェース１１４との間でより自由に移動することを許可される１３８。チェックポインティングエンジン１２２は、メモリ追跡モジュール１２６およびバッファキャッシュ１３０と通信している。チェックポインティングエンジン１２２がアイドルであるとき、ネットワークデータ（該当する場合）は、入力／出力モジュール（Ｉ／Ｏ）１１０によってバッファリングされた状態にとどまり、次のチェックポイントがその完遂／解放段階に達した後の入力／出力モジュール（Ｉ／Ｏ）１１０への信号１１３によってのみ解放されるであろう。その時点で、ネットワークデータ（該当する場合）が、入力／出力モジュール（Ｉ／Ｏ）１１０からネットワークインターフェース１１８に転送される１３４。チェックポイントが宣言されると、仮想マシン１００が一時停止され、ダーティページデータがチェックポインティングエンジン１２２によって処理される。
【００２４】
さらに詳細に、図２（ａ）を参照すると、一次仮想マシンについて順序通りに起こるイベントおよび方法のタイミング図が、チェックポイントシステムについて示されている。一次仮想マシンは、作動している（アプリケーションを実行している）（２１０、２１０’）か、一時停止される（２１４）かのいずれかである。チェックポインティングエンジンは、図２（ｂ）に示されるような追加のタイミング条件を含む。チェックポインティングエンジンは、チェックポイント（Ｐ）が起こる（２２４）までアイドル（２２０）であり得、その時点で、チェックポインティングエンジンは、一次仮想マシン（２１４）を一時停止させる（２２６）。一次仮想マシンが一時停止されている間、一次仮想マシンの状態が捕捉される（２２８）。捕捉は、仮想マシンが再開され、チェックポイント「転送」および「ＡＣＫ待ち」と並行して実行されることを可能にする、ページコピー段階である。
【００２５】
別の実施形態では、ページコピーは、完全に回避され、ページは、そのまま転送されるだけである。この場合、仮想マシンは、転送およびＡＣＫ待ち段階中に一時停止されたままである。これらの２つのアプローチの組み合わせもまた、使用され得る。状態データが捕捉される（２２８）と、チェックポインティングエンジンは、一次仮想マシンを再開し（２３２）、一次仮想マシンは、アプリケーションを再度実行する（２１０’）。
【００２６】
次いで、捕捉された状態データは、二次仮想マシンに転送される（２３６）。データが転送されると、チェックポインティングエンジンは、データが受信されたことを示す、確認応答（ＡＣＫ）が二次仮想マシンから受信される（２４０）のを待つ。この時点で、チェックポイントサイクルが完遂され（２４４）、バッファリングされたネットワークデータがネットワークに解放される。次いで、チェックポインティングエンジンは、次のチェックポイント（２２４’）が起こるまで、アイドル状態（２２０’）になる。
【００２７】
あるトリガイベントが起こると、チェックポイントが宣言される。チェックポイントトリガイベントのいくつかの非限定的実施例は、以下の通りである：チェックポイント周期を開始するタイマ、一次仮想マシンからネットワーク上の別のコンピュータに要求されているＡＣＫ返信等のネットワークイベント、および発生するメモリページへの書き込み動作。たとえチェックポイントが宣言されて開始されても、チェックポイント処理がサイクルの完了に近づくと、追加のチェックポイント生成イベントが起こり得る。したがって、速成イベントが待ち行列に入れられ得、各イベントは、仮想マシンへの高オーバーヘッドを引き起こす、チェックポインティングエンジンによるアクションを要求する。例えば、各後続のチェックポイントは、最小限でも、一次仮想マシンが有用な作業をしていない、システムの時間オーバーヘッドに影響する仮想マシンの一時停止および再開を要求するであろう。
【００２８】
図３（ａ）を参照すると、仮想マシンのタイミングが、本発明によるチェックポイントシステムについて示されている。本実施形態では、一次仮想マシンは、再度、作動している（１つ以上のアプリケーションを実行している）（３１０、３１０’）か、または一次仮想マシンが一時停止される（３１４）かのいずれかである。チェックポインティングエンジンは、図３（ｂ）に示されるようなタイミング条件下で動作する。いくつかのチェックポインティングエンジンタイミング遷移は、図３（ａ）に示されるものと同一である。例えば、チェックポインティングエンジンは、チェックポイント（Ｐ）が起こる（３２４）までアイドル（３２０）であり得、その時点で、チェックポインティングエンジンは、一次仮想マシン（３１４）を一時停止させる（３２６）。一次仮想マシンが一時停止されている間、一次仮想マシンの状態が捕捉される（３２８）。状態データが捕捉される（３２８）と、チェックポインティングエンジンは、一次仮想マシンを再開し（３３２）、１つ以上のアプリケーションを再度実行する（３１０’）。
【００２９】
次いで、捕捉された状態データは、二次仮想マシンに転送される（３３６）。データが転送されると、チェックポインティングエンジンは、データが受信されたことを示す、確認応答（ＡＣＫ）が二次仮想マシンから受信される（３４０）のを待つ。次いで、チェックポイントデータが、例えば、１つ以上のデータのフレームをネットワークに解放することによって、完遂される（３４４）。
【００３０】
この時点で、チェックポインティングエンジンは、アイドル状態（３４８）になるが、本実施形態では、アイドル状態は、次のチェックポイント（３２４’）が宣言されることが許可される前に、追加の遅延期間（チェックポイント間隔遅延またはアイドル遅延）を含む。この増加した合計遅延は、チェックポイントが宣言される前に、追加のチェックポイントイベントが待ち行列に入れられることを可能にし、したがって、複数のチェックポイントイベントが、チェックポイント動作の１つのセットによって対象にされることを可能にする。これは、チェックポイントを取り扱うためのイベントあたりのオーバーヘッドを低減させる。
【００３１】
チェックポイント間隔遅延は、本システムにおける種々の競合する考慮事項にさらされる。例えば、仮想マシンを一時停止する前に導入される遅延は、仮想マシンの他の機能に影響を及ぼすほど長くすることはできない。例えば、仮想マシンが別のコンピュータと通信している場合、その他方のコンピュータは、その他方のコンピュータが仮想マシンに送信した伝送に応答して、メッセージを待ち得る。仮想マシンの応答メッセージの提供における任意の追加の遅延は、その待ち時間を増加させ、低減した応答性を引き起こすであろう。
【００３２】
一実施形態では、適切な遅延の設定は、仮想マシンの実際のネットワークインターフェースを観察し、前のサイクルのネットワークデータ転送が完了するか、またはある完了閾値に達するかのいずれかまで、次のチェックポイントサイクルが開始することを可能にしないことによって、達成される。しかしながら、これは、ネットワークのデータ転送能力がチェックポイントシステムのオーバーヘッドおよび費用に対して非常に高速である場合、遅延機構としては効果のないものになり得る。
【００３３】
別の実施形態では、本方法は、解放されたデータの量および標的ネットワーク配信レートに基づいて、適切な遅延を計算する。したがって、チェックポイント間隔遅延は、以下の方程式によって生成される。
チェックポイント間隔遅延＝ビット単位のバッチサイズ／標的ネットワーク配信レート
例えば、１Ｇｂｐｓの所望の配信レートに対して測定される４００，０００ビット（５０，０００バイト）の解放は、（４００，０００ビット×０．００００００００１秒／ビット）４００ミクロン秒のチェックポイント間隔遅延をもたらす。
【００３４】
別の実施形態では、最小（‘ｍｉｎ’）遅延が、ネットワークＩ／Ｏを実際に開始することにおける一般オーバーヘッド（待ち時間）を補償するために、計算された遅延に加算されることができ、チェックポイント間隔遅延＝‘ｍｉｎ’＋（ビット単位のバッチサイズ）／（標的ネットワーク配信レート）である。
【００３５】
このチェックポイント間隔遅延は、いくつかの点で本システムの利益になる。第１に、遅延は、ネットワーク出力を殆どまたは全く解放しないサイクルに不利益をもたらさない。第２に、遅延は、ネットワーク出力の様々なサイズバーストを伴う負荷にも不利益をもたらし得る、これまでの計算に基づく遅延を繰り越さない（または蓄積しない）。第３に、計算された遅延は、次のサイクルに向かって稼働するためのより多くの時間を仮想マシンに与え、次のチェックポイントサイクルを比例的に遅延させない。第４に、仮想マシンのストリーミング出力バッチが遅延に従って増大するため、遅延は、時間オーバーヘッドをさらに低減させる。第５に、遅延は、固定遅延仮定を伴わずに、ネットワーク出力の集約を動的に促進させる。最終的に、結果として生じる遅延は、同数のチェックポイントイベントを対象とするためのより少ないチェックポイントを必要とすることによって、チェックポイントレートを有意に低減させ、したがって、メモリおよび相互接続構成要素ならびにチェックポイントを処理することに関与し得る他の構成要素への負担を低減させる。
【００３６】
バッチサイズとしての４００，０００ビットの例が、非限定的例として提供されていることに留意されたい。アウトバウンドネットワークバッチのサイズおよびデータ転送レートは、予測不可能である。この動的遅延方法を用いると、仮想マシンとチェックポイントエンジンとは、競合するよりもむしろ協働する。したがって、一実施形態では、監視されたパラメータに基づくチェックポイント間隔遅延の動的選択は、チェックポイント周期が実質的に大きくなること、または解放されるネットワークデータのネットワークバッチのサイズを最大化することを可能にする。
【００３７】
動的遅延率選択方法はまた、チェックポイント間隔遅延の持続時間を限定し得る。これは、アウトバウンドネットワークトラフィックの膨大なバッチを迅速に蓄積する仮想マシン、または制限が課されることなくデータが増大し続けることを可能にするものに対して、システムを保護する。この後者の点の例は、「ネットワークフラッド」試験であり得る。チェックポイント間隔遅延のサイズへのある制限がないと、遅延は、実用的な値を超えて増大し続けることができる。
【００３８】
別の実施形態では、基本的チェックポイント間隔遅延機構の精緻化は、前のサイクルのチェックポイント間隔遅延が満了する（またはネットワーク伝送が物理的に完了する）のを待ちながら、保留ネットワークトラフィックが増加するにつれてその量を監視することである。例えば、保留トラフィックが残りの解放されるトラフィックの量を超えるとき、残りの（現在の）チェックポイント間隔遅延は、中止されることができ、即時サイクルが、より大規模になっている保留ネットワーク伝送に対処することを可能にする。この精緻化の利益は、それがネットワークを経由したトラフィックの前のサイクルの最終部分の配信と並行して動作するにつれて、チェックポイント機構の起動および実行費用ならびに待ち時間がより良好に隠されることを可能にする、ある程度の予測可能性を導入することである。
【００３９】
以下の議論から明白であるように、別様に具体的に記述されない限り、説明の全体を通して、「処理する」、または「算出する」、または「計算する」、または「遅延させる」、または「比較する」、「生成する」、または「決定する」、または「完遂する」、または「チェックポインティングする」、または「中断する」、または「取り扱う」、または「受信する」、または「バッファリングする」、または「配分する」、または「表示する」、または「フラグを付ける」、もしくはブール論理または他の関連演算、もしくは同等物等の用語を利用する議論は、コンピュータシステムまたは電子デバイスのレジスタおよびメモリ内の物理的（電子的）数量として表されるデータを操作して、電子メモリまたはレジスタ、もしくは他のそのような情報記憶、伝送、または表示デバイス内の物理的数量として同様に表される他のデータに変換する、コンピュータシステムまたは電子デバイスのアクションおよびプロセスを指すことが理解される。
【００４０】
本明細書に提示されるアルゴリズムは、いかなる特定のコンピュータまたは他の装置にも本質的に関連付けられない。種々の汎用システムが、本教示によるプログラムとともに使用され得るか、または必要方法ステップを行うように、より特殊化された装置を構築することが便宜的であることを証明し得る。種々のこれらのシステムのための必要構造は、以下の説明から明白となるであろう。加えて、本発明は、いかなる特定のプログラミング言語も参照して説明されず、したがって、種々の実施形態は、種々のプログラミング言語を使用して実装され得る。
【００４１】
本発明の側面、実施形態、特徴、および実施例は、あらゆる観点で例証的と見なされるものであり、本発明を限定することを意図しておらず、その範囲は、請求項のみによって定義される。他の実施形態、修正、および使用法が、請求される発明の精神および範囲から逸脱することなく、当業者に明白となるであろう。
【００４２】
要素または構成要素が、記載される要素または構成要素のリストに含まれる、および／またはそこから選択されると言われる、用途では、要素または構成要素は、記載される要素または構成要素のうちのいずれか１つであり得、記載される要素または構成要素のうちの２つ以上のものから成る群から選択されることができることを理解されたい。さらに、本明細書で明示的であろうと暗示的であろうと、本教示の精神および範囲から逸脱することなく、本明細書に説明される組成、装置、または方法の要素および／または特徴は、種々の方法で組み合わせられることができることを理解されたい。
【００４３】
「ｉｎｃｌｕｄｅ（含む）」、「ｉｎｃｌｕｄｅｓ」、「ｉｎｃｌｕｄｉｎｇ」、「ｈａｖｅ（有する）」、「ｈａｓ」、または「ｈａｖｉｎｇ」という用語の使用は、概して、別様に具体的に記述されない限り、非制約的かつ非限定的として理解されるべきである。
【００４４】
ステップの順序またはあるアクションを行うための順序は、本教示が動作可能である限り、重要ではないことを理解されたい。さらに、２つ以上のステップまたはアクションは、同時に行われ得る。
【００４５】
本発明の図および説明は、明確にする目的のために、他の要素を排除しながら、本発明の明確な理解のための関連する要素を図示するように簡略化されていることを理解されたい。しかしながら、当業者は、これらおよび他の要素が、望ましい場合があることを認識するであろう。しかしながら、そのような要素は、当技術分野において周知であるため、および本発明のさらなる理解を促進することにならないため、そのような要素の議論は、本明細書に提供されない。図は、組立図としてではなく、例証目的のために提示されていることを理解されたい。省略された詳細および修正または代替実施形態は、当業者の視野内にある。
【００４６】
本発明は、その精神または不可欠な特性から逸脱することなく、他の具体的形態で具現化され得る。前述の実施形態は、したがって、あらゆる観点において、本明細書に説明される本発明の限定ではなく、例証と見なされる。本発明の範囲は、したがって、前述の説明によってではなく、添付の請求項によって示され、請求項の均等物の意味および範囲内の全ての変更は、本明細書に包含されることが意図される。
本発明は、以下の項目をさらに提供する。
（項目１）
動的なイベント駆動型チェックポイント間隔において遅延を決定する方法であって、
第１の仮想マシンから第２のマシンに転送されるべきネットワークビットの数Ｎを決定することと、
標的ビット転送レートＲを決定することと、
ＮのＲに対する比率として前記チェックポイント間隔遅延を決定することと
を含む、方法。
（項目２）
前記遅延は、最小遅延をさらに含む、項目１に記載の方法。
（項目３）
チェックポイント間隔を遅延させる方法であって、
ネットワークデータの前のバッチの転送を監視することと、
前記ネットワークデータの前のバッチの転送がある所定の完了のレベルに達するまで、後続のチェックポイントを遅延させることと
を含む、方法。
（項目４）
前記所定の完了のレベルは、１００％である、項目３に記載の方法。
（項目５）
一次仮想マシンを備えている第１のフォールトトレラントコンピュータデバイスと、
第２のコンピュータデバイスと
を備え、
前記第１のコンピュータデバイスおよび前記第２のコンピュータデバイスは、ネットワーク化されており、
前記一次仮想マシンは、第１のチェックポインティングエンジンと、第１のネットワークインターフェースとを備え、
前記第２のコンピュータデバイスは、第２のネットワークインターフェースを備え、
前記第１のチェックポインティングエンジンは、ネットワークパラメータに応答して、遅延間隔によってチェックポイントを遅延させる、
コンピューティングシステム。
（項目６）
前記ネットワークパラメータは、標的ネットワーク配信レートである、項目５に記載のコンピュータシステム。
（項目７）
前記チェックポイント遅延は、ネットワークトラフィック配信の完了に応答して中止される、項目６に記載のコンピュータシステム。
（項目８）
前記チェックポイント遅延は、実際のネットワーク配信レートに応答して延長される、項目６に記載のコンピュータシステム。
（項目９）
前記チェックポイント遅延は、残りの解放されるトラフィックを超える保留ネットワークトラフィックに応答して中止される、項目６に記載のコンピュータシステム。
（項目１０）
前記チェックポイント遅延間隔は、前記標的ネットワーク配信レートで除算された転送されているビットのバッチサイズに等しい、項目５に記載のコンピュータシステム。
（項目１１）
前記第１のチェックポインティングエンジンは、最小遅延に応答して前記チェックポイントを遅延させる、項目５に記載のコンピュータシステム。
（項目１２）
前記チェックポイント間隔遅延は、前記標的ネットワーク配信レートで除算された転送されているビットのバッチサイズに追加の最小遅延を加えたものに等しい、項目５に記載のコンピュータシステム。
【図１】
0006518672.tif 000002
【図２】
0006518672.tif 000003
【図３】
0006518672.tif 000004