(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6518672
(24)【登録日】2019年4月26日
(45)【発行日】2019年5月22日
(54)【発明の名称】動的チェックポインティングシステムおよび方法
(51)【国際特許分類】
H04L 12/713 20130101AFI20190513BHJP
【FI】
H04L12/713
【請求項の数】8
【全頁数】13
(21)【出願番号】特願2016-544558(P2016-544558)
(86)(22)【出願日】2014年12月16日
(65)【公表番号】特表2017-504261(P2017-504261A)
(43)【公表日】2017年2月2日
(86)【国際出願番号】US2014070453
(87)【国際公開番号】WO2015102873
(87)【国際公開日】20150709
【審査請求日】2017年9月27日
(31)【優先権主張番号】61/921,715
(32)【優先日】2013年12月30日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】512256395
【氏名又は名称】ストラタス・テクノロジーズ・バミューダ・リミテッド
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】ビセット, トーマス ディー.
(72)【発明者】
【氏名】ルベイユ, ポール エー.
(72)【発明者】
【氏名】チンタ, スリニバス
【審査官】
松崎 孝大
(56)【参考文献】
【文献】
特開平4−111648(JP,A)
【文献】
特開2008−306383(JP,A)
【文献】
特開2012−54655(JP,A)
【文献】
米国特許出願公開第2007/0220327(US,A1)
【文献】
米国特許出願公開第2007/0174484(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/713
(57)【特許請求の範囲】
【請求項1】
動的なイベント駆動型チェックポイントシステムにおいて遅延を決定する方法であって、
第1のマシンから第2のマシンに転送されるべきバッファリングされているネットワークビットの数Nを決定することと、
標的ビット転送レートRを決定することと、
ネットワークプロトコルおよびプロトコル状態情報に関わりなく、NのRに対する比率としてチェックポイント間隔遅延を決定することと
を含む、方法。
【請求項2】
前記遅延は、最小遅延をさらに含む、請求項1に記載の方法。
【請求項3】
チェックポイントコンピューティングシステムであって、
一次マシンを備えている第1のフォールトトレラントコンピュータデバイスと、
第2のコンピュータデバイスと
を備え、
前記第1のコンピュータデバイスおよび前記第2のコンピュータデバイスは、ネットワーク化されており、
前記一次マシンは、第1のチェックポインティングエンジンと、第1のネットワークインターフェースとを備え、
前記第2のコンピュータデバイスは、第2のネットワークインターフェースを備え、
前記第1のチェックポインティングエンジンは、ネットワークプロトコルおよびプロトコル状態情報に関わりなく、前記第1のマシンから前記第2のマシンに転送されるべきバッファリングされているネットワークビットの数Nと、標的ビット転送レートRとに応答して、遅延間隔によってチェックポイントを遅延させる、
チェックポイントコンピューティングシステム。
【請求項4】
前記チェックポイント遅延間隔は、実際のネットワークビット転送レートに応答して変動させられる、請求項3に記載のチェックポイントコンピューティングシステム。
【請求項5】
前記チェックポイント遅延間隔は、残りの解放されるトラフィックを超える保留ネットワークトラフィックに応答して中止される、請求項3に記載のチェックポイントコンピューティングシステム。
【請求項6】
前記チェックポイント遅延間隔は、前記標的ネットワーク配信レートRで除算された転送されているビットのバッチサイズNに等しい、請求項3に記載のチェックポイントコンピューティングシステム。
【請求項7】
前記第1のチェックポインティングエンジンは、最小遅延に応答して前記チェックポイントを遅延させる、請求項3に記載のチェックポイントコンピューティングシステム。
【請求項8】
前記チェックポイント間隔遅延は、前記標的ネットワーク配信レートで除算された転送されているビットのバッチサイズに追加の最小遅延を加えたものに等しい、請求項3に記載のチェックポイントコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願)
本願は、米国仮特許出願第61/921,715号(2013年12月30日出願、本願の譲受人によって所有)に対する優先権を主張し、上記出願の内容は、その全体が参照により本明細書に援用される。
【0002】
(発明の分野)
本発明は、概して、フォールトトレラントコンピューティングの分野に関し、より具体的には、チェックポインティング、ネットワーキング、および仮想化システムに関する。
【背景技術】
【0003】
フォールトトレラントコンピューティングを達成する種々の方法がある。具体的には、フォールトトレラントハードウェアおよびソフトウェアが、単独または一緒のいずれかで使用され得る。例として、一方のコンピュータ、すなわち、アクティブコンピュータまたはホストが、能動的に計算を行う一方で、他方のコンピュータ(または複数のコンピュータ)が、アクティブコンピュータまたはその上のハードウェアもしくはソフトウェア構成要素が、あるタイプの故障を被る場合に備えて、アイドルまたはスタンバイ状態であるように、2つ(またはそれを上回る)コンピュータを接続することが可能である。これらのシステムでは、アクティブコンピュータの状態についての情報は、スタンバイコンピュータが、アクティブコンピュータが故障を被った計算の時点で実質的に引き継ぐことができるように、スタンバイコンピュータに周期的に保存されなければならない。この例は、クラウドまたは他のコンピューティングシステムの一部として仮想化環境を使用するという現代の実践に拡張されることができる。
【0004】
仮想化は、特定のプロジェクトまたは組織に必要とされるサーバもしくは他のリソースの数を削減するために多くの分野で使用される。現代の仮想マシンコンピュータシステムは、物理的ホストコンピュータ内でゲストとして動作する仮想マシン(VM)を利用する。各仮想マシンは、独自の仮想オペレーティングシステムを含み、ホスト物理的マシン上で実行する管理オペレーティングシステムまたはハイパーバイザの制御下で動作する。各仮想マシンは、1つ以上のアプリケーションを実行し、アプリケーションによる要求に応じて、物理的データ記憶装置およびコンピュータネットワークにアクセスする。加えて、各仮想マシンは、順に、別の仮想マシンのためのホストコンピュータシステムの役割を果たし得る。
【0005】
複数の仮想マシンは、グループとして構成され、同一のプログラムのうちの1つ以上のものを実行し得る。典型的には、グループ内の1つの仮想マシンは、一次またはアクティブ仮想マシンであり、残りの仮想マシンは、二次またはスタンバイ仮想マシンである。一次仮想マシンに何らか問題がある場合、二次仮想マシンのうちの1つが引き継ぎ、フォールトトレラントコンピューティングシステムにおけるその役割を担う。この冗長性は、仮想マシンのグループがフォールトトレラントコンピューティングシステムとして動作することを可能にする。一次仮想マシンは、アプリケーションを実行し、ネットワークデータを受信および送信し、自動またはユーザ開始タスクもしくは相互作用を行いながら、データ記憶装置を読み取り、それに書き込む。二次仮想マシンは、一次仮想マシンと同一の能力を有するが、一次仮想マシンが故障するか、またはエラーによる影響を受けるまで、関連タスクおよびアクティビティを引き継がない。
【0006】
そのような仮想マシンの集合がフォールトトレラントシステムとして機能するために、二次仮想マシンの動作状態、メモリ、およびデータ記憶装置コンテンツは、一次仮想マシンの最終動作状態、メモリ、およびデータ記憶装置コンテンツと同等であるべきである。この条件が満たされた場合、二次仮想マシンは、いかなるデータも損失することなく、一次仮想マシンの役割を引き継ぎ得る。二次マシンおよびそのメモリの状態が一次マシンおよびそのメモリの状態と同等であることを仮定するために、一次仮想マシンが、その状態およびメモリコンテンツを二次仮想マシンに周期的に転送することが必要である。
【0007】
仮想マシンの状態の間の同期性を維持するためのデータの周期的転送は、チェックポインティングと称される。チェックポイントは、データが転送されるべき時点を定義する。チェックポイント中、一次仮想マシン上の処理は、仮想マシンおよび関連メモリの最終状態がチェックポイント間隔中に変更されないように、一時停止される。関連データが転送されると、一次および二次仮想マシンは両方とも、同一の状態となる。一次仮想マシンは、プロセスにおける可能な限り早い時点で再開され、プロセスが繰り返す場合、次のチェックポイントまでアプリケーションを実行し続ける。
【0008】
チェックポイントは、最後のチェックポイントからの経過時間の上限量の経過、またはメモリアクセスの数(ダーティページと称される)、ネットワーク事象の発生(一次仮想マシンから出力されるネットワーク確認応答等)、もしくはアプリケーションの実行中の(利用可能なメモリと比較した)二次仮想マシン上の過剰なバッファリングの発生等のあるイベントの発生によるより早い時間のいずれかによって、決定されることができる。アイドル一次仮想マシンが、例えば、上限経過タイマに依拠して周期的チェックポイントを行うであろう一方で、使用中のマシンは、おそらく、記述されたイベントのうちの1つをトリガするであろう。このイベントベースのアプローチは、動的または可変レートチェックポインティングと見なされる。
【0009】
アウトバウンドネットワークトラフィックは、一次仮想マシンと仮想マシンから伝送を受信するネットワーク上のコンピュータとの間の待ち時間が少ない交換を確実にするように、即時チェックポイントサイクルを引き起こすことができる。これは、フォルダ列挙、ファイル削除、属性操作、およびさらに単一スレッドトランザクション交換等のファイルレベル動作のために望ましい。これらのタイプの待ち時間に敏感な交換の下では、迅速かつ応答が早いチェックポイントレートを有することが望ましい。あるクライアント要求およびサーバ応答等の待ち時間に敏感な交換は、非常に応答が早いチェックポイント機構から利益を得る。
【0010】
しかしながら、過剰なチェックポインティングは、一次仮想マシンの性能低下につながり得る。順に、これは、フォールトトレラントシステムの有用性を損ない得る、減少したレベルのネットワークスループットをもたらし得る。これは、ストリーミングネットワーク負荷が存在するときに、イベントベースのアプローチにおいて特に起こり得る。
【0011】
固定最小遅延を各チェックポイントサイクルに追加することは、スループットを向上させる1つの効果的な方法であり、遅延がさらに増加させられると、向上は、あるストリーミング負荷条件下で得られることができる。しかしながら、このタイプの遅延は、前述の待ち時間に敏感な負荷への弊害を引き起こす。加えて、1つのストリーミング負荷のための正しい遅延は、他のストリーミング負荷には効果がない場合がある。
【0012】
したがって、関連アプリケーションおよびシステムユーザの要件を満たしながら、システムのチェックポインティングを動的に変動させる方法の必要性が存在する。
【0013】
本発明の実施形態は、この必要性およびその他に対処する。
【発明の概要】
【課題を解決するための手段】
【0014】
一側面では、本発明は、チェックポイント間隔において遅延を決定するための方法に関する。一実施形態では、本方法は、ネットワーク上で転送されるビット数を決定するステップと、標的ビット転送レートを決定するステップと、標的ビット転送レートで除算された転送されるビット数として、遅延を計算するステップとを含む。別の実施形態では、遅延はさらに、最小遅延を含む。
【0015】
別の側面では、本発明は、チェックポイント間隔を遅延させる方法に関する。一実施形態では、本方法は、ネットワークデータの前のバッチの転送を監視するステップと、ネットワークデータの前のバッチの転送がある所定の完了のレベルに達するまで、後続のチェックポイントを遅延させるステップとを含む。別の実施形態では、所定の完了のレベルは、100%である。
【0016】
別の側面では、本発明は、コンピューティングシステムに関する。一実施形態では、コンピュータシステムは、一次仮想マシンを備えている第1のフォールトトレラントコンピュータデバイスと、第2のコンピュータデバイスとを含み、第1のコンピュータデバイスおよび第2のコンピュータデバイスは、ネットワーク化され、一次仮想マシンは、第1のチェックポインティングエンジンと、第1のネットワークインターフェースとを備え、二次仮想マシンは、第2のネットワークインターフェースを備え、第1のチェックポインティングエンジンは、ネットワークパラメータに応答して、遅延間隔によってチェックポイントを遅延させる。別の実施形態では、ネットワークパラメータは、標的ネットワーク配信レートである。さらに別の実施形態では、チェックポイント遅延は、ネットワークトラフィック配信の完了に応答して中止される。
【0017】
なおも別の実施形態では、チェックポイント遅延は、実際のネットワーク配信レートに応答して延長される。一実施形態では、チェックポイント遅延は、残りの解放されるトラフィックを超える保留ネットワークトラフィックに応答して中止される。別の実施形態では、チェックポイント遅延間隔は、標的ネットワーク配信レートで除算された転送されているビットのバッチサイズに等しい。さらに別の実施形態では、第1のチェックポインティングエンジンは、最小遅延に応答してチェックポイントを遅延させる。なおもさらなる実施形態では、チェックポイント間隔遅延は、標的ネットワーク配信レートで除算された転送されているビットのバッチサイズに追加の最小遅延を加えたものに等しい。
【図面の簡単な説明】
【0018】
本発明の構造および機能は、添付図面と併せて本明細書の説明から最も良く理解されることができる。図は、必ずしも一定の縮尺ではなく、代わりに、概して、例証的原理が強調されている。図は、全ての側面において例証的と見なされるものであり、本発明を限定することを意図しておらず、その範囲は、請求項のみによって定義される。
【
図1】
図1は、本発明に従って構築された仮想マシン内のチェックポインティングエンジンの実施形態のブロック図である。
【
図2】
図2(a)および(b)は、それぞれ、仮想マシンおよびチェックポインティングエンジンの実施形態の従来技術に公知であるタイミング図である。
【
図3】
図3(a)および(b)は、それぞれ、本発明に従って構築された仮想マシンおよびチェックポインティングエンジンの実施形態のタイミング図である。
【発明を実施するための形態】
【0019】
本発明の詳細な実施形態が、本明細書で開示されるが、開示される実施形態は、種々の形態で具現化され得る本発明の例示的実施形態にすぎないことを理解されたい。したがって、本明細書で開示される具体的機能詳細は、限定的としてではなく、請求項の根拠として、かつ事実上あらゆる適切に詳細な実施形態で本発明を様々に採用するように当業者を教示するための代表的根拠として解釈されるにすぎない。
【0020】
可変レートチェックポイントシステムでは、チェックポイントサイクルが、一次仮想マシン上のイベントの発生に応答して一次仮想マシン上で開始される場合、過剰なチェックポイントレートが起こり得る。通常、そのような即時チェックポイントサイクルは、仮想マシンの間のチェックポイントデータの待ち時間が少ない交換を確実にする。これは、例えば、フォルダ列挙、ファイル削除、属性操作、およびさらに単一スレッドトランザクション交換等の一連のファイルレベル動作がある場合に当てはまり得る。これらのタイプの待ち時間に敏感な負荷の下では、迅速かつ応答が早いチェックポイントレートを有することが望ましい。
【0021】
しかしながら、多くの他のタイプの動作は、一次仮想マシンから1つ以上の二次マシンへのネットワークデータのストリーミング転送をもたらす。例は、(特に大容量ファイルの)ファイル転送、ウェブサービス転送、またはさらに複数スレッドトランザクション処理負荷を含む。これらの条件下で、チェックポイントレートは、スループットに悪影響を及ぼす点まで急速に上昇し得る。高チェックポイントレートは、一次仮想マシンに過剰な一時停止/再開サイクルを負担させる。さらに、高チェックポイントレートは、一次マシンのメモリサブシステムおよび相互接続に重い負担をかける。手短に言えば、クライアントマシンにアプリケーションネットワークデータをストリーミング配信する拡張性は、そのような過剰に積極的なチェックポインティングによって有意に妨げられる。
【0022】
要するに、柔軟なチェックポイント周期を提供しながら、チェックポインティングの待ち時間を短縮するという問題に対処するために、チェックポイントレートを低減させる動的方法が、使用される。この動的方法は、チェックポイントレートが、直近で完了したチェックポイントサイクルによって生成されたデータの量に比例して低減させられる。この方法は、ネットワーク関連または他のデータ転送パラメータ等の1つ以上の入力もしくはパラメータが、チェックポイントレートを減少させるために使用されるという点で、動的である。
【0023】
図1を参照すると、仮想マシン100を伴うチェックポインティングエンジン122の構成要素が、示されている。仮想マシン100は、典型的には、フォールトトレラントコンピューティングシステムを達成するために、第2の仮想マシン(図示せず)に接続されるであろう。仮想マシン100は、チェックポイントモジュール101を含む。チェックポイントモジュール101は、ネットワークデータ109を入力/出力モジュール(I/O)110の中にバッファリングし、通知イベント112が、チェックポインティングエンジン122に警告する。記憶装置データ(一般的にブロックIOと称される)は、入力/出力モジュール(I/O)110とブロックインターフェース114との間でより自由に移動することを許可される138。チェックポインティングエンジン122は、メモリ追跡モジュール126およびバッファキャッシュ130と通信している。チェックポインティングエンジン122がアイドルであるとき、ネットワークデータ(該当する場合)は、入力/出力モジュール(I/O)110によってバッファリングされた状態にとどまり、次のチェックポイントがその完遂/解放段階に達した後の入力/出力モジュール(I/O)110への信号113によってのみ解放されるであろう。その時点で、ネットワークデータ(該当する場合)が、入力/出力モジュール(I/O)110からネットワークインターフェース118に転送される134。チェックポイントが宣言されると、仮想マシン100が一時停止され、ダーティページデータがチェックポインティングエンジン122によって処理される。
【0024】
さらに詳細に、
図2(a)を参照すると、一次仮想マシンについて順序通りに起こるイベントおよび方法のタイミング図が、チェックポイントシステムについて示されている。一次仮想マシンは、作動している(アプリケーションを実行している)(210、210’)か、一時停止される(214)かのいずれかである。チェックポインティングエンジンは、
図2(b)に示されるような追加のタイミング条件を含む。チェックポインティングエンジンは、チェックポイント(P)が起こる(224)までアイドル(220)であり得、その時点で、チェックポインティングエンジンは、一次仮想マシン(214)を一時停止させる(226)。一次仮想マシンが一時停止されている間、一次仮想マシンの状態が捕捉される(228)。捕捉は、仮想マシンが再開され、チェックポイント「転送」および「ACK待ち」と並行して実行されることを可能にする、ページコピー段階である。
【0025】
別の実施形態では、ページコピーは、完全に回避され、ページは、そのまま転送されるだけである。この場合、仮想マシンは、転送およびACK待ち段階中に一時停止されたままである。これらの2つのアプローチの組み合わせもまた、使用され得る。状態データが捕捉される(228)と、チェックポインティングエンジンは、一次仮想マシンを再開し(232)、一次仮想マシンは、アプリケーションを再度実行する(210’)。
【0026】
次いで、捕捉された状態データは、二次仮想マシンに転送される(236)。データが転送されると、チェックポインティングエンジンは、データが受信されたことを示す、確認応答(ACK)が二次仮想マシンから受信される(240)のを待つ。この時点で、チェックポイントサイクルが完遂され(244)、バッファリングされたネットワークデータがネットワークに解放される。次いで、チェックポインティングエンジンは、次のチェックポイント(224’)が起こるまで、アイドル状態(220’)になる。
【0027】
あるトリガイベントが起こると、チェックポイントが宣言される。チェックポイントトリガイベントのいくつかの非限定的実施例は、以下の通りである:チェックポイント周期を開始するタイマ、一次仮想マシンからネットワーク上の別のコンピュータに要求されているACK返信等のネットワークイベント、および発生するメモリページへの書き込み動作。たとえチェックポイントが宣言されて開始されても、チェックポイント処理がサイクルの完了に近づくと、追加のチェックポイント生成イベントが起こり得る。したがって、速成イベントが待ち行列に入れられ得、各イベントは、仮想マシンへの高オーバーヘッドを引き起こす、チェックポインティングエンジンによるアクションを要求する。例えば、各後続のチェックポイントは、最小限でも、一次仮想マシンが有用な作業をしていない、システムの時間オーバーヘッドに影響する仮想マシンの一時停止および再開を要求するであろう。
【0028】
図3(a)を参照すると、仮想マシンのタイミングが、本発明によるチェックポイントシステムについて示されている。本実施形態では、一次仮想マシンは、再度、作動している(1つ以上のアプリケーションを実行している)(310、310’)か、または一次仮想マシンが一時停止される(314)かのいずれかである。チェックポインティングエンジンは、
図3(b)に示されるようなタイミング条件下で動作する。いくつかのチェックポインティングエンジンタイミング遷移は、
図3(a)に示されるものと同一である。例えば、チェックポインティングエンジンは、チェックポイント(P)が起こる(324)までアイドル(320)であり得、その時点で、チェックポインティングエンジンは、一次仮想マシン(314)を一時停止させる(326)。一次仮想マシンが一時停止されている間、一次仮想マシンの状態が捕捉される(328)。状態データが捕捉される(328)と、チェックポインティングエンジンは、一次仮想マシンを再開し(332)、1つ以上のアプリケーションを再度実行する(310’)。
【0029】
次いで、捕捉された状態データは、二次仮想マシンに転送される(336)。データが転送されると、チェックポインティングエンジンは、データが受信されたことを示す、確認応答(ACK)が二次仮想マシンから受信される(340)のを待つ。次いで、チェックポイントデータが、例えば、1つ以上のデータのフレームをネットワークに解放することによって、完遂される(344)。
【0030】
この時点で、チェックポインティングエンジンは、アイドル状態(348)になるが、本実施形態では、アイドル状態は、次のチェックポイント(324’)が宣言されることが許可される前に、追加の遅延期間(チェックポイント間隔遅延またはアイドル遅延)を含む。この増加した合計遅延は、チェックポイントが宣言される前に、追加のチェックポイントイベントが待ち行列に入れられることを可能にし、したがって、複数のチェックポイントイベントが、チェックポイント動作の1つのセットによって対象にされることを可能にする。これは、チェックポイントを取り扱うためのイベントあたりのオーバーヘッドを低減させる。
【0031】
チェックポイント間隔遅延は、本システムにおける種々の競合する考慮事項にさらされる。例えば、仮想マシンを一時停止する前に導入される遅延は、仮想マシンの他の機能に影響を及ぼすほど長くすることはできない。例えば、仮想マシンが別のコンピュータと通信している場合、その他方のコンピュータは、その他方のコンピュータが仮想マシンに送信した伝送に応答して、メッセージを待ち得る。仮想マシンの応答メッセージの提供における任意の追加の遅延は、その待ち時間を増加させ、低減した応答性を引き起こすであろう。
【0032】
一実施形態では、適切な遅延の設定は、仮想マシンの実際のネットワークインターフェースを観察し、前のサイクルのネットワークデータ転送が完了するか、またはある完了閾値に達するかのいずれかまで、次のチェックポイントサイクルが開始することを可能にしないことによって、達成される。しかしながら、これは、ネットワークのデータ転送能力がチェックポイントシステムのオーバーヘッドおよび費用に対して非常に高速である場合、遅延機構としては効果のないものになり得る。
【0033】
別の実施形態では、本方法は、解放されたデータの量および標的ネットワーク配信レートに基づいて、適切な遅延を計算する。したがって、チェックポイント間隔遅延は、以下の方程式によって生成される。
チェックポイント間隔遅延=ビット単位のバッチサイズ/標的ネットワーク配信レート
例えば、1Gbpsの所望の配信レートに対して測定される400,000ビット(50,000バイト)の解放は、(400,000ビット×0.000000001秒/ビット)400ミクロン秒のチェックポイント間隔遅延をもたらす。
【0034】
別の実施形態では、最小(‘min’)遅延が、ネットワークI/Oを実際に開始することにおける一般オーバーヘッド(待ち時間)を補償するために、計算された遅延に加算されることができ、チェックポイント間隔遅延=‘min’+(ビット単位のバッチサイズ)/(標的ネットワーク配信レート)である。
【0035】
このチェックポイント間隔遅延は、いくつかの点で本システムの利益になる。第1に、遅延は、ネットワーク出力を殆どまたは全く解放しないサイクルに不利益をもたらさない。第2に、遅延は、ネットワーク出力の様々なサイズバーストを伴う負荷にも不利益をもたらし得る、これまでの計算に基づく遅延を繰り越さない(または蓄積しない)。第3に、計算された遅延は、次のサイクルに向かって稼働するためのより多くの時間を仮想マシンに与え、次のチェックポイントサイクルを比例的に遅延させない。第4に、仮想マシンのストリーミング出力バッチが遅延に従って増大するため、遅延は、時間オーバーヘッドをさらに低減させる。第5に、遅延は、固定遅延仮定を伴わずに、ネットワーク出力の集約を動的に促進させる。最終的に、結果として生じる遅延は、同数のチェックポイントイベントを対象とするためのより少ないチェックポイントを必要とすることによって、チェックポイントレートを有意に低減させ、したがって、メモリおよび相互接続構成要素ならびにチェックポイントを処理することに関与し得る他の構成要素への負担を低減させる。
【0036】
バッチサイズとしての400,000ビットの例が、非限定的例として提供されていることに留意されたい。アウトバウンドネットワークバッチのサイズおよびデータ転送レートは、予測不可能である。この動的遅延方法を用いると、仮想マシンとチェックポイントエンジンとは、競合するよりもむしろ協働する。したがって、一実施形態では、監視されたパラメータに基づくチェックポイント間隔遅延の動的選択は、チェックポイント周期が実質的に大きくなること、または解放されるネットワークデータのネットワークバッチのサイズを最大化することを可能にする。
【0037】
動的遅延率選択方法はまた、チェックポイント間隔遅延の持続時間を限定し得る。これは、アウトバウンドネットワークトラフィックの膨大なバッチを迅速に蓄積する仮想マシン、または制限が課されることなくデータが増大し続けることを可能にするものに対して、システムを保護する。この後者の点の例は、「ネットワークフラッド」試験であり得る。チェックポイント間隔遅延のサイズへのある制限がないと、遅延は、実用的な値を超えて増大し続けることができる。
【0038】
別の実施形態では、基本的チェックポイント間隔遅延機構の精緻化は、前のサイクルのチェックポイント間隔遅延が満了する(またはネットワーク伝送が物理的に完了する)のを待ちながら、保留ネットワークトラフィックが増加するにつれてその量を監視することである。例えば、保留トラフィックが残りの解放されるトラフィックの量を超えるとき、残りの(現在の)チェックポイント間隔遅延は、中止されることができ、即時サイクルが、より大規模になっている保留ネットワーク伝送に対処することを可能にする。この精緻化の利益は、それがネットワークを経由したトラフィックの前のサイクルの最終部分の配信と並行して動作するにつれて、チェックポイント機構の起動および実行費用ならびに待ち時間がより良好に隠されることを可能にする、ある程度の予測可能性を導入することである。
【0039】
以下の議論から明白であるように、別様に具体的に記述されない限り、説明の全体を通して、「処理する」、または「算出する」、または「計算する」、または「遅延させる」、または「比較する」、「生成する」、または「決定する」、または「完遂する」、または「チェックポインティングする」、または「中断する」、または「取り扱う」、または「受信する」、または「バッファリングする」、または「配分する」、または「表示する」、または「フラグを付ける」、もしくはブール論理または他の関連演算、もしくは同等物等の用語を利用する議論は、コンピュータシステムまたは電子デバイスのレジスタおよびメモリ内の物理的(電子的)数量として表されるデータを操作して、電子メモリまたはレジスタ、もしくは他のそのような情報記憶、伝送、または表示デバイス内の物理的数量として同様に表される他のデータに変換する、コンピュータシステムまたは電子デバイスのアクションおよびプロセスを指すことが理解される。
【0040】
本明細書に提示されるアルゴリズムは、いかなる特定のコンピュータまたは他の装置にも本質的に関連付けられない。種々の汎用システムが、本教示によるプログラムとともに使用され得るか、または必要方法ステップを行うように、より特殊化された装置を構築することが便宜的であることを証明し得る。種々のこれらのシステムのための必要構造は、以下の説明から明白となるであろう。加えて、本発明は、いかなる特定のプログラミング言語も参照して説明されず、したがって、種々の実施形態は、種々のプログラミング言語を使用して実装され得る。
【0041】
本発明の側面、実施形態、特徴、および実施例は、あらゆる観点で例証的と見なされるものであり、本発明を限定することを意図しておらず、その範囲は、請求項のみによって定義される。他の実施形態、修正、および使用法が、請求される発明の精神および範囲から逸脱することなく、当業者に明白となるであろう。
【0042】
要素または構成要素が、記載される要素または構成要素のリストに含まれる、および/またはそこから選択されると言われる、用途では、要素または構成要素は、記載される要素または構成要素のうちのいずれか1つであり得、記載される要素または構成要素のうちの2つ以上のものから成る群から選択されることができることを理解されたい。さらに、本明細書で明示的であろうと暗示的であろうと、本教示の精神および範囲から逸脱することなく、本明細書に説明される組成、装置、または方法の要素および/または特徴は、種々の方法で組み合わせられることができることを理解されたい。
【0043】
「include(含む)」、「includes」、「including」、「have(有する)」、「has」、または「having」という用語の使用は、概して、別様に具体的に記述されない限り、非制約的かつ非限定的として理解されるべきである。
【0044】
ステップの順序またはあるアクションを行うための順序は、本教示が動作可能である限り、重要ではないことを理解されたい。さらに、2つ以上のステップまたはアクションは、同時に行われ得る。
【0045】
本発明の図および説明は、明確にする目的のために、他の要素を排除しながら、本発明の明確な理解のための関連する要素を図示するように簡略化されていることを理解されたい。しかしながら、当業者は、これらおよび他の要素が、望ましい場合があることを認識するであろう。しかしながら、そのような要素は、当技術分野において周知であるため、および本発明のさらなる理解を促進することにならないため、そのような要素の議論は、本明細書に提供されない。図は、組立図としてではなく、例証目的のために提示されていることを理解されたい。省略された詳細および修正または代替実施形態は、当業者の視野内にある。
【0046】
本発明は、その精神または不可欠な特性から逸脱することなく、他の具体的形態で具現化され得る。前述の実施形態は、したがって、あらゆる観点において、本明細書に説明される本発明の限定ではなく、例証と見なされる。本発明の範囲は、したがって、前述の説明によってではなく、添付の請求項によって示され、請求項の均等物の意味および範囲内の全ての変更は、本明細書に包含されることが意図される。
本発明は、以下の項目をさらに提供する。
(項目1)
動的なイベント駆動型チェックポイント間隔において遅延を決定する方法であって、
第1の仮想マシンから第2のマシンに転送されるべきネットワークビットの数Nを決定することと、
標的ビット転送レートRを決定することと、
NのRに対する比率として前記チェックポイント間隔遅延を決定することと
を含む、方法。
(項目2)
前記遅延は、最小遅延をさらに含む、項目1に記載の方法。
(項目3)
チェックポイント間隔を遅延させる方法であって、
ネットワークデータの前のバッチの転送を監視することと、
前記ネットワークデータの前のバッチの転送がある所定の完了のレベルに達するまで、後続のチェックポイントを遅延させることと
を含む、方法。
(項目4)
前記所定の完了のレベルは、100%である、項目3に記載の方法。
(項目5)
一次仮想マシンを備えている第1のフォールトトレラントコンピュータデバイスと、
第2のコンピュータデバイスと
を備え、
前記第1のコンピュータデバイスおよび前記第2のコンピュータデバイスは、ネットワーク化されており、
前記一次仮想マシンは、第1のチェックポインティングエンジンと、第1のネットワークインターフェースとを備え、
前記第2のコンピュータデバイスは、第2のネットワークインターフェースを備え、
前記第1のチェックポインティングエンジンは、ネットワークパラメータに応答して、遅延間隔によってチェックポイントを遅延させる、
コンピューティングシステム。
(項目6)
前記ネットワークパラメータは、標的ネットワーク配信レートである、項目5に記載のコンピュータシステム。
(項目7)
前記チェックポイント遅延は、ネットワークトラフィック配信の完了に応答して中止される、項目6に記載のコンピュータシステム。
(項目8)
前記チェックポイント遅延は、実際のネットワーク配信レートに応答して延長される、項目6に記載のコンピュータシステム。
(項目9)
前記チェックポイント遅延は、残りの解放されるトラフィックを超える保留ネットワークトラフィックに応答して中止される、項目6に記載のコンピュータシステム。
(項目10)
前記チェックポイント遅延間隔は、前記標的ネットワーク配信レートで除算された転送されているビットのバッチサイズに等しい、項目5に記載のコンピュータシステム。
(項目11)
前記第1のチェックポインティングエンジンは、最小遅延に応答して前記チェックポイントを遅延させる、項目5に記載のコンピュータシステム。
(項目12)
前記チェックポイント間隔遅延は、前記標的ネットワーク配信レートで除算された転送されているビットのバッチサイズに追加の最小遅延を加えたものに等しい、項目5に記載のコンピュータシステム。