System and method for determining cluster membership in a heterogeneous distributed system
First Claim
1. A method for determining membership of nodes in a cluster in a distributed computer system, the method comprising:
- assigning a weighting value to each of the nodes;
grouping a first subset of said nodes into a first possible cluster configuration;
grouping a second subset of said nodes into a second possible cluster configuration;
combining the weighting values of the first subset of said nodes to calculate a first value;
combining the weighting values of the second subset of said nodes to calculate a second value; and
choosing either said first subset or said second subset for membership in said cluster depending upon a result of said first value of said first possible cluster configuration and said second value of said second possible cluster configuration.
2 Assignments
0 Petitions
Accused Products
Abstract
A distributed computer system and method for determining cluster membership in a distributed computer system. A plurality of computers configurable as cluster nodes are coupled through one or more public and/or private communications networks. Cluster management software running on the plurality of computers is configured to group various ones of the computers into a cluster. Weighting values are assigned to each node, such as by relative processing power. Each fully connected subset of nodes are grouped into a possible cluster configuration. The weighting value of each subset is calculated. The membership in the cluster is chosen based on the subset with the optimum weighting value among all the possible cluster configurations. The maximum weighting value may be adjusted if the maximum weighting value is greater than or equal to the sum of all other weighting values for all other nodes in the current cluster configuration. The maximum weighting factor may be adjusted to a value below the sum of all other weighting values for all other nodes in the current cluster configuration.
314 Citations
41 Claims
-
1. A method for determining membership of nodes in a cluster in a distributed computer system, the method comprising:
-
assigning a weighting value to each of the nodes;
grouping a first subset of said nodes into a first possible cluster configuration;
grouping a second subset of said nodes into a second possible cluster configuration;
combining the weighting values of the first subset of said nodes to calculate a first value;
combining the weighting values of the second subset of said nodes to calculate a second value; and
choosing either said first subset or said second subset for membership in said cluster depending upon a result of said first value of said first possible cluster configuration and said second value of said second possible cluster configuration. - View Dependent Claims (2, 3, 4, 5)
determining with which other nodes each node is in communication;
combining the weighting factors of various subsets of nodes which are all in communication; and
choosing from said various subsets of nodes.
-
-
4. The method of claim 3, further comprising:
comparing the weighting values assigned to each of the nodes in the current cluster configuration to find a node with a maximum weighting factor, wherein the maximum weighting factor is adjusted if the maximum weighting factor is greater than or equal to the sum of all other nodes in the current cluster configuration.
-
5. The method of claim 4, wherein the maximum weighting factor is adjusted to a value less than said sum of said all other nodes.
-
6. A method for determining membership of nodes in a cluster in a distributed computer system, the method comprising:
-
assigning a weighting value to each of the nodes;
determining with which other nodes each node is in communication;
determining alternatives for a proposed membership list for each node based on said determining with which nodes each node is in communication and the weighting values assigned to each of the nodes;
adding the weighting factors of nodes involved in each alternative for the proposed membership list for each node to arrive at a sum for each alternative for the proposed membership list for each node;
choosing a preferred alternative for the proposed membership list from the alternatives for the proposed membership list, wherein the preferred alternative for the proposed membership list has the sum that is a maximum value. - View Dependent Claims (7, 8)
comparing the weighting values assigned to each of the nodes in the current cluster configuration to find a node with a maximum weighting factor, wherein the maximum weighting factor is adjusted if the maximum weighting factor is greater than or equal to the sum of all other nodes in the current cluster configuration.
-
-
8. The method of claim 7, wherein the maximum weighting factor is adjusted to a value less than the sum of all other nodes.
-
9. A method for determining membership of nodes in a distributed computer system, the method comprising:
-
assigning a weighting value to each of the nodes;
determining with which other nodes a selected node is in communication;
broadcasting to the other nodes communication data specifying the other nodes with which the selected node is in communication;
receiving the communication data specifying the other nodes with which the selected node is in communication;
determining a proposed membership list based on the communication data specifying the other nodes with which the selected node is in communication and the weighting values assigned to each of the nodes;
broadcasting the proposed membership list to the other nodes with which the selected node is in communication;
receiving the proposed membership lists from each of the other nodes with which the selected node is in communication; and
determining an elected membership list from the proposed membership lists. - View Dependent Claims (10, 11, 12, 13)
adding the weighting factors of nodes involved in various groupings for the proposed membership list; and
choosing a grouping for the proposed membership list that has a maximum sum obtained from said adding the weighting factors of nodes involved in various groupings for the proposed membership list.
-
-
12. The method of claim 9, further comprising:
comparing the weighting values assigned to each of the nodes in the elected membership list to find a node with a maximum weighting factor, wherein the maximum weighting factor is adjusted if the maximum weighting factor is greater than or equal to the sum of all other nodes in the elected membership list.
-
13. The method of claim 12, wherein the maximum weighting factor is adjusted downward to a value less than the sum of all other nodes.
-
14. A distributed computer system, comprising:
-
one or more communications networks;
a plurality of computers each configurable as a cluster node, wherein the plurality of computers are coupled to the one or more communications networks, wherein each of the plurality of computers is assigned a weighting value; and
cluster management software running on the plurality of computers, wherein said cluster management software establishes cluster membership, wherein the clustering software is configured to;
assign a weighting value to each of various ones of the plurality of computers;
group a first subset of said various ones into a first possible cluster configuration;
group a second subset of said various ones into a second possible cluster configuration;
combine the weighting values of the first subset to calculate a first value;
combine the weighting values of the second subset to calculate a second value; and
choose either said first subset or said second subset for membership in said cluster depending upon a result of said first value of said first possible cluster configuration and said second value of said second possible cluster configuration. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
a private interconnect configured to further couple together various ones of the plurality of computers.
-
-
17. The distributed computer system of claim 16, wherein the private interconnect is further configured to exchange cluster configuration data among the various ones of the plurality of computers.
-
18. The distributed computer system of claim 17, wherein the private interconnect is further configured to exchange database traffic among the various ones of the plurality of computers.
-
19. The distributed computer system of claim 14, wherein each of the plurality of computers includes at least one network interface card configured to couple to the communications network.
-
20. The distributed computer system of claim 14, further comprising:
one or more mass storage devices coupled in the distributed computer system, wherein the plurality of computers are configured to access the one or more mass storage devices.
-
21. The distributed computer system of claim 20, wherein each of the one or more mass storage devices is coupled to one or more of the plurality of computers.
-
22. The distributed computer system of claim 14, wherein the cluster management software is further configured to:
-
add the weighting factors of said various ones included in said first subset;
add the weighting factors of said various ones included in said second subset; and
choose either said first subset or said second subset for membership in said cluster depending upon a maximum sum obtained from said add the weighting factors of said various ones included in said first subset and said add the weighting factors of said various ones included in said second subset.
-
-
23. The distributed computer system of claim 22, wherein the further the cluster management software is further configured to:
compare the weighting values assigned to each of the nodes in the membership of the cluster to find a node with a maximum weighting factor, wherein the maximum weighting factor is adjusted if the maximum weighting factor is greater than or equal to the sum of all other nodes in the membership in the cluster.
-
24. The distributed computer system of claim 23, wherein the maximum weighting factor is adjusted downward to a value less than the sum of all other nodes in the membership of the cluster.
-
25. A distributed computer system, comprising:
-
one or more communications networks;
a plurality of computers each configurable as a cluster node, wherein the plurality of computers are coupled to the one or more communications networks, wherein each of the plurality of computers is assigned a weighting value; and
cluster management software running on the plurality of computers to configure various ones of the plurality of computers into a cluster, wherein the clustering software is configured to;
determine with which other nodes a selected node is in communication;
broadcast to the other nodes communication data specifying the other nodes with which the selected node is in communication;
receive the communication data specifying the other nodes with which the selected node is in communication;
determine a proposed membership list based on the communication data specifying the other nodes with which the selected node is in communication and the weighting values assigned to each of the nodes;
broadcast the proposed membership list to the other nodes with which the selected node is in communication;
receive the proposed membership lists from each of the other nodes with which the selected node is in communication; and
determine an elected membership list from the proposed membership lists. - View Dependent Claims (26, 27, 28)
add the weighting factors of nodes involved in various groupings for the proposed membership list; and
choose a grouping for the proposed membership list that has a maximum sum obtained from said adding the weighting factors of nodes involved in various groupings for the proposed membership list.
-
-
27. The distributed computer system of claim 26, wherein the cluster management software is further configured to:
compare the weighting values assigned to each of the nodes in the elected membership list to find a node with a maximum weighting factor, wherein the maximum weighting factor is adjusted if the maximum weighting factor is greater than or equal to the sum of all other nodes in the elected membership list.
-
28. The method of claim 27, wherein the maximum weighting factor is adjusted downward to a value less than the sum of all other nodes.
-
29. A distributed computer system that determines which nodes are member of a cluster, comprising:
-
means for assigning a weighting value to each of the nodes;
means for grouping a first subset of said nodes into a first possible cluster configuration;
means for grouping a second subset of said nodes into a second possible cluster configuration;
means for combining the weighting values of the first subset of said nodes to calculate a first value;
means for combining the weighting values of the second subset of said nodes to calculate a second value; and
means for choosing either said first subset or said second subset for membership in said cluster depending upon a result of said first value of said first possible cluster configuration and said second value of said second possible cluster configuration. - View Dependent Claims (30, 31, 32)
means for comparing the weighting values assigned to each of the nodes in the membership of the cluster to find a node with a maximum weighting factor, and means for adjusting the weighting value of the node with the maximum weighting factor if the maximum weighting factor is greater than or equal to the sum of the weighting values of all other nodes in the membership in the cluster.
-
-
31. The distributed computer system of claim 30, wherein the maximum weighting factor is adjusted to a value less than said sum of said all other nodes.
-
32. The distributed computer system of claim 29, wherein the weighting value assigned to a respective node is indicative of the relative processing power of said respective node.
-
33. A distributed computer system that determines which nodes are members of a cluster, comprising:
-
means for assigning a weighting value to each of the nodes;
means for determining with which other nodes a selected node is in communication;
means for broadcasting to the other nodes communication data specifying the other nodes with which the selected node is in communication;
means for receiving the communication data specifying the other nodes with which the selected node is in communication;
means for determining a proposed membership list based on the communication data specifying the other nodes with which the selected node is in communication and the weighting values assigned to each of the nodes;
means for broadcasting the proposed membership list to the other nodes with which the selected node is in communication;
means for receiving the proposed membership lists from each of the other nodes with which the selected node is in communication; and
means for determining an elected membership list from the proposed membership lists. - View Dependent Claims (34, 35, 36, 37)
means for adding the weighting factors of nodes involved in various groupings for the proposed membership list; and
means for choosing a grouping for the proposed membership list that has a maximum sum obtained from said adding the weighting factors of nodes involved in various groupings for the proposed membership list.
-
-
36. The distributed computer system of claim 33, further comprising:
-
means for comparing the weighting values assigned to each of the nodes in the elected membership list to find a node with a maximum weighting factor, and means for adjusting the weighting value of the node with the maximum weighting factor if the maximum weighting factor is greater than or equal to the sum of the weighting values of all other nodes in the elected membership list.
-
-
37. The method of claim 36, wherein the maximum weighting factor is adjusted downward to a value less than the sum of all other nodes.
-
38. A storage medium configured to store instructions that determine membership of nodes in a cluster in a distributed computer system, said instructions comprising:
-
assigning a weighting value to each of the nodes;
grouping a first subset of said nodes into a first possible cluster configuration;
grouping a second subset of said nodes into a second possible cluster configuration;
combining the weighting values of the first subset of said nodes to calculate a first value;
combining the weighting values of the second subset of said nodes to calculate a second value; and
choosing either said first subset or said second subset for membership in said cluster depending upon a result of said first value of said first possible cluster configuration and said second value of said second possible cluster configuration. - View Dependent Claims (39, 40, 41)
comparing the weighting values of all nodes in the membership in said cluster to find a node with a maximum weighting factor; and
adjusting the maximum weighting factor if the maximum weighting factor is greater than or equal to the sum of the weighting factors of all other nodes in the membership in said cluster.
-
-
40. The storage medium of claim 39, wherein the maximum weighting factor is adjusted to a value less than said sum of said all other nodes.
-
41. The storage medium of claim 38, wherein the weighting value assigned to a respective node is indicative of the relative processing power of said respective node.
Specification