JP2001521222A

Determining cluster membership in a distributed computer system

Abstract

(57) [Summary] Cluster membership in a distributed computer system is determined by determining which other nodes each node is communicating with and by distributing its connectivity information through the nodes of the system. Therefore, each node can determine a new optimized cluster based on connectivity information. In particular, each node has information about the node with which it is communicating and has similar information about each other node in the system. Therefore, each node has complete information about the connectivity of all nodes that are directly or indirectly connected. Each node applies optimization criteria to its connectivity information to determine the best new cluster. Data representing the optimal new cluster is broadcast by each node. In addition, the optimal new cluster determined by many nodes is collected at each node. Each node will have data representing the proposed new cluster that was found to be optimal by each node. Each node uses that information to elect a new cluster from many proposed new clusters. For example, a new cluster that is proposed more than any other cluster is elected as the new cluster. Each node receives the same proposed new cluster from a node that is a potential member of the new cluster, so new cluster membership reaches unanimous. Since each node has complete more information about the nodes of potential members of the new cluster, the resulting cluster is undoubtedly in a relatively optimal configuration.

Term

Term ended

Projected expiry passed 20 October 2018, 7.9 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

1 claim: 1 independent, 0 dependent

  1. 1
    【特許請求の範囲】 【請求項1】 分散型コンピュータ・システムにおけるノードのメンバーシップを決定する方法において、 (a) 分散型コンピュータ・システムのノードの接続性を表す接続データを決定するステップと、 (b) プロポーズされた新しいクラスタのプロポーズされたメンバーシップ・リストを形成するために接続データに最適化基準を適用するステップと、 (c) プロポーズされたメンバーシップ・リストを接続されているノードに同報通信するステップと、 (d) 接続されているノードから他のプロポーズされたメンバーシップ・リストを受け取るステップと、 (e) 他のプロポーズされたメンバーシップ・リストから選出されたプロポーズされたメンバーシップ・リストを選択するステップと を有する方法。 【請求項2】 接続データを決定する(a)ステップが 選択されたノードが分散型コンピュータ・システムの他のノードのどのノードと通信しているかを決定するステップと、 接続されているノードを特定するデータを他のノードに同報通信するステップと、 接続されているノードからノード接続データを受け取るステップと、 接続されているノードからのノード接続データと接続されているノードを特定するデータを接続データを形成するために組み合わせるステップと を有する請求項1記載の方法。 【請求項3】 選出されたプロポーズされたメンバーシップ・リストを選択する(e)ステップが プロポーズされたメンバーシップ・リストと他の全てのプロポーズされたメンバーシップ・リストとが一致すことを確認するステップ を含む請求項1記載の方法。 【請求項4】 選出されたプロポーズされたメンバーシップ・リストを選択する(e)ステップがさらに プロポーズされたメンバーシップ・リストと他の全てのプロポーズされたメンバーシップ・リストとの間の不一致を検出するステップを有し、 その不一致に応じて(a)~(d)を繰り返す請求項1記載の方法。 【請求項5】 選出されたプロポーズされたメンバーシップ・リストを選択する(e)ステップが 選出されたプロポーズされたメンバーシップ・リストがまとまってクオーラムを形成するノードを表すことを決定するステップを 含む請求項1記載の方法。 【請求項6】 選出されたプロポーズされたメンバーシップ・リストがまとまってクオーラムを形成するノードを表すことを決定するステップが、 分散型コンピュータ・システムの動作しているノードの数を推測するステップを 含む請求項5記載の方法。 【請求項7】 分散型コンピュータ・システムの動作しているノードの数を推測するステップが 最初に述べたプロポーズされたメンバーシップ・リストに表されているノードの数を決定するステップと、 加入ノードの数を追加するステップと、 自発に離脱するノードの数を減算するステップと を有する請求項6記載の方法。 【請求項8】 プロセッサとメモリを含むコンピュータで使用するコンピュータ可読媒体であって、 (a) 分散型コンピュータ・システムのノードの接続性を表す接続データを決定し、 (b) プロポーズされた新しいクラスタのプロポーズされたメンバーシップ・リストを形成するために接続データに最適化基準を適用し、 (c) プロポーズされたメンバーシップ・リストを接続されているノードに同報通信し、 (d) 接続されているノードから他のプロポーズされたメンバーシップ・リストを受け取り、 (e) 他のプロポーズされたメンバーシップ・リストから選出されたプロポーズされたメンバーシップ・リストを選択する ことによって、分散型コンピュータ・システムのノードのメンバーシップをコンピュータに決めさせるコンピュータ命令を含むコンピュータ可読媒体。 【請求項9】 接続データを決定(a)する際に 選択されたノードがbpの他のノードのどのノードと通信しているかを決定し、 接続されているノードを特定するデータを他のノードに同報通信し、 接続されているノードからノード接続データを受け取り、 接続されているノードからのノード接続データと接続されているノードを特定するデータを接続データを形成するために組み合わせる 請求項8記載のコンピュータ可読媒体。 【請求項10】 選出されたプロポーズされたメンバーシップ・リストを選択する(e)際に プロポーズされたメンバーシップ・リストと他の全てのプロポーズされたメンバーシップ・リストとが一致すことを確認し、 を含む請求項8記載のコンピュータ可読媒体。 【請求項11】 選出されたプロポーズされたメンバーシップ・リストを選択する(e)際に、さらに プロポーズされたメンバーシップ・リストと他の全てのプロポーズされたメンバーシップ・リストとの間の不一致を検出し、 その不一致に応じて(a)~(d)を繰り返す請求項8記載のコンピュータ可読媒体。 【請求項12】 選出されたプロポーズされたメンバーシップ・リストを選択する(e)際に 選出されたプロポーズされたメンバーシップ・リストがまとまってクオーラムを形成するノードを表すことを決定する請求項8記載のコンピュータ可読媒体。 【請求項13】 選出されたプロポーズされたメンバーシップ・リストがまとまってクオーラムを形成するノードを表すことを決定する際に、 分散型コンピュータ・システムの動作しているノードの数を推測する請求項12記載のコンピュータ可読媒体。 【請求項14】 分散型コンピュータ・システムの動作しているノードの数を推測する際に 最初に述べたプロポーズされたメンバーシップ・リストに表されているノードの数を決定し、 加入ノードの数を追加し、 自発に離脱するノードの数を減算する 請求項13記載のコンピュータ可読媒体。 【請求項15】 プロセッサと、 プロセッサに接続されたメモリと、 (i)メモリーからプロセッサで実行し、かつ(ii)プロセッサによって実行されたとき、コンピュータに分散型コンピュータ・システムのノードのメンバーシップをであって (a) 分散型コンピュータ・システムのノードの接続性を表す接続データを決定し、 (b) プロポーズされた新しいクラスタのプロポーズされたメンバーシップ・リストを形成するために接続データに最適化基準を適用し、 (c) プロポーズされたメンバーシップ・リストを接続されているノードに同報通信し (d) 接続されているノードから他のプロポーズされたメンバーシップ・リストを受け取り、 (e) 他のプロポーズされたメンバーシップ・リストから選出されたプロポーズされたメンバーシップ・リストを選択する ことによって決定させる欠陥検出モジュールと を有するコンピュータ・システム。 【請求項16】 接続データを決定(a)する際に 選択されたノードがbpの他のノードのどのノードと通信しているかを決定し、 接続されているノードを特定するデータを他のノードに同報通信し、 接続されているノードからノード接続データを受け取り、 接続されているノードからのノード接続データと接続されているノードを特定するデータを接続データを形成するために組み合わせる 請求項15記載のコンピュータ・システム。 【請求項17】 選出されたプロポーズされたメンバーシップ・リストを選択する(e)際に プロポーズされたメンバーシップ・リストと他の全てのプロポーズされたメンバーシップ・リストとが一致すことを確認し、 を含む請求項15記載のコンピュータ・システム。 【請求項18】 選出されたプロポーズされたメンバーシップ・リストを選択する(e)際に、さらに プロポーズされたメンバーシップ・リストと他の全てのプロポーズされたメンバーシップ・リストとの間の不一致を検出し、 その不一致に応じて(a)~(d)を繰り返す請求項15記載のコンピュータ可読媒体。 【請求項19】 選出されたプロポーズされたメンバーシップ・リストを選択する(e)際に 選出されたプロポーズされたメンバーシップ・リストがまとまってクオーラムを形成するノードを表すことを決定する請求項15記載のコンピュータ・システム。 【請求項20】 選出されたプロポーズされたメンバーシップ・リストがまとまってクオーラムを形成するノードを表すことを決定する際に、 分散型コンピュータ・システムの動作しているノードの数を推測する請求項19記載のコンピュータ・システム。 【請求項21】 分散型コンピュータ・システムの動作しているノードの数を推測する際に 最初に述べたプロポーズされたメンバーシップ・リストに表されているノードの数を決定し、 加入ノードの数を追加し、 自発に離脱するノードの数を減算する 請求項20記載のコンピュータ・システム。