(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-07
(45)【発行日】2024-11-15
(54)【発明の名称】ソフトウエアアプリケーションプロセスを監視するシステムと方法
(51)【国際特許分類】
G06F 11/07 20060101AFI20241108BHJP
H04L 69/40 20220101ALI20241108BHJP
【FI】
G06F11/07 193
G06F11/07 140A
H04L69/40
【外国語出願】
(21)【出願番号】P 2019228066
(22)【出願日】2019-12-18
【審査請求日】2022-12-09
(32)【優先日】2018-12-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500520743
【氏名又は名称】ザ・ボーイング・カンパニー
【氏名又は名称原語表記】The Boeing Company
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】トロイ, ジェームス ジェイ.
(72)【発明者】
【氏名】クレイグ, ブルース マーヴィン
【審査官】石坂 知樹
(56)【参考文献】
【文献】特開2003-140925(JP,A)
【文献】特開2016-207121(JP,A)
【文献】特開2015-138512(JP,A)
【文献】米国特許出願公開第2011/0041009(US,A1)
【文献】米国特許第06718486(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 13/00
H04L 69/40
(57)【特許請求の範囲】
【請求項1】
プロセスを監視するためのシステム(100)であって、
ソフトウエアアプリケーション(122)の複数のインスタンス(160、162)を実行するように構成された複数の計算ノード(102、104、106)のうちの第1の計算ノード(102)と、第2の計算ノード(104)とを備え、前記第1の計算ノード(102)が、
前記第1の計算ノード(102)で実行される前記ソフトウエアアプリケーション(122)の第1のインスタンス(160)に関するプロセスステータスデータ(105)を生成するように構成されたプロセスモニター(140)、
前記プロセスステータスデータ(105)に基づいて、前記第1の計算ノード(102)で前記ソフトウエアアプリケーション(122)の前記第1のインスタンス(160)の予定プロセス(107)が実行を停止したかどうかを決定し、
前記第1の計算ノード(102)で前記予定プロセス(107)が実行を停止したとの決定に基づいて、前記ソフトウエアアプリケーション(122)の前記第1のインスタンス(160)を選択的にリスタートする
ように構成されたステータスデータアナライザー(146)、
前記第1の計算ノード(102)で前記プロセスモニター(140)が実行を停止したかどうかを決定し、
前記第1の計算ノード(102)で前記プロセスモニター(140)が実行を停止したと決定することに応じて前記プロセスモニター(140)をリスタートする
ように構成されたプロセスモニターチェッカー(142)、及び
前記複数の計算ノード(102、104、106)のうちの前記第2の計算ノード(104)で前記ソフトウエアアプリケーション(122)の第2のインスタンス(162)が障害を起こしたかどうかを決定し、
前記第2の計算ノード(104)で前記第2のインスタンス(162)が障害を起こしたと決定することに応じて、前記ソフトウエアアプリケーション(122)の前記第2のインスタンス(162)に関連付けられる不完全タスク(109)に基づくアクション(128)を実施する
ように構成されたピアモニター(150)
を含む、システム。
【請求項2】
前記プロセスモニター(140)が、
前記第1の計算ノード(102)で前記プロセスモニターチェッカー(142)が実行を停止したかどうかを決定し、
前記第1の計算ノード(102)で前記プロセスモニターチェッカー(142)が実行を停止したと決定することに応じて、前記プロセスモニターチェッカー(142)をリスタートする
ように構成されたプロセスモニターチェッカー検証器(144)を更に備える、請求項1に記載のシステム(100)。
【請求項3】
前記第1の計算ノード(102)が、
前記第1の計算ノード(102)で前記ピアモニター(150)が実行を停止したかどうかを決定し、
前記第1の計算ノード(102)で前記ピアモニター(150)が実行を停止したと決定することに応じて前記ピアモニター(150)をリスタートする
ように構成されたピアモニターチェッカー(152)を更に備え、
前記ピアモニター(150)が、
前記第1の計算ノード(102)で前記ピアモニターチェッカー(152)が実行を停止したかどうかを決定し、
前記第1の計算ノード(102)で前記ピアモニターチェッカー(152)が実行を停止したと決定することに応じて前記ピアモニターチェッカー(152)をリスタートする
ように構成されたピアモニターチェッカー検証器(154)を含む、請求項1又は2に記載のシステム(100)。
【請求項4】
前記ステータスデータアナライザー(146)が、前記第1の計算ノード(102)で前記予定プロセス(107)が実行を停止したと決定することに応じて、
アプリケーションリスタート判定基準(111)が満たされているかどうかを決定し、
前記アプリケーションリスタート判定基準(111)が満たされていると決定することに応じて、前記第1の計算ノード(102)で前記ソフトウエアアプリケーション(122)の前記第1のインスタンス(160)をリスタートする
ように構成されており、
前記ステータスデータアナライザー(146)は、
前記プロセスステータスデータ(105)に基づいて、第1の時間(513)に前記第1の計算ノード(102)で前記予定プロセス(107)が実行されていないとして検出されると決定し、
前記第1の時間(513)と、前記第1の計算ノード(102)で前記予定プロセス(107)が以前にスタートされた時間を示すスタート時間(511)との差が時間閾値(515)以上であるかどうかを決定し、
前記差が前記時間閾値(515)以上であると決定することに応じて、障害カウンタ(517)をリセットし、
前記障害カウンタ(517)に基づいて、前記アプリケーションリスタート判定基準(111)が満たされているかどうかを決定し、
前記障害カウンタ(517)が障害数閾値(519)以上であるかどうかを決定し、
前記障害カウンタ(517)が前記障害数閾値(519)未満であると決定することに応じて、前記アプリケーションリスタート判定基準(111)が満たされていると決定する
ように構成される、請求項1又は2に記載のシステム(100)。
【請求項5】
前記ステータスデータアナライザー(146)が、前記障害カウンタ(517)が前記障害数閾値(519)以上であると決定することに応じて、前記アプリケーションリスタート判定基準(111)が満たされていないと決定するように構成されている、請求項4に記載のシステム(100)。
【請求項6】
前記ステータスデータアナライザー(146)が、前記アプリケーションリスタート判定基準(111)が満たされていないと決定することに応じて、前記第1の計算ノード(102)で前記ソフトウエアアプリケーション(122)の前記第1のインスタンス(160)のリスタートを制止するか、又は前記第1の計算ノード(102)で前記プロセスモニター(140)、前記プロセスモニターチェッカー(142)、及び前記ピアモニター(150)の実行を停止するように構成されている、請求項4又は5に記載のシステム(100)。
【請求項7】
クラスター管理装置(110)及び記憶デバイス(108)を更に備え、前記ステータスデータアナライザー(146)が、前記アプリケーションリスタート判定基準(111)が満たされていないと決定することに応じて、第1の通知(153)をユーザ装置(112)へ送るか、第2の通知(151)を前記クラスター管理装置(110)へ送るか、第3の通知(157)を前記複数の計算ノード(102、104、106)のうちの第3の計算ノード(106)へ送るか、前記記憶デバイス(108)のログデータ(131)を更新して前記第1の計算ノード(102)で前記ソフトウエアアプリケーション(122)がシャットダウンされていることを示すか、又はこれらの組み合わせを行うように構成されている、請求項4から6のいずれか一項に記載のシステム(100)。
【請求項8】
ソフトウエアアプリケーション(122)の複数のインスタンス(160、162)を実行するように構成された複数の計算ノード(102、104、106)のうちの第1の計算ノード(102)において、前記第1の計算ノード(102)で実行中の前記ソフトウエアアプリケーション(122)の第1のインスタンス(160)に関するプロセスステータスデータ(105)を生成すること、
前記プロセスステータスデータ(105)に基づいて、前記第1の計算ノード(102)で前記ソフトウエアアプリケーション(122)の前記第1のインスタンス(160)の予定プロセス(107)が実行を停止したかどうかを決定すること、
前記第1の計算ノード(102)で前記予定プロセス(107)が実行を停止したとの決定に基づいて、前記第1の計算ノード(102)のステータスデータアナライザー(146)が、前記第1の計算ノード(102)で前記ソフトウエアアプリケーション(122)の前記第1のインスタンス(160)を選択的にリスタートすること、
前記複数の計算ノード(102、104、106)のうちの第2の計算ノード(104)で前記ソフトウエアアプリケーション(122)の第2のインスタンス(162)が障害を起こしたかどうかを決定すること、
並びに
前記第2の計算ノード(104)で前記第2のインスタンス(162)が障害を起こしたと決定することに応じて、前記ソフトウエアアプリケーション(122)の前記第2のインスタンス(162)に関連付けられる不完全タスク(109)に基づくアクション(128)を実施すること
を含む方法
であって、
前記第2の計算ノード(104)で前記ソフトウエアアプリケーション(122)の前記第2のインスタンス(162)が障害を起こしたかどうかを決定することが、
クラスター管理装置(110)からクラスタープロセスデータ(143)を受け取ること、及び
前記クラスタープロセスデータ(143)に基づいて、前記第2の計算ノード(104)で前記ソフトウエアアプリケーション(122)の前記第2のインスタンス(162)が障害を起こしたと決定すること
を含む、方法。
【請求項9】
記憶デバイス(108)から前記第2の計算ノード(104)に関連付けられるログデータ(141)を前記第1の計算ノード(102)で受け取ること、及び
前記ログデータ(141)に基づいて前記不完全タスク(109)を識別すること
を更に含む、請求項8に記載の方法。
【請求項10】
前記アクション(128)を実施することが、不完全タスク(115)を元に戻すこと又は前記不完全タスク(115)を完了することを含み、前記不完全タスク(109)がデータベース更新(115)を含み、前記アクション(128)が前記データベース更新(115)のロールバックを実施すること又は前記データベース更新(115)を行うことを含む、請求項8又は9に記載の方法。
【請求項11】
前記第2の計算ノード(104)で前記ソフトウエアアプリケーション(122)の前記第2のインスタンス(162)の第2の予定プロセス(113)が実行を停止したことを前記クラスタープロセスデータ(143)が示すと決定することに応じて、前記第2の計算ノード(104)で前記ソフトウエアアプリケーション(122)の前記第2のインスタンス(162)が障害を起こしたと決定すること
を更に含む、請求項8から10のいずれか一項に記載の方法。
【請求項12】
記憶デバイス(108)から、前記第2の計算ノード(104)に関連付けられるログデータ(141)を前記第1の計算ノード(102)で受け取ること、及び
前記第2の計算ノード(104)で前記ソフトウエアアプリケーション(122)がシャットダウンされていることを前記ログデータ(141)が示すと決定することに応じて、前記第2の計算ノード(104)で前記ソフトウエアアプリケーション(122)の前記第2のインスタンス(162)が障害を起こしたと決定すること
を更に含む、請求項8から11のいずれか一項に記載の方法。
【請求項13】
命令を記憶するコンピュータ可読記憶デバイス(132)であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
ソフトウエアアプリケーション(122)の複数のインスタンス(160、162)を実行するように構成された複数の計算ノード(102、104、106)のうちの第1の計算ノード(102)において、前記第1の計算ノード(102)で実行中の前記ソフトウエアアプリケーション(122)の第1のインスタンス(160)に関するプロセスステータスデータ(105)を生成すること、
前記プロセスステータスデータ(105)に基づいて、前記第1の計算ノード(102)で前記ソフトウエアアプリケーション(122)の前記第1のインスタンス(160)の予定プロセス(107)が実行を停止したかどうかを決定すること、
前記第1の計算ノード(102)で前記予定プロセス(107)が実行を停止したとの決定に基づいて、前記第1の計算ノード(102)のステータスデータアナライザー(146)により、前記第1の計算ノード(102)で前記ソフトウエアアプリケーション(122)の前記第1のインスタンス(160)を選択的にリスタートすること、
前記複数の計算ノード(102、104、106)のうちの第2の計算ノード(104)で前記ソフトウエアアプリケーション(122)の第2のインスタンス(162)が障害を起こしたかどうかを決定すること、
並びに
前記第2の計算ノード(104)で前記第2のインスタンス(162)が障害を起こしたと決定することに応じて、
前記第1の計算ノード(102)からクラスター管理装置(110)へ、前記第2の計算ノード(104)で前記第2のインスタンス(162)が障害を起こしたことを示す通知(151)を送ること、
前記第1の計算ノード(102)で、前記ソフトウエアアプリケーション(122)の前記第2のインスタンス(162)に関連付けられる不完全タスク(109)の割り当て(145)を、前記クラスター管理装置(110)から受け取ること、及び
前記
割り当て(145)を受け取ることに応じて、前記不完全タスク(109)に基づくアクション(128)を実施すること
を含む動作を実施させる、コンピュータ可読記憶デバイス(132)。
【請求項14】
前記動作が、
前記クラスター管理装置(110)から前記割り当て(145)を受け取ることに応じて、前記第2の計算ノード(104)に関連付けられるログデータ(141)に関するリクエスト(161)を記憶デバイス(108)へ送ること、及び
前記ログデータ(141)に基づいて前記不完全タスク(109)を識別すること
を更に含む、請求項13に記載のコンピュータ可読記憶デバイス(132)。
【請求項15】
前記動作が、前記第2の計算ノード(104)で前記第2のインスタンス(162)が障害を起こしたと決定することに応じて、前記第1の計算ノード(102)の前記プロセスステータスデータ(105)を前記クラスター管理装置(110)へ送ることを更に含み、前記クラスター管理装置(110)へ送られる前記通知(151)は、第2のプロセスステータスデータ(165)に関するリクエスト(163)を前記クラスター管理装置(110)から前記複数の計算ノード(102、104、106)のうちの第3の計算ノード(106)へ送ることを開始するためのものであり、前記割り当て(145)が前記プロセスステータスデータ(105)と前記第2のプロセスステータスデータ(165)とに基づいている、請求項14に記載のコンピュータ可読記憶デバイス(132)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は概して、ソフトウエアアプリケーションプロセスの監視に関する。
【背景技術】
【0002】
計算サーバは、サービスを提供するためのソフトウエアアプリケーションを実行することができる。ソフトウエアアプリケーションは、スタックオーバーフロー、ネットワークや電力の供給停止、又はその他予期しない途絶といった様々な理由により停止し得る。ソフトウエアアプリケーションの停止と、ソフトウエアアプリケーションが停止したとシステムアドミニストレータが決定することの間には遅延が生じ得る。システムアドミニストレータがソフトウエアアプリケーションの停止を検出することとシステムアドミニストレータがソフトウエアアプリケーションをリスタートすることの間にも遅延が生じ得る。ソフトウエアアプリケーションのリスタートの遅延は、サービスが利用不能となるダウンタイムを延長する。システムアドミニストレータによるソフトウエアアプリケーションの連続的な監視は、不便で費用のかかるものであり得る。
【発明の概要】
【0003】
特定の一実装態様において、プロセスを監視するためのシステムは、ソフトウエアアプリケーションの複数のインスタンスを実行するように構成された複数の計算ノードのうちの第1の計算ノードを含む。システムは、複数の計算ノードのうちの第2の計算ノードも含む。第1の計算ノードは、プロセスモニター、ステータスデータアナライザー、プロセスモニターチェッカー、及びピアモニターを含む。プロセスモニターは、第1の計算ノードで実行されるソフトウエアアプリケーションの第1のインスタンスに関するプロセスステータスデータを生成するように構成される。ステータスデータアナライザーは、プロセスステータスデータに基づいて、第1の計算ノードでソフトウエアアプリケーションの第1のインスタンスの予定プロセスが実行を停止したかどうかを決定するように構成される。ステータスデータアナライザーは、第1の計算ノードで予定プロセスが実行を停止したとの決定に基づいて、ソフトウエアアプリケーションの第1のインスタンスを選択的にリスタートするように構成される。プロセスモニターチェッカーは、第1の計算ノードでプロセスモニターが実行されているかどうかを決定するように構成される。プロセスモニターチェッカーはまた、第1の計算ノードでプロセスモニターが実行を停止したと決定することに応じて、プロセスモニターをリスタートするように構成される。ピアモニターは、複数の計算ノードのうちの第2の計算ノードでソフトウエアアプリケーションの第2のインスタンスが障害を起こしたかどうかを決定するように構成される。ピアモニターはまた、第2の計算ノードで第2のインスタンスが障害を起こしたと決定することに応じて、ソフトウエアアプリケーションの第2のインスタンスに関連付けられる不完全タスクに基づくアクションを実施するように構成される。
【0004】
別の特定の実装態様では、プロセスを監視する方法は、ソフトウエアアプリケーションの複数のインスタンスを実行するように構成された複数の計算ノードのうちの第1の計算ノードにおいて、第1の計算ノードで実行されるソフトウエアアプリケーションの第1のインスタンスに関するプロセスステータスデータを生成することを含む。方法は、プロセスステータスデータに基づいて、第1の計算ノードでソフトウエアアプリケーションの第1のインスタンスの予定プロセスが実行を停止したかどうかを決定することも含む。方法は更に、第1の計算ノードで予定プロセスが実行を停止したとの決定に基づいて、第1の計算ノードでソフトウエアアプリケーションの第1のインスタンスを選択的にリスタートすることを含む。方法は、複数の計算ノードのうちの第2の計算ノードでソフトウエアアプリケーションの第2のインスタンスが障害を起こしたかどうかを決定することも含む。方法は更に、第2の計算ノードで第2のインスタンスが障害を起こしたと決定することに応じて、ソフトウエアアプリケーションの第2のインスタンスに関連付けられる不完全タスクに基づくアクションを実施することを含む。
【0005】
別の特定の実装態様では、コンピュータ可読記憶デバイスは、プロセッサによって実行されると、プロセッサに、ソフトウエアアプリケーションの複数のインスタンスを実行するように構成された複数の計算ノードのうちの第1の計算ノードにおいて、第1の計算ノードで実行されるソフトウエアアプリケーションの第1のインスタンスに関するプロセスステータスデータを生成することを含む動作を実施させる命令を記憶する。前記動作は、プロセスステータスデータに基づいて、第1の計算ノードでソフトウエアアプリケーションの第1のインスタンスの予定プロセスが実行を停止したかどうかを決定することも含む。前記動作は更に、第1の計算ノードで予定プロセスが実行を停止したとの決定に基づいて、第1の計算ノードでソフトウエアアプリケーションの第1のインスタンスを選択的にリスタートすることを含む。前記動作は、複数の計算ノードのうちの第2の計算ノードでソフトウエアアプリケーションの第2のインスタンスが障害を起こしたかどうかを決定することも含む。前記動作は更に、第2の計算ノードで第2のインスタンスが障害を起こしたと決定することに応じて、ソフトウエアアプリケーションの第2のインスタンスに関連付けられる不完全タスクに基づくアクションを実施することを含む。
【0006】
ここに記載された特徴、機能、及び利点は、様々な実行形態において単独で実現することが可能であるか、又は他の実行形態において組み合わせることが可能であり、これらの更なる詳細は、以下の記載及び添図面を参照して理解される。
【図面の簡単な説明】
【0007】
【
図1】ソフトウエアアプリケーションのプロセスの監視を実施するように動作可能なシステムを示すブロック図である。
【
図2】ソフトウエアアプリケーションのプロセスの監視方法の一実施例を示すフロー図である。
【
図3】ソフトウエアアプリケーションのプロセスの監視方法の一実施例を示すフロー図である。
【
図4】ソフトウエアアプリケーションのプロセスの監視方法の一実施例を示すフロー図である。
【
図5A】
図1のシステムのステータスデータアナライザー及びメモリの一実施例を示す線図である。
【
図5B】
図1のシステムのステータスデータアナライザーによって実施される方法の一実施例を示すフロー図である。
【
図6】ソフトウエアアプリケーションのプロセスの監視方法の一実施例を示すフロー図である。
【
図7】ソフトウエアアプリケーションのプロセスの監視方法の一実施例を示すフロー図である。
【
図8】本開示によるコンピュータで実施可能な方法及びコンピュータで実行可能なプログラム命令(又はコード)の態様を支持するように構成されたコンピューティング装置を含む演算環境を示すブロック図である。
【発明を実施するための形態】
【0008】
ここに記載される実装態様は、ソフトウエアアプリケーションのプロセスの監視を目的としている。例えば、システムは、ソフトウエアアプリケーションの複数のインスタンスを実行するように構成された複数の計算ノードを含む。例えば、第1の計算ノードは、ソフトウエアアプリケーションの第1のインスタンスを実行するように構成されており、第2の計算ノードは、ソフトウエアアプリケーションの第2のインスタンスを実行するように構成されている。複数の計算ノードの各々は、ソフトウエアアプリケーションがノードで予定通り実行されているかどうかを監視するように構成されたサービスグループを含む。例えば、第1の計算ノードのサービスグループは、プロセスモニター、プロセスモニターチェッカー、又は両方を含む。プロセスモニターは、第1の計算ノードで実行されているソフトウエアアプリケーションのプロセスを示すプロセスステータスデータを生成する。プロセスモニターは、第1の計算ノードのステータスデータアナライザーにプロセスステータスデータを提供する。プロセスモニターチェッカーは、第1の計算ノードでプロセスモニターが実行を停止したと決定することに応じて、プロセスモニターをリスタートする。
【0009】
サービスグループの一又は複数の構成要素は、サービスグループの一又は複数の他の構成要素を監視するように構成される。特定の一実施例では、プロセスモニターとプロセスモニターチェッカーは、互いを監視するように構成される。具体的には、プロセスモニターは、第1の計算ノードでプロセスモニターチェッカーが実行されていない(例えば、実行を停止した)との決定に応答してプロセスモニターチェッカーをリスタートし、プロセスモニターチェッカーは、第1の計算ノードでプロセスモニターが実行されていない(例えば、実行を停止した)と決定することに応じてプロセスモニターをリスタートする。この実施例では、実行されていない(例えば、実行を停止した)プロセスモニター又はプロセスモニターチェッカーのいずれか一方を、プロセスモニター又はプロセスモニターチェッカーの他方によってリスタートすることができる。このようにして、サービスグループは、第1の計算ノードにおいてプロセスの厳重な監視を提供するために、複数レベルのチェックを提供する。
【0010】
ステータスデータアナライザーは、プロセスステータスデータの解析に基づいて、通知の生成、ソフトウエアアプリケーションのリスタート、ソフトウエアアプリケーションのプロセスのリスタート、ソフトウエアアプリケーションのリスタートの制止、サービスグループのシャットダウン、ログデータの更新、一時ファイルのクリーンアップ、又はこれらの組み合わせといった一又は複数のアクションを実施するように構成される。ステータスデータアナライザーは、監視すべきプロセスのリストにアクセスを有する。具体的には、監視対象プロセスは、ソフトウエアアプリケーションが正常に動いているときに実行されることが予定される。ステータスデータアナライザーは、予定プロセスが実行を停止したことをプロセスステータスデータが示していると決定することに応じて、一又は複数のアクションを実施する。いくつかの実施例では、ステータスデータアナライザーは、異なるタイプの予定プロセスに関する異なるアクションを実施する。特定の一実施例では、ステータスデータアナライザーは、第1のプロセスタイプの第1の予定プロセスが実行されていない(例えば、実行を停止した)と決定することに応じて、ソフトウエアアプリケーションの第1のインスタンスをリスタートする。別の実施例として、ステータスデータアナライザーは、第2のプロセスタイプの第2の予定プロセスが実行されていない(例えば、実行を停止した)と決定することに応じて、第2の予定プロセスをスタート(又はリスタート)する。このようにして、ステータスデータアナライザーは、ソフトウエアアプリケーションの第1のインスタンスに関連付けられるダウンタイムを短縮する。
【0011】
複数の計算ノードのいくつかは、ソフトウエアアプリケーションが他のノードで予定通り実行されているかどうかを監視するように構成されたピアアラートサービスグループも含む。ピアアラートサービスグループは、ピアモニター、ピアモニターチェッカー、又は両方を含む。ピアモニターは、複数の計算ノードで実行されているソフトウエアアプリケーションのプロセスを示すクラスタープロセスデータにアクセスする。一実施例において、第1の計算ノードはピアアラートサービスグループを含み、ピアモニターは第1の計算ノードのステータスデータアナライザーにクラスタープロセスデータを提供する。ピアモニターチェッカーは、第1の計算ノードでピアモニターが実行されていない(例えば、実行を停止した)と決定することに応じて、ピアモニターをリスタートする。
【0012】
ピアアラートサービスグループの一又は複数の構成要素は、ピアアラートサービスグループの一又は複数の構成要素を監視するように構成される。特定の一実施例では、ピアモニターとピアモニターチェッカーは、互いを監視するように構成される。具体的には、ピアモニターは、第1の計算ノードでピアモニターチェッカーが実行されていない(例えば、実行を停止した)と決定することに応じてピアモニターチェッカーをリスタートし、ピアモニターチェッカーは、第1の計算ノードでピアモニターが実行されていない(例えば、実行を停止した)と決定することに応じてピアモニターをリスタートする。この実施例では、実行されていない(例えば、実行を停止した)ピアモニター又はピアモニターチェッカーのいずれか一方を、ピアモニター又はピアモニターチェッカーの他方によってリスタートすることができる。このようにして、ピアアラートサービスグループは、複数の計算ノードにおいてプロセスの厳重な監視を提供するために、複数レベルのチェックを提供する。
【0013】
ピアモニターは、クラスタープロセスデータの解析に基づいて、クラスター管理装置、一又は複数の他の計算ノード、又はこれらの組み合わせに通知するように構成される。例えば、ピアモニターは、第2の計算ノードでソフトウエアアプリケーションの第2のインスタンスが障害を起こしたことをクラスタープロセスデータが示していると決定することに応じて、クラスター管理装置、一又は複数の他の計算ノード、又はこれらの組み合わせに通知する。ピアモニター(又はクラスター管理装置)は、ソフトウエアアプリケーションの第2のインスタンスに関連付けられるいずれかの不完全タスクに対処する計算ノードを指定する。例えば、ピアモニター(又はクラスター管理装置)は、クラスタープロセスデータに基づいて、第1の計算ノードが、ソフトウエアアプリケーションのアクティブな(例えば、障害を起こしていない)インスタンスを有する複数の計算ノードのなかで最も少ない実行中のプロセスを有していることを識別する。ピアモニター(又はクラスター管理装置)は、第1の計算ノードを、最も少ないプロセスを実行しているものと識別することに応じて、ソフトウエアアプリケーションの第2のインスタンスに関連付けられるいずれかの不完全タスクに対処する第1の計算ノードを指定する。
【0014】
ピアモニターは、第1の計算ノードが指定されていると決定することに応じて、第2のノードに関連付けられるログデータにアクセスする。例えば、システムは、複数の計算ノードに関するログデータを維持する記憶デバイス(例えば、ネットワーク記憶デバイス又は他の共用ストレージ)を含む。ピアモニターは、ログデータに基づいて一又は複数の不完全タスクを識別する。ピアモニターは、不完全タスクに関連付けられるアクションを実施する。例えば、ピアモニターは、不完全タスクを元に戻す(例えば、不完全なデータベース更新をロールバックする)か、又は不完全タスクを完了する(例えば、データベース更新を行う)。このようにして、ピアモニターは、計算ノードがソフトウエアアプリケーションの有効状態に到達することを可能にする。
【0015】
図1は、ソフトウエアアプリケーションのプロセスを監視するように動作可能なシステム100のブロック図である。システム100は複数の計算ノードを含んでいる。例えば、システム100は、ネットワーク190を介して計算ノード104、計算ノード106、記憶デバイス108、クラスター管理装置110、装置112、又はこれらの組み合わせに連結された計算ノード102を含んでいる。特定の一態様において、クラスター管理装置110は、物理装置、仮想装置、計算ノード102で実行されるプロセス、計算ノード104で実行されるプロセス、計算ノード106で実行されるプロセス、又はこれらの組み合わせを含む。特定の一態様において、計算ノード102、計算ノード104、又は計算ノード106は、クラスター管理装置110を含む。例えば、計算ノード102、計算ノード104、又は計算ノード106の一つは、クラスター管理装置110として指定される。
【0016】
三つの計算ノードを含むシステム100が一実施例として記載されることを理解されたい。他の実施例では、システム100は、三つより少ない計算ノード又は三つより多い計算ノードを含むことができる。特定の一態様において、システム100の計算ノードの数は、様々な計算ノードがネットワーク190のカバーエリアに出入りするにつれて動的に変化する。計算ノード102、計算ノード104、計算ノード106、及び装置112のうちの一又は複数は、一実施例として、ユーザ装置、モバイル機器、固定位置デバイス、通信装置、コンピューティング装置、サーバ、デスクトップ、ネットワークノード、仮想装置、又はこれらの組み合わせを含む。特定の一態様において、装置112は、自動装置、移動ロボット、移動ロボットプラットフォーム、又はこれらの組み合わせを含む。
【0017】
ネットワーク190は、有線ネットワーク、無線ネットワーク、又は両方を含む。記憶デバイス108は、一実施例として、ネットワーク記憶デバイス、共用記憶デバイス、分散記憶システム、データサーバ、又はこれらの組み合わせを含む。クラスター管理装置110は、一実施例として、サーバ、モバイル機器、固定位置デバイス、通信装置、コンピューティング装置、デスクトップ、ネットワークノード、仮想装置、又はこれらの組み合わせを含む。クラスター管理装置110は、クラスター管理アプリケーションを実行するように構成される。クラスター管理アプリケーションは、計算ノード102、計算ノード104、及び計算ノード106のうちの一又は複数で実行されているプロセスのステータスを示すクラスタープロセスデータ143を生成するように構成される。
【0018】
計算ノード102は、プロセッサ134に連結されたメモリ132を含む。プロセッサ134は、シングルコアプロセッサ又はマルチコアプロセッサを含む。特定の一態様において、プロセッサ134は複数のプロセッサを含む。特定の一態様において、プロセッサ134は、マルチスレッドのプログラム実行を実施するように構成される。例えば、シングルコアプロセッサは、複数のスレッドの命令の実行をインターリーブすることによりマルチスレッドのプログラムの実行を実施するように見えるように構成される。マルチコアプロセッサは、複数のスレッドを同時に実行するように構成される。特定の一態様において、プロセッサ134は、ソフトウエアアプリケーション122の第1のインスタンス160を実行するように構成されるアプリケーションサーバを含む。
【0019】
計算ノード102は、プロセスモニター140、プロセスモニターチェッカー142、又はこれらの組み合わせを含むサービスグループを含む。プロセスモニター140は、プロセスモニターチェッカー検証器144を含む。プロセスモニター140は、プロセッサ134で実行されているプロセス124を示すプロセスステータスデータ105を生成する(例えば、プロセスステータス(ps)コマンドを実行することにより)ように構成される。特定の一態様において、プロセスステータスデータ105は、プロセス124で実行されているソフトウエアアプリケーション122の第1のインスタンス160に関連付けられるプロセス124のサブセットのステータスを示す。プロセスモニターチェッカー142は、計算ノード102でプロセスモニター140が実行されているかどうかを決定するように構成される。プロセスモニターチェッカー142は、計算ノード102でプロセスモニター140が実行されていないと決定することに応じて、プロセスモニター140をスタート(例えば、リスタート)するように構成される。特定の一態様において、プロセスモニターチェッカー142は、計算ノード102でプロセスモニター140が実行を停止したかどうかを決定するように構成される。例えば、プロセスモニターチェッカー142は、プロセスモニター140が、計算ノード102で以前に実行されていたが今は実行されていないかどうかを決定するように構成される。このような態様では、プロセスモニターチェッカー142は、計算ノード102でプロセスモニター140が実行を停止したと決定することに応じて、プロセスモニター140をリスタートするように構成される。
【0020】
プロセスモニターチェッカー検証器144は、計算ノード102でプロセスモニターチェッカー142が実行されているかどうかを決定するように構成される。プロセスモニターチェッカー検証器144は、計算ノード102でプロセスモニターチェッカー142が実行されていないと決定することに応じて、プロセスモニターチェッカー142をスタート(例えば、リスタート)するように構成される。特定の一態様において、プロセスモニターチェッカー検証器144は、計算ノード102でプロセスモニターチェッカー142が実行を停止したかどうかを決定するように構成される。例えば、プロセスモニターチェッカー検証器144は、プロセスモニターチェッカー142が、計算ノード102で以前に実行されていたが今は実行されていないかどうかを決定するように構成される。このような態様では、プロセスモニターチェッカー検証器144は、計算ノード102でプロセスモニターチェッカー142が実行を停止したと決定することに応じて、プロセスモニターチェッカー142をリスタートするように構成される。このようにして、プロセスモニターチェッカー142及びプロセスモニター140は、互いを監視するように構成される。
【0021】
二つのレベルのチェック(例えば、プロセスモニター140及びプロセスモニターチェッカー142)を含むサービスグループが一実施例として記載されていることを理解されたい。他の実施例では、サービスグループは、サービスグループの一又は複数の他の構成要素を監視するサービスグループの一又は複数の構成要素を用いて三つ以上のレベルのチェックを含む。
【0022】
計算ノード102は、ステータスデータアナライザー146を含む。ステータスデータアナライザー146は、プロセスステータスデータ105の解析に基づいて、一又は複数のアクション、例えば、通知の生成、ソフトウエアアプリケーション122の第1のインスタンス160のリスタート、ソフトウエアアプリケーション122のプロセスのスタート、ソフトウエアアプリケーション122の第1のインスタンス160のリスタートの制止、サービスグループ(例えば、プロセスモニター140、プロセスモニターチェッカー142、又は両方)のシャットダウン、ログデータの更新131、又はこれらの組み合わせを実施するように構成される。
【0023】
特定の一実装態様において、計算ノード102はピアアラートサービスグループを含む。ピアアラートサービスグループは、ピアモニター150、ピアモニターチェッカー152、又は両方を含む。ピアモニター150はピアモニターチェッカー検証器154を含む。ピアモニター150は、クラスター管理装置110からクラスタープロセスデータ143を受け取るように構成される。ピアモニターチェッカー152は、計算ノード102でピアモニター150が実行されていないと決定することに応じて、ピアモニター150をスタート(例えば、リスタート)するように構成される。ピアモニターチェッカー検証器154は、計算ノード102でピアモニターチェッカー152が実行されていないと決定することに応じて、ピアモニターチェッカー152をスタート(例えば、リスタート)するように構成される。特定の一態様において、ピアモニターチェッカー152は、計算ノード102でピアモニター150が実行を停止したと決定することに応じて、ピアモニター150をリスタートするように構成される。ピアモニターチェッカー検証器154は、計算ノード102でピアモニターチェッカー152が実行を停止したと決定することに応じて、ピアモニターチェッカー152をリスタートするように構成される。このようにして、ピアモニターチェッカー152及びピアモニター150は、互いを監視するように構成される。
【0024】
二つのレベルのチェック(例えば、ピアモニター150及びピアモニターチェッカー152)を含むピアアラートサービスグループが一実施例として記載されていることを理解されたい。他の実施例では、ピアアラートサービスグループは、ピアアラートサービスグループの一又は複数の他の構成要素を監視するピアアラートサービスグループの一又は複数の構成要素を用いて三つ以上のレベルのチェックを含む。
【0025】
ピアモニター150は、クラスタープロセスデータ143の解析に基づいて、計算ノード104でソフトウエアアプリケーション122の第2のインスタンス162が障害を起こたかどうかを決定するように構成される。ピアモニター150は、計算ノード104でソフトウエアアプリケーション122の第2のインスタンス162が障害を起こしたと決定することに応じて、クラスター管理装置110、一又は複数の他の計算ノード、又はこれらの組み合わせに通知するように構成される。特定の一態様において、ピアモニター150は、計算ノード104がクラスター管理装置110に対応する(例えば、これを含む)と決定することに応じて、クラスター管理装置110として計算ノード102又は計算ノード106を指定するように構成される。例えば、ピアモニター150は、計算ノード102でクラスター管理アプリケーションのインスタンスをスタートするか、又はクラスター管理アプリケーションのインスタンスをスタートするようにとのリクエストを計算ノード106に送る。ピアモニター150は、第2のインスタンスのいずれかの不完全タスクに対処する計算ノード102が指定されると決定することに応じて、計算ノード104に関連付けられるログデータ141にアクセスするように構成される。ピアモニター150は、ログデータ141がソフトウエアアプリケーション122の第2のインスタンス162に関連付けられる一又は複数の不完全タスク109を示すと決定することに応じて、不完全タスク109に関連付けられるアクション128を実施するように構成される。
【0026】
アクティブ/パッシブ構成では、一つの計算ノードが、ソフトウエアアプリケーション122のインスタンスを実行している別の計算ノードが障害を起こした場合のバックアップ計算ノードとしてアイドル(例えば、パッシブ)状態に維持される。ソフトウエアアプリケーション122の障害が検出されると、ソフトウエアアプリケーション122のインスタンスがバックアップ計算ノードでスタートし、障害を起こした計算ノードの動作を引き継ぐ。アクティブ/アクティブ構成では、すべての利用可能な計算ノードでソフトウエアアプリケーション122のインスタンスを実行することにより、リソースがより効率的に使用される。
図1では、クラスター管理装置110、計算ノード102、計算ノード104、計算ノード106、又はこれらの組み合わせが、アクティブ/アクティブ構成をサポートするようにセットアップされている。例えば、クラスター管理装置110は、計算ノード102、計算ノード104、及び計算ノード106(例えば、システム100のすべての利用可能な計算ノード)でソフトウエアアプリケーション122のインスタンスをスタートするように構成される。計算ノード102は、計算ノード104でソフトウエアアプリケーション122の障害を検出することに応じて、計算ノード104に関連付けられる不完全タスク109に対処するように構成される。クラスター管理装置110は、計算ノード104でソフトウエアアプリケーション122の障害を検出することに応じて、他の計算ノードの一つ(例えば、既にアクティブな計算ノード)を選択し、計算ノード104のために用意された将来のトラフィックを選択された計算ノード(例えば、計算ノード106)にリダイレクトするように負荷分散装置を更新するように構成される。アクティブ/アクティブ構成は、すべての利用可能な計算ノードをアクティブとし、不完全タスク109に対処することにより有効状態への回復を可能にすることにより効率を上昇させる。
【0027】
計算ノード102は、ディスプレイインターフェース126、ネットワークインターフェース130、又は両方を含む。
図1では、ディスプレイインターフェース126はディスプレイ114に連結されている。ネットワークインターフェース130はネットワーク190に連結されている。特定の一態様において、ネットワークインターフェース130は、ネットワークインターフェースコントローラ、ネットワークインターフェース装置、ネットワークソケット、ネットワークインターフェースカード、シリアルネットワークインターフェース、無線インターフェース、又はこれらの組み合わせを含む。
【0028】
メモリ132は、ソフトウエアアプリケーション122に関連付けられる予定プロセスを示す予定プロセスデータを記憶するように構成される。例えば、データは、予定プロセス107、予定プロセス113、又は両方を示す。メモリ132はまた、アプリケーションリスタート判定基準111を記憶するように構成される。特定の一態様において、予定プロセスデータ、アプリケーションリスタート判定基準111、又は両方は、ユーザ入力、デフォルトデータ、構成設定、又はこれらの組み合わせに基づいている。メモリ132は、命令125を記憶するように構成される。命令125は、プロセッサ134によって実行されると、ここに記載される一又は複数の動作を実施する。
【0029】
以下の記載では、
図1のシステム100により実施される様々な機能が、特定の構成要素又はモジュールによって実施されるものとして記載されることに注意されたい。しかしながら、構成要素及びモジュールのこのような分割は、例示のみを目的とする。代替的な態様では、特定の構成要素又はモジュールにより実行されるものとしてここに記載される機能は、複数の構成要素又はモジュールに分割される。更に、代替的な態様では、
図1の二つ以上の構成要素又はモジュールは、単一の構成要素又はモジュールに統合される。
図1に図示される各構成要素又はモジュールは、ハードウエア(例えば、フィールドプログラマブルゲートアレイ(FPGA)装置、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、コントローラ等)、ソフトウエア(例えば、プロセッサにより実行可能な命令)、又はこれらの任意の組み合わせを使用して実装され得る。
【0030】
動作の間、クラスター管理装置110は、システム100の一又は複数のノードでソフトウエアアプリケーション122のインスタンス及びサービスグループをスタートする。例えば、クラスター管理装置110は、システムアドミニストレータからのユーザ入力に応じて、ソフトウエアアプリケーション122のインスタンス及びサービスグループをスタートする。具体的には、クラスター管理装置110は、第1のリクエストを計算ノード102に送る。第1のリクエストは、ソフトウエアアプリケーション122のインスタンス及び対応するサービスグループが計算ノード102で起動されるべきであることを示す。ステータスデータアナライザー146は、第1のリクエストを受け取ることに応じて、計算ノード102でソフトウエアアプリケーション122の第1のインスタンス160を起動する(例えば、スタートする)。ステータスデータアナライザー146は、第1のリクエストを受け取ることに応じて、計算ノード102でサービスグループ(例えば、プロセスモニター140、プロセスモニターチェッカー142、又は両方)も起動する(例えば、スタートする)。サービスグループの二つの構成要素は一実施例として提供されていることを理解されたい。他の実施例では、サービスグループは、二つより少ない構成要素又は二つより多い構成要素を含む。いくつかの実施例では、サービスグループの二つ以上の構成要素は、単一の構成要素に組み合わせられる。いくつかの実施例では、サービスグループの特定の構成要素によって実施されるここに記載の機能は、サービスグループの複数の構成要素によって実施される。
【0031】
特定の一態様において、クラスター管理装置110は、他の計算ノードを監視する少なくとも一つの計算ノードを選択する。例えば、クラスター管理装置110は、クラスタープロセスデータ143に基づいて計算ノード102を選択する。特定の一実装態様において、クラスター管理装置110は、計算ノード102からのプロセスステータスデータ105、計算ノード104からの第2のプロセスステータスデータ、計算ノード106からのプロセスステータスデータ165、又はこれらの組み合わせを受け取る。例えば、クラスター管理装置110は、計算ノード102への第1のリクエスト、計算ノード104への第2のリクエスト、及び計算ノード106へのリクエスト163を送ることに応じて、プロセスステータスデータ105、第2のプロセスステータスデータ、及びプロセスステータスデータ165を受け取る。クラスター管理装置110は、プロセスステータスデータ105、第2のプロセスステータスデータ、プロセスステータスデータ165、又はこれらの組み合わせに基づいてクラスタープロセスデータ143を生成する。クラスタープロセスデータ143は、計算ノード102で実行されているソフトウエアアプリケーション122に関連付けられるプロセス124のサブセットの第1の数を示す。クラスター管理装置110は、プロセス124のサブセットの第1の数が、計算ノード104で実行中のプロセスの第2の数、計算ノード106で実行中のプロセスの第3の数、又は両方以下であると決定することに応じて、計算ノード102を選択する。特定の一実装態様において、クラスター管理装置110は、クラスタープロセスデータ143とは無関係に計算ノード102を選択する。例えば、クラスター管理装置110は、ラウンドロビン選択、ユーザ入力、デフォルトデータ、構成設定、又はこれらの組み合わせに基づいて計算ノード102を選択する。
【0032】
クラスター管理装置110は、第2のリクエストを計算ノード102(例えば、選択された計算ノード)に送る。ステータスデータアナライザー146は、第2のリクエストを受け取ることに応じて、計算ノード102でピアサービスグループ(例えば、ピアモニター150、ピアモニターチェッカー152、又は両方)を起動する(例えば、スタートする)。
【0033】
特定の一実施例では、プロセッサ134の第1のスレッド、第2のスレッド、第3のスレッド、第4のスレッド、及び第5のスレッドは、ソフトウエアアプリケーション122の第1のインスタンス160、プロセスモニター140、プロセスモニターチェッカー142、ピアモニター150、ピアモニターチェッカー152にそれぞれ対応する。サービスグループの二つの構成要素は一実施例として提供されていることを理解されたい。他の実施例では、サービスグループは、二つより少ない構成要素又は二つより多い構成要素を含む。いくつかの実施例では、サービスグループの二つ以上の構成要素は、単一の構成要素に組み合わせられる。いくつかの実施例では、サービスグループの特定の構成要素によって実施されるここに記載の機能は、サービスグループの複数の構成要素によって実施される。
【0034】
プロセスモニターチェッカー検証器144は、計算ノード102でプロセスモニターチェッカー142が実行されているかどうかを決定する。例えば、プロセスモニターチェッカー検証器144は、第1のコマンド(例えば、psコマンド)を実行し、プロセスモニターチェッカー142に関連付けられるプロセス124の一つのサブセットを少なくとも示す第1のプロセスデータを生成する。特定の一態様において、第1のコマンドはプロセスモニターチェッカー142を示す。特定の一実施例では、プロセスモニターチェッカー142の識別子が、第1のコマンド(例えば、psコマンド)の引数として提供される。プロセスモニターチェッカー検証器144は、第1のプロセスデータがプロセスモニターチェッカー142に関連付けられるプロセスをなにも示さない又はプロセスモニターチェッカー142に関連付けられる特定の予定プロセスを示さないと決定することに応じて、計算ノード102でプロセスモニターチェッカー142が実行されていない(例えば、有効な状態で実行されていない)と決定する。プロセスモニターチェッカー検証器144は、計算ノード102でプロセスモニターチェッカー142が実行されていないと決定することに応じて、プロセスモニターチェッカー142をスタートする(例えば、リスタートする)。
【0035】
特定の一態様において、プロセスモニターチェッカー検証器144は、計算ノード102でプロセスモニターチェッカー142が実行を停止したかどうかを決定するように構成される。例えば、プロセスモニターチェッカー検証器144は、計算ノード102でプロセスモニターチェッカー142が実行されていないと決定することに応じて、プロセスモニターチェッカー142が計算ノード102で以前に実行されていたことを第1のプロセスデータの以前のバージョンが示すかどうかを決定する。具体的には、プロセスモニターチェッカー検証器144は、第1の特定の時間に第1のコマンドを実行することにより第1のプロセスデータの第1のバージョンを生成し、第2の特定の時間に第1のコマンドを実行することにより第1のプロセスデータの第2のバージョンを生成する。プロセスモニターチェッカー検証器144は、プロセスモニターチェッカー142が第1の特定の時間に実行されていたことを第1のプロセスデータの第1のバージョンが示し、プロセスモニターチェッカー142が第2の特定の時間に実行されていないことを第1のプロセスデータの第2のバージョンが示すと決定することに応じて、計算ノード102でプロセスモニターチェッカー142が実行を停止したと決定する。プロセスモニターチェッカー検証器144は、第1のプロセスデータの第2のバージョンをメモリ132に記憶する。プロセスモニターチェッカー検証器144は、計算ノード102でプロセスモニターチェッカー142が実行を停止したと決定することに応じて、プロセスモニターチェッカー142をリスタートする。特定の一態様において、プロセスモニターチェッカー検証器144は、タイマーの満了(例えば、5分毎)の検出、ユーザ入力の受領、ステータスデータアナライザー146からのリクエストの受領、又はこれらの組み合わせに応じて、第1のコマンドを実行する。
【0036】
プロセスモニターチェッカー142は、計算ノード102でプロセスモニター140が実行されているかどうかを決定する。例えば、プロセスモニターチェッカー142は、第2のコマンド(例えば、psコマンド)を実行し、プロセスモニター140に関連付けられるプロセス124の一つのサブセットを少なくとも示す第2のプロセスデータを生成する。プロセスモニターチェッカー142は、第2のプロセスデータがプロセスモニター140に関連付けられるプロセスをなにも示さない又はプロセスモニター140に関連付けられる特定の予定プロセスを示さないと決定することに応じて、計算ノード102でプロセスモニター140が実行されていない(例えば、有効な状態で実行されていない)と決定する。プロセスモニターチェッカー142は、計算ノード102でプロセスモニター140が実行されていないと決定することに応じて、プロセスモニター140をスタート(例えば、リスタート)する。
【0037】
特定の一態様において、プロセスモニターチェッカー142は、計算ノード102でプロセスモニター140が実行を停止したかどうかを決定する。例えば、プロセスモニターチェッカー142は、計算ノード102でプロセスモニター140が実行されていないと決定することに応じて、プロセスモニター140が計算ノード102で以前に実行されていたことを第2のプロセスデータの以前のバージョンが示すかどうかを決定する。具体的には、プロセスモニターチェッカー142は、第1の特定の時間に第2のコマンドを実行することによって第2のプロセスデータの第1のバージョンを生成し、第2の特定の時間に第2のコマンドを実行することによって第2のプロセスデータの第2のバージョンを生成する。プロセスモニターチェッカー142は、プロセスモニター140が第1の特定の時間に実行されていたことを第2のプロセスデータの第1のバージョンが示し、プロセスモニター140が第2の特定の時間に実行されていないことを第2のプロセスデータの第2のバージョンが示すと決定することに応じて、計算ノード102でプロセスモニター140が実行を停止したと決定する。プロセスモニターチェッカー142は、第2のプロセスデータの第2のバージョンをメモリ132に記憶する。プロセスモニターチェッカー142は、計算ノード102でプロセスモニター140が実行を停止したと決定することに応じて、プロセスモニター140をリスタートする。特定の一態様において、プロセスモニターチェッカー142は、タイマーの満了(例えば、5分毎)の検出、ユーザ入力の受領、ステータスデータアナライザー146からのリクエストの受領、又はこれらの組み合わせに応じて、第2のコマンドを実行する。
【0038】
プロセスモニター140は、ソフトウエアアプリケーション122の第1のインスタンス160に関するプロセスステータスデータ105を生成する。例えば、プロセスモニター140は、第3のコマンド(例えば、psコマンド)を実行し、ソフトウエアアプリケーション122に関連付けられるプロセス124の一つのサブセットを少なくとも示すプロセスステータスデータ105を生成する。特定の一態様において、第3のコマンドはソフトウエアアプリケーション122を示す。特定の一実施例では、ソフトウエアアプリケーション122の識別子が、第3のコマンド(例えば、psコマンド)の引数として提供される。プロセスモニター140は、プロセスステータスデータ105をメモリ132に記憶するか、プロセスステータスデータ105をステータスデータアナライザー146に供給するか、又は両方を行う。特定の一態様において、プロセスモニター140は、タイマーの満了(例えば、5分毎)の検出、ユーザ入力の受領、ステータスデータアナライザー146からのリクエストの受領、又はこれらの組み合わせに応じて、第3のコマンドを実行する。
【0039】
ステータスデータアナライザー146は、ソフトウエアアプリケーション122に関連付けられる予定プロセスのステータスをチェックするために、プロセスステータスデータ105を解析する。特定の一態様において、ステータスデータアナライザー146は、タイマーの満了(例えば、5分毎)の検出、ユーザ入力の受領、プロセスモニター140からのプロセスステータスデータ105の受領、メモリ132内でプロセスステータスデータ105が更新されたとの決定、又はこれらの組み合わせに応じて、プロセスステータスデータ105を解析する。
【0040】
ステータスデータアナライザー146は、(例えば、プロセスステータスデータ105の解析の第1段階の間に)プロセスステータスデータ105に基づいてプロセス数127を決定する。プロセス数127は、特定のプロセスタイプのプロセス(例えば、レベル1のプロセス、レベル2のプロセス、レベル3のプロセス、又はこれらの組み合わせ)を含むプロセス124のサブセットの数を示す。例えば、予定プロセスデータは、ソフトウエアアプリケーション122に関連付けられる予定プロセスの各々の対応するプロセスタイプを示す。ステータスデータアナライザー146は、プロセスステータスデータ105及び予定プロセスデータに基づいてプロセス数127を決定する。例えば、プロセス数127は、プロセスステータスデータ105によって示されるプロセス124のサブセットの数を示す。サブセットは、特定のプロセスタイプ(例えば、レベル3のプロセス)を有するものとして予定プロセスデータにより示されるプロセスを含む。
【0041】
ステータスデータアナライザー146は、プロセス数127がプロセス数閾値119を満たすかどうかを決定する。例えば、ステータスデータアナライザー146は、プロセス数127が第1の閾値(例えば、10)以上であり、且つ第2の閾値(例えば、20)以下であると決定することに応じて、プロセス数127がプロセス数閾値119を満たしていないと決定する。別の実施例として、ステータスデータアナライザーは、プロセス数127が第2の閾値(例えば、20)以上であると決定することに応じて、プロセス数127がプロセス数閾値119を満たしていないと決定する。特定の一態様において、プロセス数閾値119は、第1の閾値、第2の閾値、又は両方を示す。
【0042】
ステータスデータアナライザー146は、プロセス数127がプロセス数閾値119を満たしていないと決定することに応じて、一又は複数のアクションを実施する。例えば、一又は複数のアクションは、通知151、通知153、更新155、通知157、通知159、又はこれらの組み合わせを生成することを含む。通知151、通知153、更新155、通知157、又は通知159のうちの一又は複数は、特定のプロセスタイプ(例えば、レベル3のプロセス)のプロセス数127がプロセス数閾値を満たしていないことを示す。例えば、通知151、通知153、更新155、通知157、又は通知159のうちの一又は複数は、特定のプロセスタイプ(例えば、レベル3のプロセス)のプロセス数127が、第1の閾値(例えば、10)以上であり、且つ第2の閾値(例えば、20)以下であることを示す。別の実施例として、通知151、通知153、更新155、通知157、又は通知159のうちの一又は複数は、特定のプロセスタイプ(例えば、レベル3のプロセス)のプロセス数127が第2の閾値(例えば、20)を上回っていることを示す。
【0043】
ステータスデータアナライザー146は、ネットワークインターフェース130を介して、クラスター管理装置110への通知151、装置112への通知153、記憶デバイス108への更新155、計算ノード106への通知157、計算ノード104への通知159、又はこれらの組み合わせを送る。特定の一態様において、クラスター管理装置110は、通知151の受領に応じて、計算ノード102における特定のプロセスタイプ(例えば、レベル3のプロセス)のプロセス数127がプロセス数閾値119を満たしていないことを示すために、ダッシュボードデータ121を更新する。クラスター管理装置110は、ディスプレイ、計算ノード102、計算ノード104、計算ノード106、装置112、又はこれらの組み合わせにダッシュボードデータ121を提供する。特定の一態様において、計算ノード102は、ダッシュボードデータ121に基づいて出力123を生成し、出力123をディスプレイ114に提供する。例えば、ユーザは、出力123を閲覧することによりシステム100の動作を監視することができる。特定の一態様において、ダッシュボードデータ121は、ダッシュボード(例えば、視覚情報ディスプイ及び管理インターフェース)に関連付けられる。
【0044】
特定の一態様において、装置112は、通知153の受領に応じて、装置112にメッセージ(例えば、eメールメッセージ又はアラート)を表示する。特定の一態様において、装置112は、通知153の受領に応じて、ダッシュボード(例えば、視覚情報ディスプレイ及び管理インターフェース)にメッセージを送るか、ステータスログファイルを更新するか、又は両方を行う。メッセージは、計算ノード102における特定のプロセスタイプ(例えば、レベル3のプロセス)のプロセス数127がプロセス数閾値119を満たしていないことを示す。特定の一態様において、記憶デバイス108は、更新155の受領に応じて、計算ノード102における特定のプロセスタイプ(例えば、レベル3のプロセス)のプロセス数127がプロセス数閾値119を満たしていないことを示すために、ログデータ131を更新する。ログデータ131は、計算ノード102、ソフトウエアアプリケーション122、ソフトウエアアプリケーション122の第1のインスタンス160、又はこれらの組み合わせに関連付けられる。特定の一態様において、計算ノード106(又は計算ノード104)は、通知157(又は通知159)の受領に応じて、計算ノード102における特定のプロセスタイプ(例えば、レベル3のプロセス)のプロセス数127がプロセス数閾値119を満たしていないことを示すために、ダッシュボードデータを更新する。
【0045】
ステータスデータアナライザー146は、(例えば、プロセスステータスデータ105の解析の第2段階の間に)予定プロセスデータによって示される予定プロセスのうちの一又は複数が計算ノード102で実行されているかどうかを決定する。例えば、ステータスデータアナライザー146は、プロセスステータスデータ105に基づいて、第1の計算ノード102でソフトウエアアプリケーション122の第1のインスタンス160の予定プロセス107が実行されているかどうかを決定する。具体的には、ステータスデータアナライザー146は、予定プロセス107が停止したことをプロセスステータスデータ105が示している又はプロセスステータスデータ105によって示されるプロセス124が予定プロセス107を含まないと決定することに応じて、計算ノード102で予定プロセス107が実行されていないと決定する。
【0046】
特定の一態様において、ステータスデータアナライザー146は、計算ノード102で予定プロセス107が実行を停止したかどうかを決定する。例えば、ステータスデータアナライザー146は、計算ノード102で予定プロセス107が実行されていないと決定することに応じて、予定プロセス107が計算ノード102で以前に実行されていたことをプロセスステータスデータ105の以前のバージョンが示すかどうかを決定する。具体的には、ステータスデータアナライザー146は、(例えば、psコマンドを実行することにより)第1の特定の時間にプロセスステータスデータ105の第1のバージョンを生成し、(例えば、psコマンドを実行することにより)第2の特定の時間にプロセスステータスデータ105の2のバージョンを生成する。ステータスデータアナライザー146は、予定プロセス107が第1の特定の時間に実行されていたことをプロセスステータスデータ105の第1のバージョンが示し、予定プロセス107が第2の特定の時間に実行されていないことをプロセスステータスデータ105の第2のバージョンが示すと決定することに応じて、計算ノード102で予定プロセス107が実行を停止したと決定する。ステータスデータアナライザー146は、プロセスステータスデータ105の第2のバージョンをメモリ132に記憶する。
【0047】
ステータスデータアナライザー146は、計算ノード102で予定プロセス107が実行されていない(又は実行を停止した)と決定することに応じて、一又は複数のアクションを実施する。一又は複数のアクションは、予定プロセス107のスタート(又はリスタート)、ソフトウエアアプリケーション122の第1のインスタンス160のスタート(又はリスタート)、通知151の生成、通知153の生成、更新155の生成、通知157の生成、通知159の生成、サービスグループ(例えば、プロセスモニター140、プロセスモニターチェッカー142、又は両方)のシャットダウン(例えば、停止)、ピアアラートサービスグループ(例えば、ピアモニター150、ピアモニターチェッカー152、又は両方)のシャットダウン、ソフトウエアアプリケーション122の第1のインスタンス160のシャットダウン、又はこれらの組み合わせを含む。例えば、ステータスデータアナライザー146は、予定プロセス107がプロセスタイプ117のものであることを予定プロセスデータが示していると決定し、プロセスタイプ117に基づいて一又は複数のアクションを選択する。
【0048】
特定の一態様において、ステータスデータアナライザー146は、プロセスタイプ117が第1のプロセスタイプ(例えば、レベル1のプロセス)と一致すると決定することに応じて、アプリケーションリスタート判定基準111が満たされているかどうかを決定する。これは
図5Bを参照して更に記載される。ステータスデータアナライザー146は、アプリケーションリスタート判定基準111が満たされていると決定することに応じて、計算ノード102でソフトウエアアプリケーション122の第1のインスタンス160をリスタートする。ステータスデータアナライザー146は、通知151、通知153、更新155、通知157、通知159、又はこれらの組み合わせを生成し、プロセスタイプ117の予定プロセス107の障害が検出されたこと、及び計算ノード102でソフトウエアアプリケーション122の第1のインスタンス160がリスタートされたことを示す。
【0049】
或いは、ステータスデータアナライザー146は、アプリケーションリスタート判定基準111が満たされていないと決定することに応じて、ソフトウエアアプリケーション122の第1のインスタンス160のリスタートを制止する。例えば、ステータスデータアナライザー146は、計算ノード102において、ソフトウエアアプリケーション122の第1のインスタンス160、プロセスモニター140、プロセスモニターチェッカー142、ピアモニター150、ピアモニターチェッカー152、又はこれらの組み合わせをシャットダウンする(例えば、停止する)。ステータスデータアナライザー146は、通知151、通知153、更新155、通知157、通知159、又はこれらの組み合わせを生成し、プロセスタイプ117の予定プロセス107の障害が検出されたこと、及び計算ノード102でソフトウエアアプリケーション122の第1のインスタンス160がシャットダウンされたことを示す。プロセスタイプ117の予定プロセス107の障害が検出されていること、及び計算ノード102でソフトウエアアプリケーション122がリスタートされること(又はシャットダウンされること)を示すために、クラスター管理装置110が通知151に基づいてダッシュボードデータ121を更新するか、装置112が通知153に基づいてメッセージを表示するか、記憶デバイス108が更新155に基づいてログデータ131を更新するか、計算ノード106が通知157に基づいてダッシュボードデータを更新するか、計算ノード104が通知159に基づいてダッシュボードデータを更新するか、又はこれらの組み合わせが行われる。
【0050】
特定の一態様において、ステータスデータアナライザー146は、プロセスタイプ117が第2のプロセスタイプ(例えば、レベル2のプロセス)と一致すると決定することに応じて、予定プロセス107をスタートする(例えば、リスタートする)。ステータスデータアナライザー146は、通知151、通知153、更新155、通知157、通知159、又はこれらの組み合わせを生成し、プロセスタイプ117の予定プロセス107の障害が検出されたこと、及び計算ノード102で予定プロセス107がスタート(例えば、リスタート)されたことを示す。プロセスタイプ117の予定プロセス107の障害が検出されて、計算ノード102で予定プロセス107がスタートされること(例えば、リスタートされること)を示すために、クラスター管理装置110が通知151に基づいてダッシュボードデータ121を更新するか、装置112が通知153に基づいてメッセージを表示するか、記憶デバイス108が更新155に基づいてログデータ131を更新するか、計算ノード106が通知157に基づいてダッシュボードデータを更新するか、計算ノード104が通知159に基づいてダッシュボードデータを更新するか、又はこれらの組み合わせが行われる。ステータスデータアナライザー146及びサービスグループ(例えば、プロセスモニター140、プロセスモニターチェッカー142、又は両方)は、第1のインスタンス160の選択的リスタートにより、ソフトウエアアプリケーション122の有効状態に対応する予定プロセス107(例えば、レベル2のプロセス)のスタートにより、又は両方により、このようにしてソフトウエアアプリケーション122の第1のインスタンス160のダウンタイムを短縮する。
【0051】
ピアモニターチェッカー検証器154は、計算ノード102でピアモニターチェッカー152が実行されているかどうかを決定する。例えば、ピアモニターチェッカー検証器154は、第1のコマンド(例えば、psコマンド)を実行し、ピアモニターチェッカー152に関連付けられるプロセス124の一つのサブセットを少なくとも示す第1のプロセスデータを生成する。特定の一態様において、第1のコマンドは、ピアモニターチェッカー152を示す(例えば、ピアモニターチェッカー152の識別子に第1のコマンドが提供される)。ピアモニターチェッカー検証器154は、第1のプロセスデータがピアモニターチェッカー152に関連付けられるプロセスをなにも示さない又はピアモニターチェッカー152に関連付けられる特定の予定プロセスを示さないと決定することに応じて、計算ノード102でピアモニターチェッカー152が実行されていない(例えば、有効な状態で実行されていない)と決定する。ピアモニターチェッカー検証器154は、計算ノード102でピアモニターチェッカー152が実行されていないと決定することに応じて、ピアモニターチェッカー152をスタートする(例えば、リスタートする)。
【0052】
特定の一態様において、ピアモニターチェッカー検証器154は、計算ノード102でピアモニターチェッカー152が実行を停止したかどうかを決定するように構成される。例えば、ピアモニターチェッカー検証器154は、計算ノード102でピアモニターチェッカー152が実行されていないと決定することに応じて、ピアモニターチェッカー152が計算ノード102で以前に実行されていたことを第1のプロセスデータの以前のバージョンが示すかどうかを決定する。具体的には、ピアモニターチェッカー検証器154は、第1の特定の時間に第1のプロセスデータの第1のバージョンを生成し、第2の特定の時間に第1のプロセスデータの第2のバージョンを生成する。ピアモニターチェッカー検証器154は、ピアモニターチェッカー152が第1の特定の時間に実行されていたことを第1のプロセスデータの第1のバージョンが示し、ピアモニターチェッカー152が第2の特定の時間に実行されていないことを第1のプロセスデータの第2のバージョンが示すと決定することに応じて、計算ノード102でピアモニターチェッカー152が実行を停止したと決定する。ピアモニターチェッカー検証器154は、第1のプロセスデータの第2のバージョンをメモリ132に記憶する。ピアモニターチェッカー検証器154は、計算ノード102でピアモニターチェッカー152が実行を停止したと決定することに応じて、ピアモニターチェッカー152をリスタートする。特定の一態様において、ピアモニターチェッカー検証器154は、タイマーの満了(例えば、5分毎)の検出、ユーザ入力の受領、ステータスデータアナライザー146からのリクエストの受領、又はこれらの組み合わせに応じて、第1のコマンドを実行する。
【0053】
ピアモニターチェッカー152は、計算ノード102でピアモニター150が実行されているかどうかを決定する。例えば、ピアモニターチェッカー152は、第2のコマンド(例えば、psコマンド)を実行し、ピアモニター150に関連付けられるプロセス124の一つのサブセットを少なくとも示す第2のプロセスデータを生成する。ピアモニターチェッカー152は、第2のプロセスデータがピアモニター150に関連付けられるプロセスをなにも示さない又はピアモニター150に関連付けられる特定の予定プロセスを示さないと決定することに応じて、計算ノード102でピアモニター150が実行されていない(又は有効な状態で実行されていない)と決定する。ピアモニターチェッカー152は、計算ノード102でピアモニター150が実行されていないと決定することに応じて、ピアモニター150をスタート(又はリスタート)する。
【0054】
特定の一態様において、ピアモニターチェッカー152は、計算ノード102でピアモニター150が実行を停止したかどうかを決定するように構成される。例えば、ピアモニターチェッカー152は、計算ノード102でピアモニター150が実行されていないと決定することに応じて、ピアモニター150が計算ノード102で以前に実行されていたことを第2のプロセスデータの以前のバージョンが示すかどうかを決定する。具体的には、ピアモニターチェッカー152は、第1の特定の時間に第2のプロセスデータの第1のバージョンを生成し、第2の特定の時間に第2のプロセスデータの第2のバージョンを生成する。ピアモニターチェッカー152は、ピアモニター150が第1の特定の時間に実行されていたことを第2のプロセスデータの第1のバージョンが示し、ピアモニター150が第2の特定の時間に実行されていないことを第2のプロセスデータの第2のバージョンが示すと決定することに応じて、計算ノード102でピアモニター150が実行を停止したと決定する。ピアモニターチェッカー152は、第2のプロセスデータの第2のバージョンをメモリ132に記憶する。ピアモニターチェッカー152は、計算ノード102でピアモニター150が実行を停止したと決定することに応じて、ピアモニター150をリスタートする。特定の一態様において、ピアモニターチェッカー152は、タイマーの満了(例えば、5分毎)の検出、ユーザ入力の受領、ステータスデータアナライザー146からのリクエストの受領、又はこれらの組み合わせに応じて、第2のコマンドを実行する。
【0055】
ピアモニター150は、ソフトウエアアプリケーション122に関連付けられる予定プロセスの他の計算ノードでのステータスを示すデータを集める。特定の一実装態様において、ピアモニター150は、クラスター管理装置110からクラスタープロセスデータ143を受け取る。特定の一態様において、ピアモニター150は、クラスター管理装置110にリクエストを送り、リクエストに応答してクラスタープロセスデータ143を受け取る。代替的な一態様では、クラスター管理装置110は、リクエストの受領とは無関係にピアモニター150にクラスタープロセスデータ143を送る。例えば、クラスター管理装置110は、タイマーの満了の検出、ユーザ入力の受領、又は両方に応じて、ピアモニター150にクラスタープロセスデータ143を送る。ピアモニター150は、クラスタープロセスデータ143をメモリ132に記憶するか、クラスタープロセスデータ143をステータスデータアナライザー146に供給するか、又は両方を行う。
【0056】
特定の一実装態様において、ピアモニター150は、記憶デバイス108からログデータ141を受け取る。特定の一態様において、ピアモニター150は、記憶デバイス108にログリクエスト161を送り、ログリクエスト161に応答してログデータ141を受け取る。代替的な一態様では、記憶デバイス108は、リクエスト161の受領とは無関係にピアモニター150にログデータ141を送る。例えば、記憶デバイス108は、タイマーの満了の検出、ユーザ入力の受領、又は両方に応じて、ピアモニター150にログデータ141を送る。ピアモニター150は、ログデータ141をメモリ132に記憶するか、ログデータ141をステータスデータアナライザー146に供給するか、又は両方を行う。
【0057】
ピアモニター150は、計算ノード104でソフトウエアアプリケーション122に関連付けられる予定プロセスのステータスをチェックする。例えば、ピアモニター150は、ソフトウエアアプリケーション122の第2のインスタンス162が計算ノード104で障害を起こしたかどうかを決定する。特定の一実装態様において、ピアモニター150は、クラスタープロセスデータ143、ログデータ141、又は両方に基づいて、第2のインスタンス162が計算ノード104で障害を起こしたかどうかを決定する。例えば、ピアモニター150は、計算ノード104で一又は複数の第2のプロセスが実行されていること、計算ノード104で一又は複数の第3のプロセスが停止していること、或いは両方をクラスタープロセスデータ143(又はログデータ141)が示すと決定する。ピアモニター150は、第2のプロセスが予定プロセス113を含まないこと、第3のプロセスが予定プロセス113を含むこと、又は両方を決定することに応じて、第2のインスタンス162が有効な状態で実行されていないと決定する。特定の一態様において、ピアモニター150は、第2のインスタンス162が有効な状態で実行されていないと決定することに応じて、ソフトウエアアプリケーション122の第2のインスタンス162が計算ノード104で障害を起こしたと決定する。
【0058】
特定の一態様において、ピアモニター150は、第2のインスタンス162が有効な状態での実行を停止したかどうかを決定する。例えば、ピアモニター150は、第2のインスタンス162が有効な状態で実行されていないと決定することに応じて、計算ノード104で第2のインスタンス162が有効な状態で以前に実行されていたことをクラスタープロセスデータ143の以前のバージョン(又はログデータ141の以前のバージョン)が示すかどうかを決定する。具体的には、ピアモニター150は、第1の特定の時間にクラスタープロセスデータ143の第1のバージョン(又はログデータ141の第1のバージョン)が生成され(又は受け取られ)、第2の特定の時間にクラスタープロセスデータ143の第2のバージョン(又はログデータ141の第2のバージョン)が生成される(又は受け取られる)と決定する。ピアモニター150は、第1の特定の時間に第2のインスタンス162が有効な状態で実行されていたことをクラスタープロセスデータ143の第1のバージョン(又はログデータ141の第1のバージョン)が示し、第2の特定の時間に第2のインスタンス162が有効な状態で実行されていないことをクラスタープロセスデータ143の第2のバージョン(又はログデータ141の第2のバージョン)が示すと決定することに応じて、計算ノード104で第2のインスタンス162が有効な状態での実行を停止したと決定する。ピアモニター150は、計算ノード104で第2のインスタンス162が有効な状態での実行を停止したと決定することに応じて、第2のインスタンス162が計算ノード104で障害を起こしていると決定する。ピアモニター150は、クラスタープロセスデータ143の第2のバージョン(又はログデータ141の第2のバージョン)をメモリ132に記憶する。
【0059】
特定の一態様において、ピアモニター150は、ソフトウエアアプリケーション122が計算ノード104でシャットダウンされていることをクラスタープロセスデータ143(又はログデータ141)が示すと決定することに応じて、ソフトウエアアプリケーション122の第2のインスタンス162が計算ノード104で障害を起こしたと決定する。特定の一態様において、ピアモニター150は、タイマーの満了(例えば、5分毎)の検出、ユーザ入力の受領、ピアモニター150からのクラスタープロセスデータ143の受領、クラスターステータスデータ143がメモリ132内で更新されたとの決定、記憶デバイス108からのログデータ141の受領、ログデータ141がメモリ132内で更新されたとの決定、又はこれらの組み合わせに応じて、クラスタープロセスデータ143、ログデータ141、又は両方を解析する。
【0060】
ピアモニター150は、ソフトウエアアプリケーション122の第2のインスタンス162が第2の計算ノード104で障害を起こしたと決定することに応じて、一又は複数のアクションを実施する。一又は複数のアクションは、計算ノード104でソフトウエアアプリケーション122の第2のインスタンス162の障害が検出されていることを示す、通知151、通知153、更新155、通知157、通知159の生成、クラスター管理装置110の指定、又はこれらの組み合わせを含む。例えば、ピアモニター150は、計算ノード104がクラスター管理装置110に対応する(例えば、含む)と決定することに応じて、クラスター管理装置110として計算ノード102又は計算ノード106を指定する。具体的には、ピアモニター150は、計算ノード102でクラスター管理アプリケーションのインスタンスをスタートするか、又はクラスター管理アプリケーションのインスタンスをスタートするようにとのリクエストを計算ノード106に送る。特定の一態様において、ピアモニター150は、ソフトウエアアプリケーション122の第2のインスタンス162が第2の計算ノード104で障害を起こしたと決定することに応じて、プロセスステータスデータ105を生成するか、プロセスステータスデータ105をクラスター管理装置110に送るか、又は両方を行う。
【0061】
特定の一態様において、クラスター管理装置110は、通知151の受領、及び通知151が計算ノード104で第2のインスタンス162の障害を示すと決定することに応じて、負荷分散装置を更新し、計算ノード104のために用意された将来のリクエストを別の計算ノードへリダイレクトする。特定の一態様において、クラスター管理装置110は、通知151を受け取ること、及び通知151が計算ノード104で第2のインスタンス162の障害を示すと決定することに応じて、クラスタープロセスデータ143を生成(又は更新)するか、第2のインスタンス162に関連付けられるいずれかの不完全タスクを実施する計算ノードを選択するか、又は両方を行う。例えば、クラスター管理装置110は、通知151の受領に応じて、計算ノード106にリクエスト163を送る。計算ノード106は、リクエスト163の受領に応じて、クラスター管理装置110にプロセスステータスデータ165を送る。クラスター管理装置110は、プロセスステータスデータ105、プロセスステータスデータ165、又は両方に基づいてクラスタープロセスデータ143を生成(又は更新)する。
【0062】
クラスター管理装置110は、プロセスステータスデータ105が、計算ノード102で実行されているソフトウエアアプリケーション122に関連付けられるプロセス124のサブセットの第1の数を示すと決定する。クラスター管理装置110は、クラスタープロセスデータ143に基づき、第1の数が計算ノード106で実行中のプロセスの第2の数以下であると決定することに応じて、計算ノード102を選択する。例えば、第2の数は、計算ノード106で実行されているソフトウエアアプリケーション122に関連付けられるプロセスのサブセットを示す。クラスター管理装置110は、計算ノード102(例えば、選択された計算ノード)が第2のインスタンス162に関連付けられるいずれかの不完全タスクを実施すべきであることを示すために、計算ノード102に割り当て145を送る。
【0063】
ピアモニター150は、ソフトウエアアプリケーション122の第2のインスタンス162に関連付けられる不完全タスク109を識別する。特定の一実装態様において、ピアモニター150は、計算ノード104でソフトウエアアプリケーション122の第2のインスタンス162が障害を起こしたとの決定、クラスター管理装置110からの割り当て145の受領、又は両方に応じて、記憶デバイス108にログリクエスト161を送る。ピアモニター150は、ソフトウエアアプリケーション122の第2のインスタンス162に関連付けられる不完全タスク109をログデータ141が示すかどうかを決定する。
【0064】
ピアモニター150は、不完全タスク109に関連付けられる一又は複数のアクションを実施する。例えば、ピアモニター150は、不完全タスク115に関連付けられるアクション128を実施する。特定の一態様において、ピアモニター150は、不完全タスク115を元に戻すためのアクション128を実施する。例えば、ピアモニター150は、不完全タスク115がデータベースの更新を含むと決定することに応じて、データベースの更新をロールバックするためのアクション128を実施する。代替的な一態様では、ピアモニター150は、不完全タスク115を完了するためのアクション128を実施する。例えば、ピアモニター150は、不完全タスク115がデータベースの更新を含むと決定することに応じて、データベースの更新を行うためのアクション128を実施する。
【0065】
このようにして、システム100は、第1のインスタンス160の選択的リスタートにより、ソフトウエアアプリケーション122の有効な状態に対応する予定プロセス107(例えば、レベル2のプロセス)のスタートにより、又は両方により、計算ノード102におけるソフトウエアアプリケーション122のダウンタイムを短縮する。システム100は、計算ノード104における障害を起こしたソフトウエアアプリケーション122のインスタンスに関連付けられる不完全タスク109への対処を計算ノード102に行わせることにより、有効な状態を回復することができる。
【0066】
図2は、ソフトウエアアプリケーションのプロセスの監視方法200の一実施例を示している。特定の一態様において、方法200は、
図1のクラスター管理装置110、計算ノード102、計算ノード104、計算ノード106、システム100、又はこれらの組み合わせによって実施される。
【0067】
方法200は、202において、ノードのソフトウエアアプリケーションのインスタンスをスタートすることを含む。例えば、
図1のクラスター管理装置110は、計算ノード102、計算ノード104、計算ノード106、又はこれらの組み合わせに第1のリクエストを送る。計算ノード102は、
図1を参照して記載されるように、クラスター管理装置110からの第1のリクエストの受領に応じてソフトウエアアプリケーション122の第1のインスタンス160をスタートする。特定の一態様において、システム100の他の計算ノードは、第1のリクエストの受領に応じてソフトウエアアプリケーション122のインスタンスもスタートする。例えば、計算ノード104は、ソフトウエアアプリケーション122の第2のインスタンス162をスタートする。
【0068】
方法200はまた、204において、ノードのサービスグループをスタートすることを含む。例えば、
図1のクラスター管理装置110は、計算ノード102、計算ノード104、計算ノード106、又はこれらの組み合わせに第2のリクエストを送る。計算ノード102は、
図1を参照して記載されるように、クラスター管理装置110からの第2のリクエストの受領に応じて、ソフトウエアアプリケーション122に関連付けられるサービスグループ(例えば、プロセスモニター140、プロセスモニターチェッカー142、又は両方)をスタートする。特定の一態様において、システム100の他の計算ノードは、第2のリクエストの受領に応じて、サービスグループのインスタンスもスタートする。特定の一態様において、計算ノード102は、第1のリクエストの受領に応じて第1のインスタンス160をスタートし、第1のリクエストとは別個の第2のリクエストの受領に応じてサービスグループをスタートする。代替的な一態様では、計算ノード102は、単一のリクエストの受領に応じて、第1のインスタンス160とサービスグループ(例えば、プロセスモニター140、プロセスモニターチェッカー142、又は両方)とをスタートする。
【0069】
方法200は、206においてピアアラートサービスグループをスタートすることを更に含む。例えば、
図1のクラスター管理装置110は、他の計算ノードを監視する少なくとも一つの計算ノードを選択し、選択された計算ノードに第3のリクエストを送る。具体的には、クラスター管理装置110は、
図1を参照して記載されるように、計算ノード104を選択する。クラスター管理装置110は、第3のリクエストを計算ノード104(例えば、選択された計算ノード)に送る。計算ノード102は、
図1を参照して記載されるように、クラスター管理装置110からの第3のリクエストの受領に応じて、ピアアラートサービスグループ(例えば、ピアモニター150、ピアモニターチェッカー152、又は両方)をスタートする。
【0070】
方法200は、クラスター管理装置110が、複数の計算ノードでソフトウエアアプリケーション122のインスタンスと、対応するサービスグループとをスタートすることを可能にする。方法200はまた、クラスター管理装置110が、少なくとも一つの計算ノードを選択し、他の計算ノードを監視するために、選択された計算ノードにおいてピアアラートサービスグループをスタートすることを可能にする。
【0071】
図3は、ソフトウエアアプリケーションのプロセスの監視方法300の一実施例を示している。特定の一態様において、方法300は、
図1のステータスデータアナライザー146、プロセスモニター140、プロセスモニターチェッカー142、プロセスモニターチェッカー検証器144、計算ノード102、計算ノード104、計算ノード106、クラスター管理装置110、システム100、又はこれらの組み合わせによって実施される。
【0072】
特定の一態様において、方法300は、
図2の204から継続する。例えば、クラスター管理装置110は、計算ノード102、計算ノード104、計算ノード106、又はこれらの組み合わせに第2のリクエストを送り、ソフトウエアアプリケーション122のインスタンスに対応するサービスグループをスタートする。方法300は、第2のリクエストの受領に応じて、計算ノード102、計算ノード104、計算ノード106、又はこれらの組み合わせで実施される。
【0073】
方法300は、302において、プロセスモニターチェッカー及びプロセスモニターをスタートすることを含む。例えば、
図1のステータスデータアナライザー146は、
図1を参照して記載されるように、プロセスモニターチェッカー142、プロセスモニター140、又は両方をスタートする。特定の一態様において、ステータスデータアナライザー146は、プロセスモニターチェッカー142及びプロセスモニター140にそれぞれ対応する、
図1のプロセッサ134における実行の第1のスレッド及び第2のスレッドをスタートする。
【0074】
方法300はまた、310において、プロセスモニターのステータスをチェックすることを含む。例えば、
図1のプロセスモニターチェッカー142は、
図1を参照して記載されるように、もしあれば、プロセスモニター140に対応するプロセス124のサブセットを示す第1のプロセスステータスデータを生成する。
【0075】
方法300は、312において、プロセスモニターが実行を停止したかどうかを決定することを更に含む。例えば、
図1のプロセスモニターチェッカー142は、
図1を参照して記載されるように、第1のプロセスステータスデータに基づいて、プロセスモニター140が実行を停止したかどうかを決定する。
【0076】
方法300は、312において、プロセスモニターが実行を停止していないと決定することに応じて、310に戻ることを含む。例えば、
図1のプロセスモニターチェッカー142は、第1の時間に、プロセスモニター140が実行されている又はプロセスモニター140は以前に実行されていなかったと決定することに応じて、第2の時間に第1のプロセスステータスデータの更新バージョンを生成する。具体的には、プロセスモニターチェッカー142は、タイマーの満了の検出に応じて第1のプロセスステータスデータを生成する。
【0077】
方法300は、312においてプロセスモニターが実行を停止したと決定することに応じて、314においてプロセスモニターをリスタートすることを含む。例えば、
図1のプロセスモニターチェッカー142は、第1のプロセスステータスデータに基づいてプロセスモニター140が実行を停止したとの決定することに応じて、プロセスモニター140をリスタートする。方法300は310に継続する。
【0078】
方法300はまた、316において、予定プロセスのステータスをチェックすることを含む。例えば、
図1のプロセスモニター140は、
図1を参照して記載されるように、計算ノード102で実行中のプロセス124を示すプロセスステータスデータ105を生成する。
【0079】
方法300は、318において、プロセス数が閾値を上回るかどうかを決定することを更に含む。例えば、
図1のステータスデータアナライザー146は、
図1を参照して記載されるように、プロセスステータスデータ105に基づいてプロセス数127を生成する。ステータスデータアナライザー146は、プロセス数127がプロセス数閾値119を上回るかどうかを決定する。
【0080】
方法300は、320において、プロセス数が閾値を上回ると決定することに応じて、プロセス数の通知、ログデータの更新、及びダッシュボードデータの更新を実行することを含む。例えば、
図1のステータスデータアナライザー146は、
図1を参照して記載されるように、プロセス数127がプロセス数閾値119を上回ると決定することに応じて、プロセス数127がプロセス数閾値119を満たしていないことを示す、通知151、通知153、更新155、通知157、通知159、又はこれらの組み合わせを生成する。特定の一実施例では、ステータスデータアナライザー146は、プロセス数127がプロセス数閾値119を上回ると決定することに応じて、プロセス数127がプロセス数閾値119を満たしていないことを示すために、ダッシュボードデータ121を更新する。
【0081】
方法300は、322において、実行を停止した予定プロセスがあるかどうかを決定することを含む。例えば、
図1のステータスデータアナライザー146は、プロセスステータスデータ105に基づいて、計算ノード102で実行を停止した、ソフトウエアアプリケーション122に関連付けられる予定プロセスがあるかどうかを決定する。方法300は、322において、実行を停止した予定プロセスがないと決定することに応じて、326に継続することを含む。
【0082】
方法300は、322において少なくとも一つの予定プロセスが実行を停止したと決定することに応じて、324において、実行を停止した予定プロセスに関する解析を実行することを含む。例えば、
図1のステータスデータアナライザー146は、
図4を参照して更に記載されるように、実行を停止した予定プロセスの解析を実施する。
【0083】
方法300はまた、326において、プロセスモニターチェッカーのステータスをチェックすることを含む。例えば、
図1のプロセスモニターチェッカー検証器144は、
図1を参照して記載されるように、もしあれば、
図1のプロセスモニターチェッカー142に対応するプロセス124のサブセットを示す第2のプロセスステータスデータを生成する。
【0084】
方法300は、328において、プロセスモニターチェッカーが実行を停止したかどうかを決定することを更に含む。例えば、
図1のプロセスモニターチェッカー検証器144は、
図1を参照して記載されるように、第2のプロセスステータスデータに基づいて、プロセスモニターチェッカー142が実行を停止したかどうかを決定する。
【0085】
方法300は、328において、プロセスモニターチェッカーが実行を停止しているか否かを決定することに応じて、316に戻ることを含む。例えば、
図1のプロセスモニター140は、第1の時間に、プロセスステータスデータ105の第1のバージョンを生成する。
図1のステータスデータアナライザー146は、プロセスステータスデータ105の第1のバージョンに基づいて、実行を停止した、ソフトウエアアプリケーション122に関連付けられる予定プロセスがあるかどうかを決定し、実行を停止した予定プロセスの解析を実行する。プロセスモニターチェッカー検証器144は、第1の時間より後の第2の時間に、第2のプロセスステータスを生成する。プロセスモニターチェッカー検証器144は、第2のプロセスステータスデータに基づいて、プロセスモニターチェッカー142が実行を停止したかどうかを決定し、プロセスモニターチェッカー142が実行を停止している場合、プロセスモニターチェッカー142をリスタートする。特定の一態様において、プロセスモニター140は、第2の時間より後の第3の時間に、プロセスステータスデータ105の第2のバージョンを生成する。特定の一態様において、ステータスデータアナライザー146は、プロセスモニター140に、プロセスステータスデータ105の更新バージョンを提供するようにとのリクエストを送る。具体的には、ステータスデータアナライザー146は、タイマーの満了の検出に応じてリクエストを送る。
【0086】
方法300は、328においてプロセスモニターチェッカーが実行を停止したと決定することに応じて、330においてプロセスモニターチェッカーをリスタートすることを含む。例えば、
図1のプロセスモニターチェッカー検証器144は、プロセスモニターチェッカー142が実行を停止したことを第2のプロセスデータが示すと決定することに応じて、ロセスモニターチェッカー142をリスタートする。方法300は316に戻る。
【0087】
このようにして、方法300は、複数のレベルのチェックを提供することにより、ソフトウエアアプリケーション122に関連付けられる予定プロセスの厳重な監視を可能にする。
図3は、プロセスモニターチェッカー142及びプロセスモニター140によって提供される二つのレベルのチェックを示している。
【0088】
図4は、ソフトウエアアプリケーションプロセスの監視方法の一実施例を示す。方法は
図3の324に対応する。特定の一態様において、方法324は、
図1のステータスデータアナライザー146、計算ノード102、計算ノード104、計算ノード106、システム100、又はこれらの組み合わせによって実施される。
【0089】
方法324は、402において、実行を停止した予定プロセスのプロセスタイプを決定することを含む。例えば、
図1のステータスデータアナライザー146は、
図1を参照して記載されるように、予定プロセスデータに基づいて、予定プロセス107がプロセスタイプ117を有すると決定する。
【0090】
方法324はまた、402でプロセスタイプがプロセスタイプ401と一致すると決定することに応じて、404において、アプリケーションリスタート判定基準が満たされているかどうかを決定することを含む。例えば、
図1のステータスデータアナライザー146は、
図5Bを参照して更に記載されるように、プロセスタイプ117がプロセスタイプ401(例えば、レベル1のプロセス)と一致すると決定することに応じて、アプリケーションリスタート判定基準111が満たされているかどうかを決定する。
【0091】
方法324は、404でアプリケーションリスタート判定基準が満たされていると決定することに応じて、406において、障害カウンタの値を増加させることを含む。例えば、
図1のステータスデータアナライザー146は、アプリケーションリスタート判定基準111が満たされていると決定することに応じて、
図5Bの障害カウンタ517の値を(例えば、1だけ)増加させる。
【0092】
方法324は、408において、ソフトウエアアプリケーションをリスタートすることを更に含む。例えば、
図1のステータスデータアナライザー146は、ソフトウエアアプリケーション122の第1のインスタンス160をリスタートする。
【0093】
方法324はまた、410において、プロセス障害リスタート通知を実行すること、ログデータを更新すること、及びダッシュボードデータを更新することを含む。例えば、
図1のステータスデータアナライザー146は、
図1を参照して記載されるように、計算ノード102でソフトウエアアプリケーション122がリスタートされることを示す、通知151、通知153、更新155、通知157、通知159、又はこれらの組み合わせを生成する。特定の一態様において、ステータスデータアナライザー146は、計算ノード102でソフトウエアアプリケーションがリスタートされることを示すために、
図1のダッシュボードデータ121を更新する。方法324は326に戻る。
【0094】
方法324は、404でアプリケーションリスタート判定基準が満たされていないと決定することに応じて、412において、ソフトウエアアプリケーションをシャットダウンすることを含む。例えば、
図1のステータスデータアナライザー146は、アプリケーションリスタート判定基準111が満たされていないと決定することに応じて、ソフトウエアアプリケーション122の第1のインスタンス160をシャットダウンする(例えば、停止する)。
【0095】
方法324はまた、414において、計算ノードでサービスグループを停止することも含む。例えば、
図1のステータスデータアナライザー146は、計算ノード102でサービスグループ(例えば、プロセスモニター140、プロセスモニターチェッカー142又は両方)を停止する。
【0096】
方法324は、416において、停止プロセス通知を実行すること、ログデータを更新すること、及びダッシュボードデータを更新することを更に含む。例えば、
図1のステータスデータアナライザー146は、通知151、通知153、更新155、通知157、通知159、又はこれらの組み合わせを生成し、計算ノード102でソフトウエアアプリケーション122がシャットダウンされていることを示す。特定の一態様において、ステータスデータアナライザー146は、計算ノード102でソフトウエアアプリケーション122がシャットダウンされることを示すために、ダッシュボードデータ121を更新する。
【0097】
方法324は、402でプロセスタイプがプロセスタイプ403と一致すると決定することに応じて、418において、予定プロセスをリスタートすることを含む。例えば、
図1のステータスデータアナライザー146は、プロセスタイプ117がプロセスタイプ403(例えば、レベル2のプロセス)と一致すると決定することに応じて、予定プロセス107をリスタートする。
【0098】
方法324は、420において、別の予定プロセスが解析されるべきかどうかを決定することを含む。例えば、
図1のステータスデータアナライザー146は、プロセスステータスデータ105に基づいて、計算ノード102で別の予定プロセスが実行されていないと決定する。
【0099】
方法324は、420で別の予定プロセスが解析されるべきと決定することに応じて、402に戻ることを含む。例えば、
図1のステータスデータアナライザー146は、プロセスステータスデータ105に基づいて、第2の予定プロセスが実行を停止しており且つ第2の予定プロセスに関する解析が実施されていないと決定することに応じて、第2の予定プロセスに関する解析を実施する。方法324は、解析されるべき他の予定プロセスはないと決定することに応じて、326に戻ることを含む。例えば、
図1のステータスデータアナライザー146は、実行を停止したすべての予定プロセスの解析が済んだと決定することに応じて、プロセスモニター140に、
図1のプロセスモニターチェッカー142のステータスをチェックするようにとのリクエストを送る。
【0100】
このようにして、方法324は、ステータスデータアナライザー146が
図1のプロセスステータスデータ105を解析し、計算ノード102で実行を停止した予定プロセスのタイプに基づいて種々の動作を実施することを可能にする。例えば、ステータスデータアナライザー146は、プロセスタイプ401の予定プロセス107のためのソフトウエアアプリケーション122の第1のインスタンス160を選択的にリスタートする。別の実施例として、ステータスデータアナライザー146は、プロセスタイプ403の予定プロセス107をリスタートする。
【0101】
図5Aには線図が示され、全体に参照番号500が付されている。線
図500は、ステータスデータアナライザー146とメモリ132を示している。メモリ132は、プロセスステータスデータ105、スタート時間511、停止時間513、障害数閾値519、時間閾値515、アプリケーションリスタート判定基準111、障害カウンタ517、又はこれらの組み合わせを記憶するように構成されている。特定の一態様において、障害数閾値519、時間閾値515、又は両方は、ユーザ入力、デフォルトデータ、構成設定、又はこれらの組み合わせに基づいている。
【0102】
スタート時間511は、
図1の計算ノード104で予定プロセス107が直前にスタートされた時間を示す。停止時間513は、計算ノード104で予定プロセス107が実行されていないとして検出される時間を示す。例えば、停止時間513は、計算ノード104で予定プロセス107が実行されていないことが決定される時間(又は実行されていないことを示すデータが生成される時間)を示す。特定の一態様において、停止時間513は、プロセスステータスデータ105のタイムスタンプ(例えば、プロセスステータスデータ105の生成時間を示す)に対応する。
【0103】
図5Bには、
図4の404に対応する方法の一実施例が示されている。特定の一態様において、方法404は、
図1のステータスデータアナライザー146、計算ノード102、計算ノード104、計算ノード106、システム100、又はこれらの組み合わせによって実施される。
【0104】
方法404は、502において、停止時間とスタート時間との差が時間閾値以上であるかどうかを決定することを含む。例えば、ステータスデータアナライザー146は、スタート時間511と停止時間513との差を決定する。ステータスデータアナライザー146は、スタート時間511と停止時間513との差が時間閾値515を満たすかどうか(例えば、閾値以上であるかどうか)を決定する。
【0105】
方法404は、502で停止時間とスタート時間との差が時間閾値以上であると決定することに応じて、504において、障害カウンタをリセットすることを含む。例えば、ステータスデータアナライザー146は、停止時間513とスタート時間511との差が時間閾値515を満たす(例えば、時間閾値515以上である)と決定することに応じて、障害カウンタ517を(例えば、0に)リセットする。特定の一態様において、障害カウンタ517は、予定プロセスのスタート後比較的早期に発生した予定プロセスの連続的な障害の数を示す。
【0106】
方法404はまた、506において、障害カウンタの現在値が障害数閾値未満であるかどうかを決定することを含む。例えば、
図1のステータスデータアナライザー146は、障害カウンタ517の値が障害数閾値519を満たすかどうか((例えば、閾値519未満であるかどうか)を決定する。
【0107】
方法404は、506で障害カウンタの値が障害数閾値未満であると決定することに応じて、508において、アプリケーションリスタート判定基準が満たされていると決定することを含む。例えば、ステータスデータアナライザー146は、障害カウンタ517の値が障害数閾値519を満たす(例えば、閾値519未満である)と決定することに応じて、アプリケーションリスタート判定基準111が満たされていると決定する。
【0108】
方法404は、506で障害カウンタの値が障害数閾値以上であると決定することに応じて、510において、アプリケーションリスタート判定基準が満たされていないと決定することを含む。例えば、ステータスデータアナライザー146は、障害カウンタ517の値が障害数閾値519を満たさない(例えば、閾値519以上である)と決定することに応じて、アプリケーションリスタート判定基準111が満たされていないと決定する。具体的には、予定プロセスのスタート後比較的早期に発生した予定プロセスの連続的な障害の数が障害数閾値519以上である場合、ステータスデータアナライザー146は、計算ノード102でのソフトウエアアプリケーションのリスタート122を制止する。
【0109】
このようにして、ステータスデータアナライザー146は、予定プロセスのスタートと予定プロセス停止検出との間の時間に基づいて、アプリケーションリスタート判定基準111が満たされているかどうかの決定を可能にする。例えば、ステータスデータアナライザー146は、予定プロセスがスタート後比較的早期に停止したこと及び閾値を上回る数の障害が検出されたことに応じて、計算ノード102でソフトウエアアプリケーション122をシャットダウンする。
【0110】
図6は、ソフトウエアアプリケーションのプロセスの監視方法600の一実施例を示している。特定の一態様において、方法600は、
図1のピアモニター150、ピアモニターチェッカー152、ピアモニターチェッカー検証器154、計算ノード102、計算ノード104、計算ノード106、システム100、又はこれらの組み合わせによって実施される。
【0111】
特定の一態様において、方法600は、
図2の206から継続する。例えば、クラスター管理装置110は、ピアアラートサービスグループをスタートするようにとのリクエストを計算ノード102(例えば、選択された計算ノード)に送る。方法600は、リクエストを受け取ることに応じて、計算ノード102で実施される。
【0112】
方法600は、602において、ピアモニターチェッカー及びピアモニターをスタートすることを含む。例えば、
図1のステータスデータアナライザー146は、
図1を参照して記載されるように、ピアモニターチェッカー152、ピアモニター150、又は両方をスタートする。特定の一態様において、ステータスデータアナライザー146は、ピアモニターチェッカー152及びピアモニター150にそれぞれ対応する、
図1のプロセッサ134における実行の第1のスレッド及び第2のスレッドをスタートする。
【0113】
方法600はまた、610において、ピアモニターのステータスをチェックすることを含む。例えば、
図1のピアモニターチェッカー152は、ピアモニター150に対応するプロセス124のサブセットを示す第1のプロセスデータを生成する。
【0114】
方法600は、612において、ピアモニターが実行を停止したかどうかを決定することを更に含む。例えば、
図1のピアモニターチェッカー152は、
図1を参照して記載されるように、第1のプロセスデータに基づいて、計算ノード102でピアモニター150が実行を停止したかどうかを決定する。
【0115】
方法600はまた、612でピアモニターが実行を停止しているか否かを決定することに応じて、610に戻ることを含む。例えば、
図1のピアモニターチェッカー152は、第1の時間に、計算ノード102でピアモニター150が実行されている又は計算ノード102でピアモニター150は以前に実行されていなかったと決定することに応じて、第2の時間に第1のプロセスデータの更新バージョンを生成する。
【0116】
方法600は、612においてピアモニターが実行を停止したと決定することに応じて、614においてピアモニターをリスタートすることを更に含む。例えば、ピアモニターチェッカー152は、計算ノード102でピアモニター150が実行を停止したと決定することに応じて、ピアモニター150をリスタートする。
【0117】
方法600は、616において、他のノードでサービスグループのステータスをチェックすることを含む。例えば、
図1のピアモニター150は、他の計算ノードでサービスグループのステータスを示すデータを集める。具体的には、ピアモニター150は、
図1を参照して記載されるように、クラスター管理装置110からのクラスタープロセスデータ143、記憶デバイス108からの計算ノード104に対応するログデータ141、記憶デバイス108からの計算ノード106に対応する第3のログデータ、又はこれらの組み合わせを受け取る。
【0118】
方法600は、618において、実行を停止したサービスグループがあるかどうかを決定することを含む。例えば、ピアモニター150は、他の計算ノードで実行を停止したサービスグループがあるかどうかを決定する。具体的には、ピアモニター150は、計算ノード104で第2のサービスグループ(例えば、第2のプロセスモニター、第2のプロセスモニターチェッカー、又は両方)が実行を停止したことをクラスタープロセスデータ143(又はログデータ141)が示すかどうかを決定する。特定の一態様において、ピアモニター150は、計算ノード106で第3のサービスグループ(例えば、第3のプロセスモニター、第3のプロセスモニターチェッカー、又は両方)が実行を停止したことをクラスタープロセスデータ143(又は第3のログデータ)が示すかどうかを決定する。方法600は、618において、実行を停止したサービスグループがないと決定することに応じて、622に継続することを含む。
【0119】
方法600は、618で少なくとも一つのサービスグループが実行を停止したと決定することに応じて、620において、停止ノード通知を実行すること及びダッシュボードデータを更新することを含む。例えば、ピアモニター150は、計算ノード104で第2のプロセスモニター又は第2のプロセスモニターチェッカーのうちの少なくとも一つが実行を停止したと決定することに応じて、第2のサービスグループが実行を停止したと決定する。ピアモニター150は、第2のサービスグループが実行を停止したと決定することに応じて、計算ノード104でソフトウエアアプリケーション122の障害(又はシャットダウン)が検出されていることを示す、通知151、通知153、通知157、通知159、又はこれらの組み合わせを生成する。特定の一態様において、ピアモニター150は、計算ノード104でソフトウエアアプリケーション122の障害(又はシャットダウン)が検出されていることを示すために、ダッシュボードデータ121を更新する。
【0120】
方法600はまた、622において、ピアモニターチェッカーのステータスをチェックすることを含む。例えば、
図1のピアモニターチェッカー検証器154は、ピアモニターチェッカー152に対応するプロセス124のサブセットを示す第2のプロセスデータを生成する。
【0121】
方法600は、624において、ピアモニターチェッカーが実行を停止したかどうかを決定することを更に含む。例えば、
図1のピアモニターチェッカー検証器154は、
図1を参照して記載されるように、第2のプロセスステータスデータに基づいて、ピアモニターチェッカー152が実行を停止したかどうかを決定する。
【0122】
方法600は、624において、ピアモニターチェッカーが実行を停止しているか否かを決定することに応じて616に戻ることを含む。例えば、
図1のピアモニター150は、第1の時間に、クラスタープロセスデータ143の第1のバージョン、ログデータ(例えば、ログデータ141、第3のログデータ、又は両方)の第1のバージョン、又はこれらの組み合わせを生成する。ピアモニター150は、クラスタープロセスデータ143の第1のバージョン、ログデータの第1のバージョン、又は両方に基づいて、他の計算ノードでサービスグループが実行を停止したかどうかを決定し、実行を停止したサービスグループがあればそのために停止ノード通知を実行する。ピアモニターチェッカー検証器154は、第1の時間より後の第2の時間に、第2のプロセスデータを生成する。ピアモニターチェッカー検証器154は、第2のプロセスデータに基づいて、ピアモニターチェッカー152が実行を停止したかどうかを決定し、ピアモニターチェッカー152が実行を停止している場合、ピアモニターチェッカー152をリスタートする。ピアモニター150は、第3の時間に、クラスタープロセスデータ143の第2のバージョン、ログデータ(例えば、ログデータ141、第3のログデータ、又は両方)の第2のバージョン、又はこれらの組み合わせを生成する。特定の一態様において、第3の時間は、第2の時間より後である。特定の一態様において、ピアモニター150は、クラスタープロセスデータ143の更新バージョンについての第1のリクエストをクラスター管理装置110に送るか、ログデータ(例えば、ログデータ141、第3のログデータ、又は両方)の更新バージョンについての第2のリクエストを記憶デバイス108に送るか、又はこれらの組み合わせを行う。
【0123】
方法600は、624においてピアモニターチェッカーが実行を停止したと決定することに応じて、626においてピアモニターチェッカーをリスタートすることを含む。例えば、
図1のピアモニターチェッカー検証器154は、ピアモニターチェッカー152が実行を停止したことを第2のピアデータが示すと決定することに応じて、ピアモニターチェッカー152をリスタートする。方法600は616に戻る。
【0124】
このようにして、方法600は、複数のレベルのチェックを使用して他の計算ノードにおけるプロセスの厳重な監視を可能にする。
図6は、ピアモニターチェッカー152及びピアモニター150によって提供される二つのレベルのチェックを示している。
【0125】
図7は、ソフトウエアアプリケーションプロセスの監視方法700のフロー図である。方法700は、
図1のステータスデータアナライザー146、プロセスモニター140、ピアモニター150、計算ノード102、計算ノード104、計算ノード106、システム100、又はこれらの組み合わせによって実施することができる。
【0126】
方法700は、702において、ソフトウエアアプリケーションの複数のインスタンスを実行するように構成された複数の計算ノードのうちの第1の計算ノードにおいて、第1の計算ノードで実行中のソフトウエアアプリケーションの第1のインスタンスに関するプロセスステータスデータを生成することを含む。例えば、
図1のプロセスモニター140は、計算ノード102で実行中のソフトウエアアプリケーション122の第1のインスタンス160に関するプロセスステータスデータ105を生成する。特定の一態様において、計算ノード102、計算ノード104、及び計算ノード106は、ソフトウエアアプリケーション122の第1のインスタンス160、第2のインスタンス162、及び第3のインスタンスをそれぞれ実行するように構成される。
【0127】
方法700は、704において、プロセスステータスデータに基づいて、第1の計算ノードでソフトウエアアプリケーションの第1のインスタンスの予定プロセスが実行を停止したかどうかを決定すること700も含む。例えば、
図1のステータスデータアナライザー146は、
図1を参照して記載されるように、プロセスステータスデータ105に基づいて、計算ノード102でソフトウエアアプリケーション122の第1のインスタンス160の予定プロセス107が実行を停止したかどうかを決定する。
【0128】
方法700は、706において、第1の計算ノードで予定プロセスが実行を停止したとの決定に基づいて、第1の計算ノードでソフトウエアアプリケーションの第1のインスタンスを選択的にリスタートすることを更に含む。例えば、
図1のステータスデータアナライザー146は、
図1を参照して記載されるように、計算ノード102で予定プロセス107が実行を停止したとの決定に基づいて、計算ノード102でソフトウエアアプリケーション122の第1のインスタンス160を選択的にリスタートする。
【0129】
方法700は、708において、複数の計算ノードのうちの第2の計算ノードでソフトウエアアプリケーションの第2のインスタンスが障害を起こしたかどうかを決定すること700も含む。例えば、
図1のピアモニター150は、
図1を参照して記載されるように、ソフトウエアアプリケーション122の第2のインスタンス162が計算ノード104で障害を起こしたかどうかを決定する。
【0130】
方法700は、710において、第2の計算ノードで第2のインスタンスが障害を起こしたと決定することに応じて、ソフトウエアアプリケーションの第2のインスタンスに関連付けられる不完全タスクに基づくアクションを実施することを更に含む。例えば、
図1のピアモニター150は、
図1を参照して記載されるように、計算ノード104でソフトウエアアプリケーション122の第2のインスタンス162が障害を起こしたと決定することに応じて、ソフトウエアアプリケーション122の第2のインスタンス162に関連付けられる不完全タスク109に基づくアクション128を実施する。
【0131】
このようにして、方法700は、第1のインスタンス160を選択的にリスタートすることにより、計算ノード102においてソフトウエアアプリケーション122のダウンタイムを短縮する。方法700はまた、計算ノード104における障害を起こしたソフトウエアアプリケーション122のインスタンスに関連付けられる不完全タスク109への対処を計算ノード102に行わせることにより、有効な状態への回復を可能にする。
【0132】
図8は、本開示によるコンピュータで実現される方法及びコンピュータで実行可能なプログラム命令(又はコード)の態様を支持するように構成されたコンピューティング装置810を含む、計算環境800のブロック図を示している。例えば、コンピューティング装置810又はその一部は、
図1-7を参照して記載された一又は複数の動作を開始、実施、又は制御するための命令を実行するように構成される。特定の一態様において、コンピューティング装置810は、計算ノード102、計算ノード104、計算ノード106、クラスター管理装置110、又はこれらの組み合わせに対応する。
【0133】
コンピューティング装置810は送受信機822を含む。コンピューティング装置810はプロセッサ820を含む。特定の一態様において、プロセッサ820は、
図1のプロセッサ134に対応する。特定の一態様において、プロセッサ820は、プロセスモニター140、プロセスモニターチェッカー142、ステータスデータアナライザー146、ピアモニター150、ピアモニターチェッカー152、又はこれらの組み合わせを含む。プロセッサ820は、システムメモリ830、一又は複数の記憶デバイス840、一又は複数の入力/出力インターフェース850、一又は複数の通信インターフェース860、又はこれらの組み合わせと通信するように構成される。システムメモリ830は、揮発性メモリデバイス(例えばランダムアクセスメモリ(RAM)デバイス)、不揮発性メモリデバイス(例えば、読み出し専用メモリ(ROM)デバイス、プログラマブル読み出し専用メモリ、及びフラッシュメモリ)、又は両方を含む。システムメモリ830は、コンピューティング装置810をブート処理するための基本入力/出力システムを含みうるオペレーティングシステム832、並びにコンピューティング装置810がユーザ、他のプログラム、及び他の装置と相互作用することを可能にするためのフルオペレーティングシステムを格納する。システムメモリ830は、システム(プログラム)データ836を記憶する。特定の一態様において、
図1のメモリ132は、システムメモリ830、一又は複数の記憶デバイス840、又はこれらの組み合わせを含む。
【0134】
システムメモリ830は、プロセッサ820によって実行可能な一又は複数のアプリケーション834を含む。一実施例として、一又は複数のアプリケーション834は、
図1-7を参照して記載される一又は複数の動作を開始、制御、又は実施するための、プロセッサ820によって実行可能な
図1の命令125を含む。具体的には、一又は複数のアプリケーション834は、プロセスモニター140、プロセスモニターチェッカー142、ステータスデータアナライザー146、ピアモニター150、ピアモニターチェッカー152、又はこれらの組み合わせに関して記載される一又は複数の動作を開始、制御、又は実施するための、プロセッサ820によって実行可能な
図1の命令125を含む。
【0135】
プロセッサ820は、一又は複数の記憶デバイス840と通信するように構成される。例えば、一又は複数の記憶デバイス840は、磁気ディスク、光ディスク、又はフラッシュメモリデバイスといった不揮発性記憶デバイスを含む。特定の一実施例において、記憶デバイス840は、取り外し可能なメモリデバイス及び取り外し不可なメモリデバイスの両方を含む。記憶デバイス840は、オペレーティングシステム、オペレーティングシステムの画像、アプリケーション、及びプログラムデータを記憶するように構成される。特定の一態様において、システムメモリ830、記憶デバイス840、又は両方は、有形のコンピュータ可読媒体を含む。特定の一態様において、記憶デバイス840のうちの一又は複数は、コンピューティング装置810の外部に存在する。
【0136】
プロセッサ820は、ユーザとの相互作用を容易にするために、コンピューティング装置810が一又は複数の入力/出力装置870と通信することを可能にする一又は複数の入力/出力インターフェース850と通信するように構成される。プロセッサ820は、入力/出力インターフェース850を介して受け取られたユーザ入力に基づいて相互作用イベントを検出するように構成される。特定の一態様において、入力/出力装置870は
図1のディスプレイ114を含む。プロセッサ820は、入力/出力インターフェース850を介して、
図1のディスプレイ114にディスプレイを送るよう構成される。特定の一態様において、入力/出力インターフェース850は、
図1のディスプレイインターフェース126を含む。プロセッサ820は、一又は複数の通信インターフェース860を介して、装置又はコントローラ880と通信するように構成される。例えば、一又は複数の通信インターフェース860は
図1のネットワークインターフェース130を含み、装置又はコントローラ880は、クラスター管理装置110、記憶デバイス108、計算ノード104、計算ノード106、ネットワーク190、又はこれらの組み合わせを含む。一実施例において、非一過性のコンピュータ可読記憶媒体(例えば、システムメモリ830)は、プロセッサ(例えば、プロセッサ820)によって実行されるとプロセッサに動作を開始、実施、制御させる命令を含む。前記動作は、
図1-7を参照して記載される一又は複数の動作を含む。
【0137】
更に、本開示は、以下の条項による実施形態を含む。
【0138】
条項1.プロセスを監視するためのシステム(100)であって、
ソフトウエアアプリケーション(122)の複数のインスタンス(160、162)を実行するように構成された複数の計算ノード(102、104、106)のうちの第1の計算ノード(102)と、第2の計算ノード(104)とを備え、第1の計算ノード(102)が、
第1の計算ノード(102)で実行中のソフトウエアアプリケーション(122)の第1のインスタンス(160)に関するプロセスステータスデータ(105)を生成するように構成されたプロセスモニター(140)、
プロセスステータスデータ(105)に基づいて、第1の計算ノード(102)でソフトウエアアプリケーション(122)の第1のインスタンス(160)の予定プロセス(107)が実行を停止したかどうかを決定し、
第1の計算ノード(102)で予定プロセス(107)が実行を停止したとの決定に基づいて、ソフトウエアアプリケーション(122)の第1のインスタンス(160)を選択的にリスタートする
ように構成されたステータスデータアナライザー(146)、
第1の計算ノード(102)でプロセスモニター(140)が実行を停止したかどうかを決定し、
第1の計算ノード(102)でプロセスモニター(140)が実行を停止したと決定することに応じてプロセスモニター(140)をリスタートする
ように構成されたプロセスモニターチェッカー(142)、及び
複数の計算ノード(102、104、106)のうちの第2の計算ノード(104)でソフトウエアアプリケーション(122)の第2のインスタンス(162)が障害を起こしたかどうかを決定し、
第2の計算ノード(104)で第2のインスタンス(162)が障害を起こしたと決定することに応じて、ソフトウエアアプリケーション(122)の第2のインスタンス(162)に関連付けられる不完全タスク(109)に基づくアクション(128)を実施する
ように構成されたピアモニター(150)
を含む、システム。
【0139】
条項2.プロセスモニター(140)が、
第1の計算ノード(102)でプロセスモニターチェッカー(142)が実行を停止したかどうかを決定し、
第1の計算ノード(102)でプロセスモニターチェッカー(142)が実行を停止したと決定することに応じて、プロセスモニターチェッカー(142)をリスタートする
ように構成されたプロセスモニターチェッカー検証器(144)を更に含む、条項1のシステム(100)。
【0140】
条項3.第1の計算ノード(102)が、
第1の計算ノード(102)でピアモニター(150)が実行を停止したかどうかを決定し、
第1の計算ノード(102)でピアモニター(150)が実行を停止したと決定することに応じて、ピアモニター(150)をリスタートする
ように構成されたピアモニターチェッカー(152)を更に含む、条項1又は2のシステム(100)。
【0141】
条項4.ピアモニター(150)が、
第1の計算ノード(102)でピアモニターチェッカー(152)が実行を停止したかどうかを決定し、
第1の計算ノード(102)でピアモニターチェッカー(152)が実行を停止したと決定することに応じて、ピアモニターチェッカー(152)をリスタートする
ように構成されたピアモニターチェッカー検証器(154)を更に含む、条項2又は3のシステム(100)。
【0142】
条項5.ステータスデータアナライザー(146)が、第1の計算ノード(102)で予定プロセス(107)が実行を停止したと決定することに応じて、
アプリケーションリスタート判定基準(111)が満たされているかどうかを決定し、
アプリケーションリスタート判定基準(111)が満たされていると決定することに応じて、第1の計算ノード(102)でソフトウエアアプリケーション(122)の第1のインスタンス(160)をリスタートする
ように構成されている、条項1-4のいずれか一つのシステム(100)。
【0143】
条項6.ステータスデータアナライザー(146)が、
プロセスステータスデータ(105)に基づいて、第1の時間(513)に第1の計算ノード(102)で予定プロセス(107)が実行されていないとして検出されると決定し、
第1の時間(513)と、第1の計算ノード(102)で予定プロセス(107)が以前にスタートされた時間を示すスタート時間(511)との差が時間閾値(515)以上であるかどうかを決定し、
差が時間閾値(515)以上であると決定することに応じて、障害カウンタ(517)をリセットし、
障害カウンタ(517)に基づいて、アプリケーションリスタート判定基準(111)が満たされているかどうかを決定する
ように構成されている、条項1-5のいずれか一つのシステム(100)。
【0144】
条項7.ステータスデータアナライザー(146)が、第1の計算ノード(102)でソフトウエアアプリケーション(122)の第1のインスタンス(160)の予定プロセス(107)が実行を停止したと決定することの後で、
障害カウンタ(517)が障害数閾値(519)以上であるかどうかを決定し、
障害カウンタ(517)が障害数閾値(519)未満であると決定することに応じて、アプリケーションリスタート判定基準(111)が満たされていると決定する
ように構成されている、条項1-6のいずれか一つのシステム(100)。
【0145】
条項8.ステータスデータアナライザー(146)が、障害カウンタ(517)が障害数閾値(519)以上であると決定することに応じて、アプリケーションリスタート判定基準(111)が満たされていないと決定するように構成されている、条項1-7のいずれか一つのシステム(100)。
【0146】
条項9.ステータスデータアナライザー(146)が、アプリケーションリスタート判定基準(111)が満たされていないと決定することに応じて、第1の計算ノード(102)でソフトウエアアプリケーション(122)の第1のインスタンス(160)のリスタートを制止するように構成されている、条項1-8のいずれか一つのシステム(100)。
【0147】
条項10.クラスター管理装置(110)及び記憶デバイス(108)を更に備え、ステータスデータアナライザー(146)が、アプリケーションリスタート判定基準(111)が満たされていないと決定することに応じて、第1の通知(153)をユーザ装置(112)へ送るか、第2の通知(151)をクラスター管理装置(110)へ送るか、第3の通知(157)を複数の計算ノード(102、104、106)のうちの第3の計算ノード(106)へ送るか、記憶デバイス(108)のログデータ(131)を更新して第1の計算ノード(102)でソフトウエアアプリケーション(122)がシャットダウンされていることを示すか、又はこれらの組み合わせを行うように構成されている、条項1-9のいずれか一つのシステム(100)。
【0148】
条項11.ステータスデータアナライザー(146)が、アプリケーションリスタート判定基準(111)が満たされていないと決定することに応じて、第1の計算ノード(102)でプロセスモニター(140)、プロセスモニターチェッカー(142)、及びピアモニター(150)の実行を停止するように構成されている、条項1-10のいずれか一つのシステム(100)。
【0149】
条項12.ソフトウエアアプリケーション(122)の複数のインスタンス(160、162)を実行するように構成された複数の計算ノード(102、104、106)のうちの第1の計算ノード(102)において、第1の計算ノード(102)で実行中のソフトウエアアプリケーション(122)の第1のインスタンス(160)に関するプロセスステータスデータ(105)を生成すること、
プロセスステータスデータ(105)に基づいて、第1の計算ノード(102)でソフトウエアアプリケーション(122)の第1のインスタンス(160)の予定プロセス(107)が実行を停止したかどうかを決定すること、
第1の計算ノード(102)で予定プロセス(107)が実行を停止したとの決定に基づいて、第1の計算ノード(102)でソフトウエアアプリケーション(122)の第1のインスタンス(160)を選択的にリスタートすること、
複数の計算ノード(102、104、106)のうちの第2の計算ノード(104)でソフトウエアアプリケーション(122)の第2のインスタンス(162)が障害を起こしたかどうかを決定すること、及び
第2の計算ノード(104)で第2のインスタンス(162)が障害を起こしたと決定することに応じて、ソフトウエアアプリケーション(122)の第2のインスタンス(162)に関連付けられる不完全タスク(109)に基づくアクション(128)を実施すること
を含む方法。
【0150】
条項13.記憶デバイス(108)から、第2の計算ノード(104)に関連付けられるログデータ(141)を第1の計算ノード(102)で受け取ること、及び
ログデータ(141)に基づいて不完全タスク(109)を識別すること
を更に含む、条項12の方法。
【0151】
条項14.アクション(128)を実施することが、不完全タスク(115)を元に戻すこと又は不完全タスク(115)を完了することを含む、条項12又は13の方法。
【0152】
条項15.不完全タスク(109)がデータベース更新(115)を含み、アクション(128)が、データベース更新(115)のロールバックを実施すること又はデータベース更新(115)を行うことを含む、条項12-14のいずれか一つの方法。
【0153】
条項16.クラスター管理装置(110)からクラスタープロセスデータ(143)を受け取ること、及び
クラスタープロセスデータ(143)に基づいて、第2の計算ノード(104)でソフトウエアアプリケーション(122)の第2のインスタンス(162)が障害を起こしたと決定すること
を更に含む、条項12-15のいずれか一つの方法。
【0154】
条項17.第2の計算ノード(104)でソフトウエアアプリケーション(122)の第2のインスタンス(162)の第2の予定プロセス(113)が実行を停止したことをクラスタープロセスデータ(143)が示すと決定することに応じて、第2の計算ノード(104)でソフトウエアアプリケーション(122)の第2のインスタンス(162)が障害を起こしたと決定することを更に含む、条項12-16のいずれか一つの方法。
【0155】
条項18.記憶デバイス(108)から、第2の計算ノード(104)に関連付けられるログデータ(141)を第1の計算ノード(102)で受け取ること、及び
第2の計算ノード(104)でソフトウエアアプリケーション(122)がシャットダウンされていることをログデータ(141)が示すと決定することに応じて、第2の計算ノード(104)でソフトウエアアプリケーション(122)の第2のインスタンス(162)が障害を起こしたと決定すること
を更に含む、条項12-17のいずれか一つの方法。
【0156】
条項19.命令を記憶するコンピュータ可読記憶デバイス(132)であって、命令は、プロセッサによって実行されると、プロセッサに、
ソフトウエアアプリケーション(122)の複数のインスタンス(160、162)を実行するように構成された複数の計算ノード(102、104、106)のうちの第1の計算ノード(102)において、第1の計算ノード(102)で実行中のソフトウエアアプリケーション(122)の第1のインスタンス(160)に関するプロセスステータスデータ(105)を生成すること、
プロセスステータスデータ(105)に基づいて、第1の計算ノード(102)でソフトウエアアプリケーション(122)の第1のインスタンス(160)の予定プロセス(107)が実行を停止したかどうかを決定すること、
第1の計算ノード(102)で予定プロセス(107)が実行を停止したとの決定に基づいて、第1の計算ノード(102)でソフトウエアアプリケーション(122)の第1のインスタンス(160)を選択的にリスタートすること、
複数の計算ノード(102、104、106)のうちの第2の計算ノード(104)でソフトウエアアプリケーション(122)の第2のインスタンス(162)が障害を起こしたかどうかを決定すること、及び
第2の計算ノード(104)で第2のインスタンス(162)が障害を起こしたと決定することに応じて、ソフトウエアアプリケーション(122)の第2のインスタンス(162)に関連付けられる不完全タスク(109)に基づくアクション(128)を実施すること
を含む動作を実施させる、コンピュータ可読記憶デバイス。
【0157】
条項20.前記動作が、第2の計算ノード(104)で第2のインスタンス(162)が障害を起こしたと決定することに応じて、
第1の計算ノード(102)からクラスター管理装置(110)へ、第2の計算ノード(104)で第2のインスタンス(162)が障害を起こしたことを示す通知(151)を送ること、及び
クラスター管理装置(110)から、不完全タスク(109)の割り当て(145)を第1の計算ノード(102)で受け取ることであって、割り当て(145)を受け取ることに応じてアクション(128)が実施される、受け取ること
を更に含む、条項19のコンピュータ可読記憶デバイス(132)。
【0158】
条項21.前記動作が、
クラスター管理装置(110)から割り当て(145)を受け取ることに応じて、第2の計算ノード(104)に関連付けられるログデータ(141)に関するリクエスト(161)を記憶デバイス(108)へ送ること、及び
ログデータ(141)に基づいて不完全タスク(109)を識別すること
を更に含む、条項19又は20のコンピュータ可読記憶デバイス(132)。
【0159】
条項22.前記動作が、第2の計算ノード(104)で第2のインスタンス(162)が障害を起こしたと決定することに応じて、第1の計算ノード(102)のプロセスステータスデータ(105)をクラスター管理装置(110)へ送ることを更に含み、クラスター管理装置(110)へ送られる通知(151)が、第2のプロセスデータ(165)に関するリクエスト(163)をクラスター管理装置(110)から複数の計算ノード(102、104、106)のうちの第3の計算ノード(106)へ送ることを開始し、割り当て(145)がプロセスステータスデータ(105)と第2のプロセスステータスデータ(165)とに基づいている、条項19-21のいずれか一つのコンピュータ可読記憶デバイス(132)。
【0160】
図1-8の一又は複数は、本開示の教示によるシステム、装置、及び/又は方法を例示しているが、本開示はこれら図示のシステム、装置、及び/又は方法に限定されない。
図1-8のいずれかに示される又はここに記載される一又は複数の機能又は構成要素は、
図1-8の別の図の一又は複数の他の部分と組み合わせて実施することができる。例えば、
図7の方法700の一又は複数のエレメントは、ここに記載される他の動作と組み合わせることができる。したがって、ここに記載される単独の実装態様を限定的なものと解釈するべきでなく、本開示の実装態様は、本開示の教示から逸脱することなく適切に組み合わせることができる。一実施例として、
図1-8を参照して記載される一又は複数の動作は、任意選択的なものであり、少なくとも部分的に同時に実施することができる、及び/又は図示又は記載の順序とは異なる順序で実施することができる。
【0161】
上述の実施例は例示的なものであり、本開示を限定しない。本開示の原理により多数の修正例及び変形例が可能であることを理解されたい。
【0162】
ここに記載される実施例の説明は、様々な実装態様の構造の一般的な理解をもたらすことを意図している。このような説明は、ここに記載される構造又は方法を利用する装置及びシステムの要素及び特徴のすべてを網羅的に記載することを意図していない。本開示を精査することで、当業者には他の多くの実装態様が明らかであろう。本開示から逸脱することなく構造的且つ論理的な置換及び変更を行うことができるように、他の実装態様を利用することができ、且つ本開示から導くことができる。例えば、図面に示される順序とは異なる順序で方法動作を実行することができるか、又は一又は複数の方法動作を省略することができる。したがって、本開示及び図面は、限定的というよりむしろ例示的なものである。
【0163】
更に、ここでは特定の実施例を図示し、説明したが、同じ又は同様の結果を実現するように設計された後発の構成で、図示の特定の実装態様を置換し得ることを認識されたい。本開示は、様々な実装態様のあらゆる後発の適合例又は変形例を含むことを意図している。上記の実装態様の組み合わせ、及びここには具体的に記載しない他の実装態様が、本明細書の記載を精査した当業者には明らかであろう。
【0164】
本開示の要約書は、特許請求の範囲又は意味の解釈又は限定のために使用されないとの理解のもとに提出される。加えて、上記の「発明を実施するための形態」においては、本開示を簡潔にする目的で、様々な特徴が、グループ化されるか、又は単一の実装態様において説明されている場合がある。上述の実施例は、説明的なものであって本開示を限定しない。本開示の原理に従って、多数の修正例及び変形例が可能であることも理解されたい。特許請求の範囲に記載のように、特許請求される主題は、開示されたいずれかの実施例の特徴のすべてよりも少ない特徴を対象としている場合がある。したがって、本開示の範囲は、特許請求の範囲及びその均等物によって規定される。