Using a cluster-wide shared repository to provide the latest consistent definition of the cluster (avoiding the partition-in time problem)
First Claim
1. A method for maintaining a cluster definition for a network cluster of computing nodes having a plurality of member nodes and a network structure for facilitating network connectivity between nodes, the method comprising:
- coupling at least two member nodes to a shared repository over a storage connection separate from the network structure;
storing a cluster definition for the network cluster in the shared repository;
selecting a coordinator node from the at least two member nodes of the network cluster;
accessing, by a member node, the cluster definition on the shared repository using the storage connection, the member node having membership in the network cluster regardless of network connectivity with another node;
at a member node, requesting a change to the cluster definition by sending a proposed change to the shared repository over the storage connection; and
in response to the proposed change request, updating, from the coordinator node, the cluster definition stored in the shared repository to reflect the requested change.
2 Assignments
0 Petitions
Accused Products
Abstract
A quorumless network cluster provides a highly available system by addressing the partition-in-space and partition-in-time problems in network clusters.
In a particular solution, a cluster manager (CM) can use disk based messaging to manage the operation of the cluster. Each node within the cluster must have access to a shared disk to operate within the cluster.
A particular methodology can operate the cluster in a closed loop between nodes 1 to N. If a node fails to receive a heartbeat message from its predecessor in the loop, it initiates a cluster reconfiguration by sending a reconfiguration message to each other node in the cluster.
The quorumless cluster can also include a common storage for a cluster definition. Each node may provide a proposed change to the cluster definition, however only a single coordinator node may update the cluster definition and apply the suggested changes.
-
Citations
67 Claims
-
1. A method for maintaining a cluster definition for a network cluster of computing nodes having a plurality of member nodes and a network structure for facilitating network connectivity between nodes, the method comprising:
-
coupling at least two member nodes to a shared repository over a storage connection separate from the network structure; storing a cluster definition for the network cluster in the shared repository; selecting a coordinator node from the at least two member nodes of the network cluster; accessing, by a member node, the cluster definition on the shared repository using the storage connection, the member node having membership in the network cluster regardless of network connectivity with another node; at a member node, requesting a change to the cluster definition by sending a proposed change to the shared repository over the storage connection; and in response to the proposed change request, updating, from the coordinator node, the cluster definition stored in the shared repository to reflect the requested change. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus for updating a cluster definition for a network cluster of computing nodes having a plurality of member nodes and a network structure for facilitating network connectivity between nodes, comprising:
-
a shared repository coupled to at least two member nodes of the cluster with a storage connection separate from the network structure, the shared repository including the cluster definition; a member node to access the cluster definition on the shared repository over the storage connection separate from the network structure, the member node having membership in the network cluster regardless of network connectivity with another node; a member node to request a change to the cluster definition by sending a proposed change to the shared repository over the network connection; and a coordinator node, selected from the at least two member nodes of the network cluster, to update the cluster definition with the proposed change. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer program product for maintaining a cluster definition for a network cluster of computing nodes having a plurality of member nodes and a network structure for facilitating network connectivity between nodes, the computer program product comprising:
a computer usable medium having computer readable program code thereon, including program code for; coupling at least two member nodes to a shared repository over a storage connection separate from the network structure; storing a cluster definition for the network cluster in the shared repository; selecting a coordinator node from the at least two member nodes of the network cluster; directing a member node to access the cluster definition on the shared repository over the storage connection, the member node being a member in the network cluster regardless of network connectivity with another node; requesting a change to the cluster definition by sending a proposed change to the shared repository over the storage connection; and directing the coordinator node to update the cluster definition in response to the requested change to the cluster definition. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31)
-
32. A system for maintaining a cluster definition for a network cluster of computing nodes having a plurality of member nodes and a network structure for facilitating network connectivity between nodes, the system comprising:
-
a means for coupling at least two member nodes to a shared repository over a storage connection; a means for storing a cluster definition for the network cluster in the shared repository; a means for selecting a coordinator node from the at least two member nodes of the network cluster; a means for accessing, by a member node, the cluster definition on the shared repository over the storage connection, the member node having membership in the cluster regardless of network connectivity with another node; a means for requesting a change to the cluster definition by sending a proposed change the shared repository over the storage connection; and a means for the coordinator node to update the cluster definition to reflect the requested change.
-
-
33. A method for updating a cluster definition for a network cluster of computing nodes having a plurality of member nodes and a network structure for facilitating network connectivity between nodes, the method comprising:
-
coupling at least two member nodes to a shared repository over a storage connection separate from the network structure; storing a cluster definition for the network cluster in the shared repository; selecting a coordinator node from the at least two member nodes of the network cluster; at a member node, requesting a change to the cluster definition; from the coordinator node, updating the cluster definition over the storage connection to reflect the requested change; and from a potential member node, accessing the cluster definition stored in the shared repository over the storage connection, the potential member node being granted membership in the network cluster regardless of network connectivity with another node. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40)
-
-
41. An apparatus for maintaining a cluster definition for a network cluster of computing nodes having a plurality of member nodes and a network structure for facilitating network connectivity between nodes, comprising:
-
a shared repository coupled to at least two member nodes of the cluster over a storage connection separate from the network structure, the shared repository including the cluster definition and a proposed change to the cluster definition; a coordinator node, selected from the at least two member nodes of the network cluster, to update the cluster definition with the proposed change; and a potential member node to accessing the cluster definition on the shared repository over the storage connection, the potential member node being granted membership in the cluster regardless of network connectivity with another node. - View Dependent Claims (42, 43, 44, 45)
-
-
46. A computer program product for maintaining a cluster definition for a network cluster of computing nodes having a plurality of member nodes and a network structure for facilitating network connectivity between nodes, the computer program product comprising:
a computer usable medium having computer readable program instructions thereon, including instructions for; coupling at least two member nodes to a shared repository over a storage connection separate from the network structure; storing a cluster definition for the network cluster in the shared repository; selecting a coordinator node from the at least two member nodes of the network cluster; requesting a change to the cluster definition by sending a proposed change to the shared repository over the storage connection; directing the coordinator node to update the cluster definition to reflect the requested change; and directing a potential member node to access the cluster definition on the shared repository over the storage connection, the potential member node being granted membership in the cluster regardless of network connectivity with another node. - View Dependent Claims (47, 48, 49)
-
50. A system for maintaining a cluster definition for a network cluster of computing nodes having a plurality of member nodes and a network structure for facilitating network connectivity between nodes, the system comprising:
-
a means for coupling at least two member nodes to a shared repository over a storage connection; a means for storing a cluster definition for the network cluster in the shared repository; a means for selecting a coordinator node from the at least two member nodes of the network cluster; a means for requesting a change to the cluster definition by sending a proposed change to the shared repository over the storage connection; a means for the coordinator node to update the cluster definition to reflect the requested change; and a means for a potential member node to access the cluster definition on the shared repository over the storage connection, the potential member node being granted membership in the cluster regardless of network connectivity with another node.
-
-
51. A method for maintaining a cluster definition for a network cluster having at least one member node, the method comprising:
-
coupling the at least one member node to a shared repository over a storage connection separate from the network cluster; storing a cluster definition for the network cluster in the shared repository; selecting a coordinator node from the at least one member node of the network cluster; accessing, by a member node, the cluster definition on the shared repository over the storage connection; at a member node, requesting a change to the cluster definition by; sending a proposed change to a scratch area of the shared repository over the storage connection; setting a valid bit associated with the scratch area; verifying the valid bit; setting an update flag; modifying the cluster definition to reflect the requested change; and logging a progress of modifying the cluster definition in a log file in parallel with modifying the cluster definition; incrementing a version number associated with the shared repository; and clearing the valid bit and the update flag; and from the coordinator node, updating the cluster definition to reflect the requested change.
-
-
52. A method for maintaining a cluster definition for a network cluster of computing nodes having at least one member node, the method comprising:
-
coupling the at least one member node to a shared repository over a storage connection separate from the network cluster; storing a cluster definition for the network cluster in the shared repository; selecting a coordinator node from the at least one member node of the network cluster; accessing, by a member node, the cluster definition on the shared repository over the storage connection; at a member node, requesting a change to the cluster definition by sending a proposed change to the shared repository over the storage connection; from the coordinator node, updating the cluster definition to reflect the requested change; requesting, by a potential member node, membership in the network cluster; and accessing, by the potential member node, the cluster definition on the shared repository over the storage connection, for each potential member node accessing the cluster definition; determining a version number of the shared repository to yield a first version number; reading the cluster definition; re-determining a version number of the shared repository to yield a second version number; comparing the first version number with the second version number; and repeating the step of accessing the cluster definition until the first version number equals the second version number.
-
-
53. A method of maintaining a cluster definition for a network cluster of computing nodes, the method comprising:
-
coupling each member node to a shared repository over a storage connection separate from the network cluster; storing a current cluster definition for the network cluster at a single location in the shared repository; directing a non-member node to access the cluster definition on the shared repository over the storage connection, the non-member node being granted membership in the network cluster regardless of network connectivity with another node; selecting a coordinator node from one of the member nodes to update the cluster definition at the single location in the shared repository over the storage connection; and determining, by each member node, the current cluster definition by accessing the updated, current cluster definition at the single location in the shared repository over the storage connection.
-
-
54. A method for updating a cluster definition for a network cluster of computing nodes having a plurality of member nodes, the method comprising:
-
coupling a shared repository to the at least two member nodes of the cluster over a storage connection separate from the network cluster, the shared repository including the cluster definition; accessing, by a member node, the cluster definition on the shared repository over the storage connection; and directing a non-member node to access the cluster definition on the shared repository over the storage connection before establishing connectivity with the network cluster, the non-member node being granted membership in the network cluster regardless of network connectivity with another node. - View Dependent Claims (55, 56, 57, 58, 59, 60, 61)
-
-
62. An apparatus for maintaining a cluster definition for a network cluster of computing nodes having a plurality of member nodes, comprising:
-
a shared repository coupled to the at least two member nodes of the cluster over a storage connection separate from the network cluster, the shared repository including the cluster definition; a member node accessing the cluster definition on the shared repository over the storage connection, the member node having membership in the cluster regardless of network connectivity with another node; and a non-member node accessing the cluster definition on the shared repository over the storage connection before establishing connectivity with the network cluster. - View Dependent Claims (63, 64, 65, 66)
-
-
67. A system for maintaining a cluster definition for a network cluster of computing nodes having a plurality of member nodes, the system comprising:
-
means for coupling a shared repository to at least two member nodes of the cluster over a storage connection separate from the network cluster, the shared repository including the cluster definition; means for accessing, by a member node, the cluster definition on the shared repository over the storage connection; and means for directing a non-member node to access the cluster definition on the shared repository over the storage connection before establishing connectivity with the nodes of network cluster, the non-member node having access to the shared repository regardless of network connectivity with another node.
-
Specification