Determining cluster membership in a distributed computer system
First Claim
1. A method for determining membership of nodes in a distributed computer system, the method comprising:
- (a) determining connection data representative of interconnectivity of the nodes of the distributed computer system;
(b) applying optimization criteria to the connection data to form a proposed membership list of a proposed new cluster;
(c) broadcasting the proposed membership list to nodes determined to be connected;
(d) receiving other proposed membership lists from the nodes determined to be connected; and
(e) selecting an elected proposed membership list from the other proposed membership lists.
0 Assignments
0 Petitions
Accused Products
Abstract
Cluster membership in a distributed computer system is determined by determining with which other nodes each node is in communication and distributing that connectivity information through the nodes of the system. Accordingly, each node can determine an optimized new cluster based upon the connectivity information. Specifically, each node has information regarding with which nodes the node is in communication and similar information for each other node of the system. Therefore, each node has complete information regarding interconnectivity of all nodes which are directly or indirectly connected. Each node applies optimization criteria to such connectivity information to determine an optimal new cluster. Data represent the optimal new cluster is broadcast by each node. In addition, the optimal new cluster determined by the various nodes are collected by each node. Thus, each node has data representing the proposed new cluster which is perceived by each respective node to be optimal. Each node uses such data to elect a new cluster from the various proposed new clusters. For example, the new cluster represented by more proposed new clusters than any other is elected as the new cluster. Since each node receives the same proposed new clusters from the potential member nodes of the new cluster, the new cluster membership is reached unanimously. In addition, since each node has more complete information regarding the potential member nodes of the new cluster, the resulting new cluster consistently has a relatively optimal configuration.
199 Citations
21 Claims
-
1. A method for determining membership of nodes in a distributed computer system, the method comprising:
-
(a) determining connection data representative of interconnectivity of the nodes of the distributed computer system;
(b) applying optimization criteria to the connection data to form a proposed membership list of a proposed new cluster;
(c) broadcasting the proposed membership list to nodes determined to be connected;
(d) receiving other proposed membership lists from the nodes determined to be connected; and
(e) selecting an elected proposed membership list from the other proposed membership lists. - View Dependent Claims (2, 3, 4, 5, 6, 7)
determining with which connected ones of other nodes of the distributed computer system a selected node is in communication;
broadcasting to the other nodes data specifying the connected nodes;
receiving node connection data from the connected nodes; and
combining the node connection data from the connected nodes and the data specifying the connected nodes to form the connection data.
-
-
3. The method of claim 1 wherein (e) selecting an elected proposed membership list comprises:
ensuring that the proposed membership list and all other proposed membership lists agree.
-
4. The method of claim 3 wherein (e) selecting an elected proposed membership list further comprises:
detecting disagreement between the proposed membership list and all other proposed membership lists; and
in response to such disagreement, repeating (a) through (d).
-
5. The method of claim 1 wherein (e) selecting an elected proposed membership list comprises:
determining that the elected proposed membership list represents nodes which collectively form a quorum.
-
6. The method of claim 5 wherein determining that the elected proposed membership list represents nodes which collectively form a quorum comprises:
estimating a number of nodes of the distributed computer system that are operational.
-
7. The method of claim 6 wherein estimating a number of nodes of the distributed computer system that are operational comprises:
-
determining a number of nodes represented in the first-mentioned proposed membership list;
adding a number of joining nodes; and
subtracting a number of voluntarily leaving nodes.
-
-
8. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium includes computer instructions which when executed perform the method:
-
(a) determining connection data representative of interconnectivity of the nodes of the distributed computer system;
(b) applying optimization criteria to the connection data to form a proposed membership list of a proposed new cluster;
(c) broadcasting the proposed membership list to nodes determined to be connected;
(d) receiving other proposed membership lists from the nodes determined to be connected; and
(e) selecting an elected proposed membership list from the other proposed membership lists. - View Dependent Claims (9, 10, 11, 12, 13, 14)
determining with which connected ones of other nodes of the distributed computer system a selected node is in communication;
broadcasting to the other nodes data specifying the connected nodes;
receiving node connection data from the connected nodes; and
combining the node connection data from the connected nodes and the data specifying the connected nodes to form the connection data.
-
-
10. The computer readable medium of claim 8 wherein (e) selecting an elected proposed membership list comprises:
ensuring that the proposed membership list and all other proposed membership lists agree.
-
11. The computer readable medium of claim 10 wherein (e) selecting an elected proposed membership list further comprises:
-
detecting disagreement between the proposed membership list and all other proposed membership lists; and
in response to such disagreement, repeating (a) through (d).
-
-
12. The computer readable medium of claim 8 wherein (e) selecting an elected proposed membership list comprises:
determining that the elected proposed membership list represents nodes which collectively form a quorum.
-
13. The computer readable medium of claim 12 wherein determining that the elected proposed membership list represents nodes which collectively form a quorum comprises:
estimating a number of nodes of the distributed computer system that are operational.
-
14. The computer readable medium of claim 13 wherein estimating a number of nodes of the distributed computer system that are operational comprises:
-
determining a number of nodes represented in the first-mentioned proposed membership list;
adding a number of joining nodes; and
subtracting a number of voluntarily leaving nodes.
-
-
15. A computer system comprising:
-
a processor;
a memory operatively coupled to the processor; and
a failure detection module executing in the processor from the memory is configured to;
(a) determine connection data representing interconnectivity of the nodes of the distributed computer system;
(b) apply optimization criteria to the connection data to form a proposed membership list of a proposed new cluster;
(c) broadcast the proposed membership list to nodes determined to be connected;
(d) receive other proposed membership lists from the nodes determined to be connected; and
(e) select an elected proposed membership list from the other proposed membership lists. - View Dependent Claims (16, 17, 18, 19, 20, 21)
determine with which connected ones of other nodes of the distributed computer system a selected node is in communication;
broadcast to the other nodes data specifying the connected nodes;
receive node connection data from the connected nodes; and
combine the node connection data from the connected nodes and the data specifying the connected nodes to form the connection data.
-
-
17. The computer system of claim 15, wherein said failure detection module is further configured to ensure that the proposed membership list and all other proposed membership lists agree.
-
18. The computer system of claim 17, wherein said failure detection module is further configured to:
-
detect disagreement between the proposed membership list and all other proposed membership lists; and
in response to such disagreement, repeat (a) through (d).
-
-
19. The computer system of claim 15, wherein said failure detection module is further configured to determine that the elected proposed membership list represents nodes which collectively form a quorum.
-
20. The computer system of claim 19, wherein said failure detection module is further configured to estimate a number of nodes of the distributed computer system that are operational.
-
21. The computer system of claim 20, wherein said failure detection module is further configured to:
-
determine a number of nodes represented in the first-mentioned proposed membership list;
add a number of joining nodes; and
subtract a number of voluntarily leaving nodes.
-
Specification