(57)【要約】  【課題】  複数のノードおよび重なっているノード・グループを有するコンピュータ・ネットワークでターゲット・ノード・グループを管理するためのマスタ・ノードを選択するための方法およびシステムを提供する。  【解決手段】  上記システムは、ネットワーク内のノード・ペアに対するハミング距離の決定を含む。ノード・ペアは、２つのノード・ペア・メンバーを含み、ハミング距離はノード・ペア・メンバーが共有していないノード・グループの数である。ネットワーク内のノードに対する参加指数は、決定動作で決定される。参加指数は、ノードが属するノード・グループの数である。ノード・ペアに対する潜在的利用度も決定される。潜在的利用度は、ノード・ペア・メンバーの参加指数の合計からノード・ペアのハミング距離を減算したものである。ノード・ペアの最適な組合わせは、ネットワークに対する最大の全潜在的利用度を探索することにより検出することができる。ターゲット・ノード・グループに対するマスタ・ノード・ペアは、ノード・ペアの最適な組合わせから選択される。ターゲット・ノード・グループに対するマスタ・ノード・ペアが存在しない場合には、ターゲット・ノード・グループに属するマスタ・ノードが、ターゲット・グループに対して選択される。
2005515713.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードおよびノード・グループを有するコンピュータ・ネットワークでターゲット・ノード・グループを管理するためのマスタ・ノードを選択するための方法であって、
前記ネットワーク内でノード・ペアに対するハミング距離を決定するステップであって、前記各ノード・ペアが２つのノード・ペア・メンバーを有し、前記ハミング距離が、前記ノード・ペア・メンバーが共有していないノード・グループの数であるステップと、
前記ネットワーク内のノードに対する参加指数を決定するためのステップであって、前記参加指数が、あるノードが属するノード・グループの数であるステップと、
前記ノード・ペアに対する潜在的利用度を決定するステップであって、前記潜在的利用度が、前記ノード・ペア・メンバーの参加指数の合計から前記ノード・ペアの前記ハミング距離を減算したものであるステップと、
ノード・ペアの最適な組合わせを検出するステップであって、前記ノード・ペアの最適な組合わせが、前記ネットワークに対する最大の全潜在的利用度を有するステップと、
前記ターゲット・ノード・グループに対するマスタ・ノード・ペアを選択するステップであって、前記マスタ・ノード・ペアが、前記ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを有する前記ノード・ペアの最適な組合わせからのノード・ペアであるステップと、
前記ターゲット・ノード・グループに対する前記マスタ・ノード・ペアが存在しない場合に、前記ターゲット・ノード・グループに対するマスタ・ノードを選択するステップであって、前記マスタ・ノードが、前記ターゲット・ノード・グループに属するノードであるステップとを含む前記方法。
【請求項２】
前記ターゲット・ノード・グループに対して選択した前記マスタ・ノード・ペアの前記ノード・ペア・メンバーのいずれもが、第３のノードを含む他のノード・グループに対するマスタ・ノードでない、請求項１に記載の方法。
【請求項３】
前記ターゲット・ノード・グループに対するマスタ・ノード・ペアを選択するステップが、前記ノード・ペアの最適な組合わせが、前記ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを有する２つ以上のノード・ペアを含んでいる場合に、前記ノード・ペア・メンバーの前記参加指数の最も小さい合計を有するノード・ペアを選択するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記ターゲット・ノード・グループに対するマスタ・ノードを選択するステップが、２つ以上のノードが前記ターゲット・ノード・グループに属している場合に、最も小さい参加指数を含むノードを選択するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記ネットワーク内でノード・ペアに対するハミング距離を決定するステップが、前記ノード・ペア・メンバーを排他的論理和演算するステップを含む、請求項１に記載の方法。
【請求項６】
複数のノードおよび重なっているノード・グループを有するコンピュータ・ネットワークでターゲット・ノード・グループを管理するためのマスタ・ノードを選択する際に使用するためのその上にデータ構造を記憶しているコンピュータ可読媒体内で、前記データ構造が、
前記ネットワーク内のノード・ペアに対して、ノード・ペア・メンバーが共有していないノード・グループの数を含むハミング距離アレイと、
前記ネットワーク内のノードに対して、前記ノードが属するノード・グループの数を含む参加指数アレイと、
前記ネットワーク内のノード・ペアに対して、前記ノード・ペア・メンバーの参加指数の合計から前記ノード・ペアのハミング距離を減算したものを含む潜在的利用度アレイとを備える前記データ構造。
【請求項７】
前記ハミング距離アレイがｎ×ｎアレイであり、ｎが前記ネットワーク内のノードの数である、請求項６に記載のデータ構造。
【請求項８】
前記参加指数アレイが１×ｎアレイであり、ｎが前記ネットワーク内のノードの数である、請求項６に記載のデータ構造。
【請求項９】
前記潜在的利用度アレイがｎ×ｎアレイであり、ｎが前記ネットワーク内のノードの数である、請求項６に記載のデータ構造。
【請求項１０】
前記ネットワーク内の各ノードと各ノード・グループとの間の関係を記憶しているノード・グループ構成アレイをさらに備える、請求項６に記載のデータ構造。
【請求項１１】
前記ノード・グループ構成アレイがｍ×ｎアレイであり、ｍが前記ネットワーク内のノード・グループの数であり、ｎが前記ネットワーク内のノードの数である、請求項１０に記載のデータ構造。
【請求項１２】
前記ノード・グループ構成アレイにおいて、「１」が前記ノード・グループに属するノードを意味するために使用され、「０」が前記ノード・グループに属していないノードを意味するために使用される、請求項１０に記載のデータ構造。
【請求項１３】
ノード・ペアの最適な組合わせをさらに含み、前記ノード・ペアの最適な組合わせが、前記ネットワークに対する最大の全潜在的利用度を有するノード・ペアの組合わせである、請求項６に記載のデータ構造。
【請求項１４】
前記ネットワーク内のノード・グループに対するマスタ・ノード・ペアの階層をリストの形で含む好適な順序アレイをさらに含む、請求項６に記載のデータ構造。
【請求項１５】
前記好適な順序アレイが、前記ネットワーク内のノード・グループに対するマスタ・ノードの階層をさらに含む、請求項１４に記載のデータ構造。
【請求項１６】
有形媒体内で実施されたコンピュータ・プログラム製品であって、
複数のノードおよびノード・グループを有するコンピュータ・ネットワーク内のターゲット・ノード・グループを管理するためのマスタ・ノードを選択するために、前記有形媒体に結合しているコンピュータ可読プログラム・コードを備え、該コンピュータ可読プログラム・コードが、
前記プログラムに前記ネットワーク内のノード・ペアに対するハミング距離を決定するように構成され、前記ノード・ペアが２つのノード・ペア・メンバーを有し、前記ハミング距離が、前記ノード・ペア・メンバーが共有していない前記ノード・グループの数である第１のコンピュータ可読プログラム・コードと、
前記プログラムに前記ネットワーク内のノードに対する参加指数を決定するように構成され、前記参加指数が、あるノードが属するノード・グループの数である第２のコンピュータ可読プログラム・コードと、
前記プログラムに各ノード・ペアに対する潜在的利用度を決定するように構成され、前記潜在的利用度が前記ノード・ペア・メンバーの参加指数の合計から前記ノード・ペアのハミング距離を減算したものである第３のコンピュータ可読プログラム・コードと、
前記プログラムにノード・ペアの最適な組合わせを検出させるように構成され、前記ノード・ペアの最適な組合わせが前記ネットワークに対する最大の全潜在的利用度を有する第４のコンピュータ可読プログラム・コードと、
前記プログラムに前記ターゲット・ノード・グループに対するマスタ・ノード・ペアを選択させるように構成され、前記マスタ・ノード・ペアが、ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを有する前記ノード・ペアの最適な組合わせからのノード・ペアである第５のコンピュータ可読プログラム・コードと、
前記ターゲット・ノード・グループに対する前記マスタ・ノード・ペアが存在しない場合に、前記プログラムに前記ターゲット・ノード・グループに対するマスタ・ノードを選択させるように構成され、前記マスタ・ノードが前記ターゲット・ノード・グループに属するノードである第６のコンピュータ可読プログラム・コードとを備える前記コンピュータ・プログラム製品。
【請求項１７】
前記有形媒体が磁気ディスクを備える、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１８】
前記有形媒体が光ディスクを備える、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１９】
前記有形媒体が伝搬信号を備える、請求項１６に記載のコンピュータ・プログラム製品。
【請求項２０】
前記有形媒体がランダム・アクセス・メモリ・デバイスを備える、請求項１６に記載のコンピュータ・プログラム製品。
【請求項２１】
複数のノードおよびノード・グループを有するコンピュータ・ネットワークでターゲット・ノード・グループを管理するためのマスタ・ノードを選択するためのシステムであって、
前記ネットワーク内のノード・ペアのハミング距離を決定するためのハミング距離モジュールであって、前記各ノード・ペアが２つのノード・ペア・メンバーを有し、前記ハミング距離が前記ノード・ペア・メンバーが共有していないノード・グループの数であるハミング距離モジュールと、
前記ネットワーク内のノードの参加指数を決定するための参加指数モジュールであって、前記参加指数が、あるノードが属するノード・グループの数である参加指数モジュールと、
ノード・ペアの潜在的利用度を決定するための潜在的利用度モジュールであって、前記潜在的利用度が前記ノード・ペア・メンバーの参加指数の合計から前記ノード・ペアのハミング距離を減算したものである潜在的利用度モジュールと、
ノード・ペアの最適な組合わせを検出するための探索モジュールであって、前記ノード・ペアの最適な組合わせが、前記ネットワークに対する最大の全潜在的利用度を有する探索モジュールと、
前記ターゲット・ノード・グループのマスタ・ノード・ペアを選択するための第１の選択モジュールであって、前記マスタ・ノード・ペアが前記ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを有する前記ノード・ペアの最適な組合わせからのノード・ペアである第１の選択モジュールと、
前記ターゲット・ノード・グループに対する前記マスタ・ノード・ペアが存在しない場合に、前記ターゲット・ノード・グループに対するマスタ・ノードを選択するための第２の選択モジュールであって、前記マスタ・ノードが前記ターゲット・ノード・グループに属するノードである第２の選択モジュールとを備える前記システム。
【請求項２２】
前記ターゲット・ノード・グループに対して選択した前記マスタ・ノード・ペアのノード・ペア・メンバーが、第３のノードを含む他のノード・グループに対するマスタ・ノードでない、請求項２１に記載のシステム。
【請求項２３】
前記第１の選択モジュールが、前記ノード・ペアの最適な組合わせが、前記ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを有する２つ以上のノード・ペアを含んでいる場合には、前記ノード・ペア・メンバーの前記参加指数の最も小さい合計を含むノード・ペアを選択することをさらに含む、請求項２１に記載のシステム。
【請求項２４】
前記第２の選択モジュールが、２つ以上のノードが前記ターゲット・ノード・グループに属している場合に、最も小さい参加指数を含むノードを選択することをさらに含む、請求項２１に記載のシステム。
【請求項２５】
前記ハミング距離モジュールが、前記ノード・ペア・メンバーを排他的論理和演算することを含む、請求項２１に記載のシステム。
【請求項２６】
複数のノードおよびノード・グループを有するコンピュータ・ネットワークでターゲット・ノード・グループを管理するためのマスタ・ノードを選択するための方法であって、
前記ネットワーク内でノード・ペアに対するハミング距離を決定するステップであって、前記各ノード・ペアが、２つのノード・ペア・メンバーを有し、前記ハミング距離が前記ノード・ペア・メンバーが共有していないノード・グループの数であるステップと、
ノード・ペアの最適な組合わせを検出するステップであって、前記ノード・ペアの最適な組合わせが、前記ネットワークに対する最小の全ハミング距離を有するステップと、
前記ターゲット・ノード・グループに対するマスタ・ノード・ペアを選択するステップであって、前記マスタ・ノード・ペアが、前記ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを有する前記ノード・ペアの最適な組合わせからのノード・ペアであるステップと、
前記ターゲット・ノード・グループに対する前記マスタ・ノード・ペアが存在しない場合に、前記ターゲット・ノード・グループに対するマスタ・ノードを選択するステップであって、前記マスタ・ノードが前記ターゲット・ノード・グループに属するノードであるステップとを含む前記方法。
【請求項２７】
前記ターゲット・ノード・グループに対して選択した前記マスタ・ノード・ペアの前記ノード・ペア・メンバーのいずれもが、第３のノードを含む他のノード・グループに対するマスタ・ノードでない、請求項２６に記載の方法。
【請求項２８】
前記ターゲット・ノード・グループに対するマスタ・ノード・ペアを選択するステップが、
前記ネットワーク内のノードに対する参加指数を決定するステップであって、前記参加指数が、あるノードが属するノード・グループの数であるステップと、
前記ノード・ペアの最適な組合わせが、前記ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを有する２つ以上のノード・ペアを含んでいる場合に、前記ノード・ペア・メンバーの参加指数の最も小さい合計を含むノード・ペアを選択するステップとをさらに含む、請求項２６に記載の方法。
【請求項２９】
前記ターゲット・ノード・グループに対するマスタ・ノードを選択するステップが、
前記ネットワーク内のノードに対する参加指数を決定するステップであって、前記参加指数が、あるノードが属するノード・グループの数であるステップと、
２つ以上のノードが前記ターゲット・ノード・グループに属している場合に、最小の参加指数を含むノードを選択するステップとをさらに含む、請求項２６に記載の方法。
【請求項３０】
前記ネットワーク内のノード・ペアに対するハミング距離を決定するステップが、前記ノード・ペア・メンバーを排他的論理和演算するステップを含む、請求項２６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、コンピュータ・ネットワークに関し、特にネットワークのクラスタ化した環境での負荷バランシングに関する。
【背景技術】
【０００２】
インターネット・サイトが広く普及するにつれて、１台のサーバでそのシステム上の負荷を引き続きサポートしていくのが無理になってきている。このような状態を解決する１つの方法は、ノードとも呼ばれる数台のサーバを１つのノード・グループに結合するという方法である。クライアントから見た場合、負荷バランシング・グループとも呼ばれるノード・グループは、依然として１台のサーバのように見える。しかし、内部においては、ノード・グループに到着する作業負荷は、ノード・グループ・メンバー間で均等に分配され、その結果、１つのノードに負荷が集中することはない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ある種のネットワーク構成の場合には、システム内の異なるリソースを処理するために、いくつかのノード・グループが生成される。例えば、あるノード・グループはデータ・ファイルの転送を担当し、一方、他のノード・グループはサイトの電子メール・サービスを担当する。さらに、ネットワーク内のいくつかのノードは、いくつかのノード・グループに属することができ、それにより重なっているノード・グループを生成する。このような柔軟なノード・グループ構成は、非常に効率的なリソース割当てを行うことができるので有益であるが、管理するのが難しい場合がある。
【０００４】
ネットワーク管理者は、通常、ノード・グループ内に、本明細書においてはｌｂノードとも呼ばれるマスタ・ノードとなる少なくとも１つのノードを構成する。一般的に、マスタ・ノードは、ノード・グループのオーナーであり、ノード・グループ・メンバー間でのタスクの割当てを担当する。それ故、ノード・グループ内の他のノードと同じ負荷を実行する他に、マスタ・ノードは、ノード・グループ・メンバー間での作業の分配も担当する。
【０００５】
一般的に、マスタ・ノードは、ネットワーク管理者により手動で選択される。ネットワーク管理者は、マスタ・ノードを選択するために任意の基準を使用することができるが、通常、マスタ・ノードは利用度の高さにより選択される。高い利用度という用語は、重大なネットワークの故障が発生した場合でも、引き続きネットワーク・リソースへのアクセスを提供するノードの容量を意味する。それ故、ネットワーク管理者は、多くの場合、グループのマスタ・ノードとして選択するために、ノード・グループ内の最も利用度が高いノードを検出するというタスクに直面する。おそらく重なっているノード・グループ内での最も利用度が高いノードを検出するのは困難な仕事である場合があり、ネットワーク管理者は、時間のかかる試行錯誤技術を使用しなければならない場合がある。
【０００６】
ノード・グループの利用度を増大するためのもう１つの方法は、ノード・グループに対して、一次ｌｂノードおよび二次ｌｂノードとも呼ばれる一次マスタ・ノードおよび二次マスタ・ノードを選択するという方法である。一次マスタ・ノードは、ノード・グループに対して負荷バランシングを能動的に処理し、一方、二次マスタ・ノードは一次マスタ・ノードが故障した場合に、負荷バランシングをとる作業をすぐ引き継ぐために、バックアップ・マスタ・ノードとしての働きをする。マスタ・ノードのペアを生成すると、ノード・グループに対する冗長性が増し、そのため、ノード・グループの利用度が増大する。しかし、二次マスタ・ノードを追加すると、ネットワーク管理者は、ノード・グループ内でｌｂノードとして動作する２つのノードを検出しなければならなくなるので問題はさらに複雑になる。一般的に、依然として、おそらく重なっているノード・グループのネットワーク内で最大の利用度を有する一次および二次ｌｂノードを選択しなければならない。
【課題を解決するための手段】
【０００７】
本発明は、複数のノードおよびノード・グループを有するコンピュータ・ネットワークでターゲット・ノード・グループを管理するために、マスタ・ノードを選択するための方法を提供することにより従来技術の上記問題を解決する。
【０００８】
この方法は、ネットワーク内でノード・ペアに対するハミング距離を決定するための決定動作を含む。各ノード・ペアは、２つのノード・ペア・メンバーを含み、ノード・ペアのハミング距離は、ノード・ペア・メンバーが共有していないノード・グループの数である。もう１つの決定動作は、ネットワーク内のノードに対する参加指数を決定するために使用される。参加指数は、そのノードが属するノード・グループの数である。ノード・ペアに対する潜在的利用度も決定される。潜在的利用度は、ノード・ペア・メンバーの参加指数の合計からノード・ペアのハミング距離を減算したものである。ノード・ペアの最適な組合わせは、ネットワークに対する最大の全潜在的利用度を有するノード・ペアの組合わせの位置を知ることにより検出することができる。マスタ・ノード・ペアは、ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを有するのだが、選択動作は、ノード・ペアの最適な組合わせからマスタ・ノード・ペアを選択する。ターゲット・ノード・グループに対するマスタ・ノード・ペアが存在しない場合には、ターゲット・ノード・グループに属するノードが、ターゲット・ノード・グループに対するマスタ・ノードとして選択される。
【０００９】
他の態様においては、本発明は、コンピュータ・ネットワーク内のターゲット・ノード・グループを管理するためにマスタ・ノードを選択する際に使用するためのデータ構造である。データ構造は、ネットワーク内のノード・ペアに対する、ノード・ペア・メンバーが共有していないノード・グループの数を含むハミング距離アレイを含む。さらに、データ構造は、ネットワーク内のノードに対する、そのノードが属するノード・グループの数を含む参加指数アレイを含む。さらに、データ構造は、ネットワーク内のノード・ペアに対する、ノード・ペア・メンバーの参加指数の合計からノード・ペアのハミング距離を減算したものを含む潜在的利用度アレイを含む。
【００１０】
さらにもう１つの態様においては、本発明は、有形媒体内で実施したコンピュータ・プログラム製品である。コンピュータ・プログラム製品は、複数のノードおよびノード・グループを有するコンピュータ・ネットワークでターゲット・ノード・グループを管理するためのマスタ・ノードを選択するために有形媒体に結合しているコンピュータ可読プログラム・コードを含む。コンピュータ可読プログラム・コードは、ネットワーク内のノード・ペアに対するハミング距離を決定するように構成されているプログラム・コードを含む。すでに説明したように、ハミング距離は、ノード・ペア・メンバーが共有していないノード・グループの数である。もう１つのプログラム・コードは、ネットワーク内のノードに対する参加指数を決定するように構成されている。参加指数は、そのノードが属するノード・グループの数である。もう１つのプログラム・コードは、ノード・ペアに対する潜在的利用度を決定するように構成されている。潜在的利用度は、ノード・ペア・メンバーの参加指数の合計からノード・ペアのハミング距離を減算したものである。次に、プログラムは、ノード・ペアの最適な組合わせを検出する。この場合、ノード・ペアの最適な組合わせは、ネットワークに対する最大の全潜在的利用度を有する。もう１つのプログラム・コードは、ターゲット・ノード・グループに対するマスタ・ノード・ペアを選択するように構成されている。マスタ・ノード・ペアは、ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを有するノード・ペアの最適な組合わせからのノード・ペアである。ターゲット・ノード・グループに対するマスタ・ノード・ペアが存在しない場合には、プログラム・コードは、ターゲット・ノード・グループに対するマスタ・ノードを選択するように構成される。マスタ・ノードは、ターゲット・ノード・グループに属するノードである。
【００１１】
もう１つの態様においては、本発明は、複数のノードおよびノード・グループを有するコンピュータ・ネットワーク内のターゲット・ノード・グループを管理するためのマスタ・ノードを選択するためのシステムである。このシステムは、ネットワーク内のノード・ペアのハミング距離を決定するためのハミング距離モジュールを含む。参加指数モジュールは、ネットワーク内のノードの参加指数を決定するために使用される。潜在的利用度モジュールは、ノード・ペアの潜在的利用度を決定し、探索モジュールは、ノード・ペアの最適な組合わせを検出する。第１の選択モジュールは、ターゲット・ノード・グループのマスタ・ノード・ペアを選択し、ターゲット・ノード・グループに対するマスタ・ノード・ペアが存在しない場合には、第２の選択モジュールが、ターゲット・ノード・グループに対するマスタ・ノードを選択する。
【００１２】
もう１つの態様においては、本発明は、複数のノードおよびノード・グループを有するコンピュータ・ネットワークでターゲット・ノード・グループを管理するためのマスタ・ノードを選択するための方法である。この方法は、ネットワーク内のノード・ペアに対するハミング距離を決定するための決定動作を含む。各ノード・ペアは、２つのノード・ペア・メンバーを含み、ノード・ペアのハミング距離は、ノード・ペア・メンバーが共有していないノード・グループの数である。ノード・ペアの最適な組合わせは、ネットワークに対する最小の全ハミング距離を有するノード・ペアの組合わせの位置を知ることにより検出することができる。選択動作は、ノード・ペアの最適な組合わせからマスタ・ノード・ペアを選択する。この場合、マスタ・ノード・ペアは、ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを有する。ターゲット・ノード・グループに対するマスタ・ノード・ペアが存在しない場合には、ターゲット・ノード・グループに属するノードが、ターゲット・ノード・グループに対するマスタ・ノードとして選択される。
【００１３】
本発明の上記および他の機能、利便性および利点は、添付の図面に示す本発明の種々の実施形態の下記の詳細な説明を読めば理解することができるだろう。
【発明を実施するための最良の形態】
【００１４】
一般的に、本発明は、ノード・グループの最適な利用度が達成されるように、マスタ・ノードを自動的に選択するために使用される。図１〜図９を参照しながら本発明について以下に詳細に説明する。図面を参照すると、図全体を通して類似の参照符号は類似の構造および素子を示している。
【００１５】
図１は、本発明を実施する例示としてのコンピュータ・ネットワーク環境１０２である。この図では、クライアント１０４は、ワイド・エリア・ネットワーク（ＷＡＮ）１０８を通してノード・グループ１０６と通信する。クライアント１０４とノード・グループ１０６との間の通信経路は、当業者であれば周知の種々のネットワーキング・デバイスを含むことができる。例えば、クライアント１０４からノード・グループ１０６にメッセージを送信するためにルータ１１０を使用することができる。
【００１６】
ノード・グループ１０６は、データのような少なくとも１つの共通のネットワーク・リソース１１４を共有するいくつかのノード１１２からなる。ノード・グループ１０６内の１つのノードが、本明細書においては一次ｌｂノードとも呼ばれるマスタ・ノード１１６になるように選択される。マスタ・ノード１１６は、通常、各ノードの利用度および負荷を継続的に追跡し、新しいクライアント・セッション要求を予備容量を有するノード１１２に転送する。このようにして、マスタ・ノード１１６は、着信接続およびパケットを、仕事を引き受けることができるノード・グループ１０６内のこれらのノード１１２にディスパッチすることにより負荷バランサとして機能する。
【００１７】
ノード・グループ１０６は、また、本明細書においては二次ｌｂノードまたはバックアップ・マスタ・ノードとも呼ばれる第２のマスタ・ノード１１８を含むことができる。一次ｌｂノード１１６および二次ｌｂノード１１８は、本明細書においてはマスタ・ノード・ペアまたはｌｂノードと呼ばれる。第１および第２のマスタ・ノード１１６および１１８は、ハートビーティング（heartbeating）と呼ばれる他の各状態を継続的に監視し、そのため、第１のマスタ・ノード１１６が故障した場合、第２のマスタ・ノード１１８は、ノード・グループの所有権を引き継ぐことができる。これによりシステムの冗長度が増し、ｌｂノードのうちの一方が故障した場合に、クライアント・セッションの保存を楽に行うことができる。
【００１８】
本発明のある構成の場合には、ｌｂノードは、ネットワーク負荷バランサとしてＩＢＭのネットワーク・ディスパッチャ（Network Dispatcher）を使用する。ＩＢＭは、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標である。ネットワーク・ディスパッチャは、多くの個々のノードを１つの論理ネットワーク付加サーバ（logical Network Attached Server）にリンクすることにより、極度の負荷の下で高度の利用度を提供する。さらに、ネットワーク・ディスパッチャは、各ノードの利用度および負荷を継続的に追跡し、マスタ・ノードが、新しいセッション要求を予備容量を有するノードに転送できるようにする。さらに、本発明は、Ｌｉｎｕｘ  Ｖｉｒｔｕａｌ  Ｓｅｒｖｅｒ、種々のカスタム負荷バランシング・スイッチ、および他のノードクラスタ化環境のような能動的バックアップｌｂノード・パラダイム内で動作している他のネットワーク負荷バランサと一緒に使用することができる。
【００１９】
図２は、いくつかのノード・グループ１０６、２０２、２０４および２０６に分割された、本発明を実施するコンピュータ・ネットワーク２０１である。このような配置は、大量のネットワーク・トラヒックを処理するように構成されているネットワーク・サイトを表す。この図を見れば、ネットワーク内のいくつかのノードは、２つまたはそれ以上のノード・グループに属していて、それにより重なっているノード・グループを生成することが分かるだろう。それ故、本発明を使用すれば、各ノード・グループ・メンバーがそのノード・グループがサービスを行っているネットワーク・リソースにアクセスできるならば、もちろん、ノードをノード・グループに任意にグループ分けすることができる。
【００２０】
以下にさらに詳細に説明するように、本発明の１つの実施形態は、コンピュータ・ネットワーク内のノード・グループを管理するためのｌｂノードを自動的に選択するためのシステムである。ｌｂノードは、ｌｂノードが故障した場合に、ネットワークの利用度およびセッション保存を最適化するように選択される。それ故、本発明は、ネットワーク管理者が、ネットワーク内の各ノード・グループを管理するための最善のマスタ・ノードを検出しないでもすむようにするので有利である。
【００２１】
一般的に、ｌｂノードのための最適な展開戦術は、下記のように定義される。ノードのセットＮ＝｛Ｎ１，Ｎ２，．．．Ｎｎ｝およびセットＧ１，Ｇ２，．．．Ｇｍ内のおそらく重なっているノードのグループのセットが、Ｇｉ＝｛Ｎｐ，Ｎｑ，．．．｝（但し、Ｎｐ，Ｎｑ，．．．は、セットＮに属する）である場合には、要件は、下記のように、各Ｇｉに対するマスタ・ノード・ペアを選択することである。
【００２２】
１．１つのマスタ・ノード・ペア・メンバーは、一次マスタ・ノード（一次ｌｂノード）に指定され、他のマスタ・ノード・ペア・メンバーは、バックアップ・マスタ・ノード（二次ｌｂノード）に指定される；
２．２つのノードＮｐおよびＮｑが、グループＧｉのマスタに選択された場合には、ＮｐもＮｑも第３のノードＮｒを含む異なるノード・グループＧｊのマスタ・ノードになることはできない。
【００２３】
ネットワーク内のグループの最大数が、上記条件を満足させるマスタ・ノードを含んでいる場合には、最適な展開戦術が生成されたことになる。さらに、上記条件を満足するこれらのグループは高い利用度を達成する。あるネットワーク構成の場合には、各グループに対して高度の利用度を達成できない場合があることに留意されたい。高度の利用度を達成できないこれらグループに対しては、本発明の選択アルゴリズムは、グループ・メンバー・ノードのうちの１つがマスタ・ノードになるような選択を行う。
【００２４】
本発明のある実施形態の場合には、上記アルゴリズムは、また下記の弱い要件に固執する。グループＧ１，Ｇ２，．．．Ｇｍに対するマスタ・ノードの役割は、可能な限りのセットＮ内のノード間で分配される。すなわち、ｍ個のグループがあり、ｎ＞ｍノードが存在する場合には、また構成が許す場合には、ｎ個のノードのうちのどれも２つの異なるグループに対してマスタではない。このような展開戦術は望ましいものである。何故なら、この戦術は、ネットワーク内の入り口点をシステムの異なるノード間に分配し、使用できる入力帯域幅を効果的に増大し、それにより負荷バランシング・トラヒックをノード間に分配するからである。
【００２５】
図３および図４は、本発明による例示としてのマスタ・ノード選択アルゴリズムのフローチャートを表わす。図３は、このアルゴリズムの第１の部分を示す。この図の場合には、ノードはネットワーク構成情報に基づいて最適にペアに形成される。図４に示すアルゴリズムの第２の部分においては、各ノード・グループに対するマスタ・ノードが選択される。アルゴリズムの論理動作は、（１）計算システム上で稼働しているコンピュータ実行ステップの結果として、および／または（２）計算システム内の相互に接続している機械モジュールとして実施することができることに留意されたい。この実施は、本発明を実施しているシステムの性能要件に依存する選択の問題である。それ故、本明細書に記載する本発明の実施形態を構成している論理動作は、別の呼び方としては、動作、ステップまたはモジュールとも呼ばれる。
【００２６】
アルゴリズムは、ハミング距離決定動作３０２からスタートする。このステップにおいて、各ノード・ペアのハミング距離（ｄ）の計算が行われる。ネットワーク内の各ノード・ペアのハミング距離は、ノード・ペア・メンバーが共有していないノード・グループの数として定義される。例えば、図２に戻って説明すると、ノード・ペア（ｎ５，ｎ６）のハミング距離はゼロ（０）である。何故なら、ノードｎ５およびノードｎ６は、同じノード・グループに属しているからである。一方、ノード・ペア（ｎ５，ｎ１０）のハミング距離は２である。何故なら、ノードｎ１０は、ｎ５が属していない２つのノード・グループに属しているからである。図３に戻って説明すると、各ノード・ペアのハミング距離を決定した後で、制御が参加指数決定動作３０４に渡される。
【００２７】
参加指数決定動作３０４においては、ネットワーク内の各ノードの参加指数（ｐｉ）の計算が行われる。各ノードの参加指数（ｐｉ）は、そのノードが属するノード・グループの数をカウントすることにより計算される。例えば、図２の場合には、ノードｎ７は、２という参加指数を有する。何故なら、ノードｎ７はＬＢＧ−ＢおよびＬＢＧ−Ｄに属しているからである。参加指数が決定されると、制御が潜在的利用度決定動作３０６に渡される。
【００２８】
潜在的利用度決定動作３０６においては、各ノード・ペアの潜在的利用度（Ｐ）が計算される。ノード・ペアの潜在的利用度（Ｐ）は、ノード・ペア・メンバーの参加指数（ｐｉ）の合計からノード・ペアのハミング距離（ｄ）を減算したものであると定義される。ノード・ペア・メンバーの参加指数（ｐｉ）の合計は、そのペアが属しているノード・グループの全数を示し、ハミング距離（ｄ）は、そのノード・ペア・メンバーが共有していないノード・グループの数を示しているので、ノード・ペアの潜在的利用度（Ｐ）は、ペアが高度の利用度を提供することができる可能なノード・グループの数を示す。それ故、ｐｉ（ｎｐ）がノードｎｐの参加指数である場合には、ｐｉ（ｎｑ）は、ノードｎｑの参加指数であり、ｄ（ｎｐ，ｎｑ）は、ノード・ペア（ｎｐ，ｎｑ）のハミング距離であり、（ｐｉ（ｎｐ）＋ｐｉ（ｎｑ）−ｄ（ｎｐ，ｎｑ））／２は、潜在的な数のノード・グループであり、ノード・ペア（ｎｐ，ｎｑ）は、そのマスタになることができる。潜在的利用度決定動作３０６が終了すると、制御が検出動作３０８に渡される。
【００２９】
検出動作３０８の場合、ネットワークに対するノード・ペアの最適な組合わせが検出される。ノード・ペアの最適な組合わせは、ネットワークに対する最大の全潜在的利用度（Ｐ）を有するノード・ペアの組合わせである。すなわち、ノードの最適なペア形成は、すべてのこのようなノードのペア形成全体の総和Σ（ｐｉ−ｄ）を最大にするノード・ペアを生成することにより入手される。最適なという用語は、生成したノード・ペアの組合わせが必ずしも唯一の最善の展開戦術ではなく、所与の構成に対して、アルゴリズムにより生成したものより優れた展開戦術が検出できないことを意味するものと理解されたい。
【００３０】
本発明のある実施形態の場合には、ノード・ペアの最適な組合わせは、ノード・ペアの潜在的利用度のソートしたアレイ内の最大の全潜在的利用度を反復して探索することにより入手される。（最大の潜在的値を有する）アレイ内の一番上の要素からスタートして、遭遇するノード・ペアが、その潜在的利用度と一緒に記録される。すべてのノードがチェックされた場合には、全潜在的利用度が、前に計算した全潜在的利用度と比較される。新しい全潜在的利用度の方が高い場合には、このノード・ペアの組合わせが最適なペアとしてセーブされ、次のノード・ペアの組合わせと比較される。最適なペアの潜在的利用度が、ノードの全数を掛けた考慮の対象とした最高のノード・ペアの潜在性より大きくなるまで、このプロセスは反復して行われる。例えば、ノード・ペアの最適な組合わせを決定するためのプログラム疑似コードは、下記のようなものであってもよい。
【数１】
2005515713.tif 000003
【００３１】
上記プロセスをもっとよく説明するために、図５〜図８を参照する。これらの図は、マスタ・ノード選択アルゴリズムが使用する、例示としてのデータ構造を示す。本発明によれば、下記のデータ構造は、選択アルゴリズムがアクセスすることができる任意の入手可能媒体であってもよい。本発明の特定の実施形態の場合には、データ構造は、コンピュータ可読媒体として実施される。例を挙げて説明するが、この例は本発明を制限するものではないが、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を備えることができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュールまたは他のデータのような情報を記憶するための任意の方法および技術で実施される揮発性および不揮発性で、取り外し可能なおよび取り外しができない媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、または所望する情報を記憶するために使用することができ、選択アルゴリズムがアクセスすることができる任意の他の媒体を含むが、これに限定されない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラム・モジュール、または搬送波または他の搬送機構（transport mechanism）のような変調されたデータ信号内の他のデータを実施し、任意の情報伝達媒体を含む。「変調されたデータ信号」という用語は、１つまたはそれ以上のその特性の組を有する、または信号内で情報を符号化するような方法で変化させた信号を意味する。例えば、通信媒体は、有線ネットワークまたは直接配線接続のような有線媒体、および音響、ＲＦ、赤外線および他の無線媒体のような無線媒体を含む。上記任意のものの組合わせも、コンピュータ可読媒体の範囲内に含まれる。
【００３２】
図５は、ノード・グループ構成アレイ４０２を示す。ノード・グループ構成アレイ４０２は、ネットワーク内の各ノードおよび各ノード・グループ間の関係を記憶するためのｍ×ｎアレイである。ここで、ｍはネットワーク内のノード・グループの数であり、ｎはネットワーク内のノードの数である。本発明の特定の実施形態の場合には、ノード・グループ構成アレイ４０２内の各列は、ネットワーク・ノードを示し、ノード・グループ構成アレイ４０２内の各行は、ネットワーク・ノード・グループを示す。アレイ・セル内の「１」すなわち、ブールの真の値は、対応するノードが対応するノード・グループのメンバーであることを示し、一方、「０」すなわちブールの偽の値は、ノードがノード・グループに属していないことを示す。例えば、ノードｎ１は、ノード・グループＬＢＧ−Ａ、ＬＢＧ−ＣおよびＬＢＧ−Ｄのメンバーであるが、ＬＢＧ−ＢおよびＬＢＧ−Ｅのメンバーではない。
【００３３】
図６は、参加指数アレイ４０４を示す。参加指数アレイ４０４は、各ノードの参加指数（ｐｉ）を記憶するための１×ｎアレイである。すでに説明したように、参加指数（ｐｉ）は、ノードが属するノード・グループの数である。それ故、参加指数アレイ４０４内の各アレイ・セルは、ノード・グループ構成アレイ４０２内の各ノードに対応する各列に沿って表示される１の数を含む。
【００３４】
図７はハミング距離アレイ４０６である。ハミング距離アレイ４０６は、各ノード・ペアのハミング距離（ｄ）を記憶するためのｎ×ｎアレイである。すでに説明したように、あるノード・ペアに対するハミング距離は、ノード・ペア・メンバーが共有していないノード・グループの数である。本発明のある実施形態の場合には、ハミング距離は、ノード・グループ構成アレイ４０２内の２つの列間で排他的論理和（ｅｘｃｌｕｓｉｖｅ  ＯＲ）演算を行い、その結果内の１の数を加算することにより計算される。例えば、ノード・グループ構成アレイ４０２内の列ｎ１とｎ２間で、排他的論理和（ＸＯＲ）演算を行うと「１１０１０」となる。結果内の１を加算すると、３というハミング距離（ｄ）になる。
【００３５】
図８は、潜在的利用度アレイ４０８である。潜在的利用度アレイ４０８は、各ノード・ペアの潜在的利用度（Ｐ）を記憶するためのｎ×ｎアレイである。すでに説明したように、ノード・ペアに対する潜在的利用度は、異なるノード・ペア・メンバーの参加指数を加算し、ノード・ペアのハミング距離を減算することにより計算される。それ故、ノード・ペア（ｎ３，ｎ５）の場合には、潜在的利用度は、ｐｉ（ｎ３）＋ｐｉ（ｎ５）−ｄ（ｎ３，ｎ５）、すなわち４＋４−２に等しい。
【００３６】
潜在的利用度アレイ４０８は、ネットワーク内のノード・ペアの最適な組合わせを検出するために使用される。すでに説明したように、ノード・ペアの最適な組合わせは、最大の全潜在的利用度（Ｐ）値を有するノード・ペアの組合わせである。ノード・ペアは、２つのノード・ペア・メンバーＮｐ、Ｎｑが、グループＧｉのマスタになるように選択された場合には、ＮｐもＮｑも第３のノードＮｒを含む異なるノード・グループＧｊのマスタ・ノードになることはできないという要件を遵守しなければならないことを思い出されたい。最大の全潜在的利用度（Ｐ）値を探してノードの組合わせ内を探索すると、１２という最大の全潜在的利用度（Ｐ）値を有する最適なノード・ペア（ｎ３，ｎ４）および（ｎ１，ｎ５）ができる。これは、ネットワークに対する最大値の潜在的利用度（Ｐ）であり、それ故、ノード・ペアの最適な組合わせである。本発明のある実施形態の場合には、ノード・ペアの最適な組合わせは、コンピュータ・メモリに記憶される。
【００３７】
図３および図４に戻って説明すると、ノード・ペアの最適な組合わせを検出すると、マスタ・ノード選択アルゴリズムは、図４に示す選択動作３１０を継続して行う。選択動作３１０中に、各ノード・グループにグループのマスタ・ノード・ペアとなるノード・ペアが割り当てられる。選択したノード・ペアは、ノード・ペアの最適な組合わせ内に存在していなければならないし、そのノード・ペア・メンバーの両方はそのノード・グループに属していなければならない。それ故、所与のターゲット・ノード・グループの場合には、ターゲット・ノード・グループについてのマスタ・ノード・ペアは、ノード・ペアの最適な組合わせから選択しなければならないし、両方のノード・ペア・メンバーは、ターゲット・ノード・グループに属していなければならない。
【００３８】
例えば、図５のノード・グループ構成アレイ４０２に戻って説明すると、計算により、このネットワーク構成に対するノード・ペアの最適な組合わせは、（ｎ３，ｎ４）および（ｎ１，ｎ５）であることが分かった。ノード・グループＬＢＧ−Ｂに属する両方のノード・ペア・メンバーを有するノード・ペアの最適な組合わせからの唯一のノード・ペアは、ノード・ペア（ｎ３，ｎ４）である。それ故、ＬＢＧ−Ｂのマスタ・ノード・ペアとなるノード・ペア（ｎ３，ｎ４）が選択される。同様に、ＬＢＧ−ＣおよびＬＢＧ−Ｅに対するマスタ・ノード・ペアとなるノード・ペア（ｎ３，ｎ４）が選択される。ノード・グループＬＢＧ−Ｄについては、ＬＢＧ−Ｄに属する両方のノード・ペア・メンバーを含むノード・ペアの最適な組合わせからの唯一のノード・ペアは、ノード・ペア（ｎ１，ｎ５）である。それ故、ＬＢＧ−Ｄのマスタ・ノード・ペアとなるノード・ペア（ｎ１，ｎ５）が選択される。最後に、両方のノード・ペア（ｎ１，ｎ５）および（ｎ３，ｎ４）を、ノード・グループＬＢＧ−Ａに対するマスタ・ノード・ペアとして選択することができる。何故なら、両方のノード・ペアは、ＬＢＧ−Ａに属する両方のノード・ペア・メンバーを有しているからである。以下に説明するように、本発明のある実施形態の場合には、好適な選択順序は、２つまたはそれ以上の資格を有するノード・ペアの選択からマスタ・ノード・ペアを選択するために使用される。
【００３９】
図４に戻って説明すると、選択動作３１０が終了すると、制御が問合わせ動作３１２に渡される。問合わせ動作３１２中に、アルゴリズムは、割り当てられたマスタ・ノード・ペアを持たないノード・グループが存在するかどうかをチェックする。ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを含むノード・ペアの最適な組合わせ内にノード・ペアが存在しない場合、ターゲット・ノード・グループにはマスタ・ノード・ペアは割り当てられない。問合わせ動作３１２により、すべてのノード・グループにマスタ・ノード・ペアが割り当てられたと判断した場合には、アルゴリズムは終了する。問合わせ動作３１２が、１つまたはそれ以上のノード・グループにマスタ・ノード・ペアが割り当てられていないと報告した場合には、制御は選択動作３１４に渡される。
【００４０】
選択動作３１４中に、割り当てられたマスタ・ノード・ペアを持たない各ノード・グループにマスタ・ノードが割り当てられる。選択したマスタ・ノードは、ノード・ペアの最適な組合わせに属していなくてもよい。しかし、マスタ・ノードは、ターゲット・ノード・グループに属していなければならない。ターゲット・ノード・グループが２つ以上のノードを含んでいる場合には、これらのノードのうちの任意の１つのノードが、マスタ・ノードとして機能することができる。すでに説明したように、本発明のある実施形態の場合には、好適な選択順序は、ターゲット・ノードに属するノードの選択からマスタ・ノードを選択するために使用される。マスタ・ノード・ペアを含んでいない各ノード・グループにマスタ・ノードを割り当てた後で、アルゴリズムは終了する。
【００４１】
すでに説明したように、本発明のある実施形態の場合には、マスタ・ノード・ペアの好適な順序が使用される。ノード・グループのマスタ・ノード・ペアとして機能するために、２つ以上のノード・ペアを使用できる場合には、最も小さい参加指数（ｐｉ）を有するノード・ペアがマスタ・ノード・ペアとして選択される。例えば、図５〜図８に戻って説明すると、ネットワーク構成に対する最適なノード・ペアの組合わせは（ｎ３，ｎ４）および（ｎ１，ｎ５）であることがすでに決定されている。また、両方のノード・ペア（ｎ３，ｎ４）および（ｎ１，ｎ５）が、ＬＢＧ−Ａのマスタ・ノード・ペアとして機能することが分かっている。（ｎ３，ｎ４）の参加指数（ｐｉ）、すなわち、ｐｉ（ｎ３）＋ｐｉ（ｎ４）は８である。同様に、（ｎ１，ｎ５）の参加指数（ｐｉ）は７である。それ故、ＬＢＧ−Ａのマスタ・ノード・ペアとして選択したノード・ペアは、ノード・ペア（ｎ１，ｎ５）である。何故なら、選択したノード・ペアは、ノード・ペア（ｎ３，ｎ４）よりも小さい参加指数（ｐｉ）を有しているからである。
【００４２】
図９は好適な順序アレイ５１０である。好適な順序アレイ５１０は、コンピュータ・メモリに記憶され、コンピュータ・ネットワーク内の各ノード・グループに対するノードマスタの階層のリストを作成する。例えば、ＬＢＧ−Ａに対するマスタ・ノードの好適な順序は、最初にノード・ペア（ｎ１，ｎ５）であり、次にノード・ペア（ｎ３，ｎ４）である。それ故、ノード・ペア（ｎ１，ｎ５）が故障した場合には、好適な順序アレイ５１０は、ノード・ペア（ｎ３，ｎ４）をＬＢＧ−Ａの新しいマスタ・ノード・ペアとして迅速に選択し、任命するために使用することができる。
【００４３】
マスタ・ノード・ペアの好適な順序を決定する他に、参加指数（ｐｉ）を使用してマスタ・ノードの好適な順序を決定することができる。どのノード・ペアも、ターゲット・ノード・グループに対するマスタ・ノード・ペアとして使用することができない場合には、ターゲット・ノード・グループに属する任意のノードをマスタ・ノードとして選択することができることを思い出されたい。ノード・グループのマスタ・ノードとして機能する２つ以上のノードを使用できる場合には、最も小さい参加指数（ｐｉ）を含むノードがマスタ・ノードとして選択される。
【００４４】
図９に戻って説明すると、好適な順序アレイ５１０内にリストの形で記憶しているＬＢＧ−Ｂに対する好適な順序は、最初に（ｎ３，ｎ４）であり、次にノードｎ２であり、次にノードｎ５である。それ故、マスタ・ノード・ペア（ｎ３，ｎ４）が故障した場合には、ＬＢＧ−Ｂに対して選択した次のマスタ・ノードは、ノードｎ２である。マスタ・ノードｎ２が故障した場合には、ＬＢＧ−Ｂに対して選択した次のマスタ・ノードはノードｎ５である。好適な順序アレイ５１０は、またノードがオンラインで戻る場合に、マスタ・ノードを選択するために使用することができることに留意されたい。例えば、ＬＢＧ−Ｂに対するマスタ・ノードがｎ５である場合で、ノード・ペア（ｎ３，ｎ４）がオンラインで戻る場合には、好適な順序アレイ５１０を、ノード・ペア（ｎ３，ｎ４）をＬＢＧ−Ｂに対する新しいマスタ・ノード・ペアとして迅速に選択するために使用することができる。
【００４５】
本発明の他の実施形態の場合には、ネットワークに対する（全潜在的利用度を最大にする代わりに）全ハミング距離を最小にすることにより、ノード・ペアの最適な組合わせを検出することができる。それ故、この実施形態は、ネットワーク内のノード・ペアに対するハミング距離を決定するための決定動作を含む。次に、ネットワークに対する最小の全ハミング距離を有するノード・ペアの組合わせの位置を見つけ出すことにより、ノード・ペアの最適な組合わせを検出することができる。選択動作は、ターゲット・ノード・グループに属する両方のノード・ペア・メンバーを含むマスタ・ノード・ペアを有するノード・ペアの最適な組合わせからマスタ・ノード・ペアを選択する。ターゲット・ノード・グループに対するマスタ・ノード・ペアが存在しない場合には、ターゲット・ノード・グループに属するノードが、ターゲット・ノード・グループに対するマスタ・ノードとして選択される。
【００４６】
本発明についての上記記述は、図解および説明のためのものである。上記教示は、１）マスタ・ノードが、マスタ・ノードが選択されたマスタであるグループ内のメンバー資格を共有するように、また２）マスタ・ノードが、グループに関するある種の状態情報をコピーするように（ハートビーティング等により）、クラスタ化したどのノードのグループにも適用することができ、マスタ・ノードを重なっているノード・グループのセットから選択しなければならないどのノードのグループにも適用することができる。それ故、上記記述はすべてを網羅するものでもなければ、本発明を開示した正確な形に制限するものでもなく、他の修正および変更も行うことができる。開示の実施形態は、本発明の原理およびその実際の適用を最も分かりやすく説明し、そうすることにより、当業者が対象とする特定の使用に適している種々の実施形態および種々の修正で、本発明を最もよく使用できるように選択し、記述した。添付の特許請求の範囲は、従来技術により制限されているものを除いて、本発明の他の実施形態を含むと解釈すべきである。
【図面の簡単な説明】
【００４７】
【図１】本発明を実施する例示としてのコンピュータ・ネットワーク環境を示す。
【図２】いくつかのノード・グループに分割された、本発明を実施するコンピュータ・ネットワークを示す。
【図３】本発明による例示としてのマスタ・ノード選択アルゴリズムのフローチャートの第１の部分を示す。
【図４】本発明による例示としてのマスタ・ノード選択アルゴリズムのフローチャートの第２の部分を示す。
【図５】ノード・グループ構成アレイを示す。
【図６】参加指数アレイを示す。
【図７】ハミング距離アレイを示す。
【図８】潜在的利用度アレイを示す。
【図９】好適な順序アレイを示す。
【図１】
2005515713.tif 000004
【図２】
2005515713.tif 000005
【図３】
2005515713.tif 000006
【図４】
2005515713.tif 000007
【図５】
2005515713.tif 000008
【図６】
2005515713.tif 000009
【図７】
2005515713.tif 000010
【図８】
2005515713.tif 000011
【図９】
2005515713.tif 000012
【国際調査報告】
2005515713.tif 000013
2005515713.tif 000014