System and method for topology manager employing finite state automata for dynamic cluster formation
First Claim
Patent Images
1. A method, comprising:
- a node in a connecting state attempting to connect to one of a plurality of cluster nodes as its next node, wherein the plurality of cluster nodes are connected together to form a distributed data cluster having a topology order;
upon connecting to its next node, the node transitioning to a joining state and sending a connect request message to its next node;
the node waiting in the joining state to receive a connect complete message; and
upon receiving the connect complete message from one of a plurality of cluster nodes connecting to the node as its previous node, the node transitioning to a joined state as a member of the distributed data cluster;
wherein in the joined state the node is a member of the distributed data cluster in the topology order between its previous node and its next node.
2 Assignments
0 Petitions
Accused Products
Abstract
A distributed system provides for separate management of dynamic cluster membership and distributed data. Nodes of the distributed system may include a state manager and a topology manager. A state manager handles data access from the cluster. A topology manager handles changes to the dynamic cluster topology. The topology manager enables operation of the state manager by handling topology changes, such as new nodes to join the cluster and node members to exit the cluster. A topology manager may follow a static topology description when handling cluster topology changes. Data replication and recovery functions may be implemented, for example to provide high availability.
85 Citations
53 Claims
-
1. A method, comprising:
-
a node in a connecting state attempting to connect to one of a plurality of cluster nodes as its next node, wherein the plurality of cluster nodes are connected together to form a distributed data cluster having a topology order; upon connecting to its next node, the node transitioning to a joining state and sending a connect request message to its next node; the node waiting in the joining state to receive a connect complete message; and upon receiving the connect complete message from one of a plurality of cluster nodes connecting to the node as its previous node, the node transitioning to a joined state as a member of the distributed data cluster; wherein in the joined state the node is a member of the distributed data cluster in the topology order between its previous node and its next node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising:
-
a node in a joined state receiving a connect request message from a new node attempting to join a distributed data cluster, wherein the node in the joined state is a member of the distributed data cluster having a plurality of cluster nodes, wherein the node in the joined state is connected to one of the cluster nodes as its next node according to a cluster topology order; after receiving the connect request message, the node transitioning to a transient state and sending a node joined message to its next node indicating that the new node is joining the distributed data cluster; the node waiting in the transient state to receive a connect complete message from the new node; and upon receiving the connect complete message from the new node, the node transitioning back to the joined state wherein the node is connected to the new node as its previous node in the cluster topology order. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method, comprising:
-
a node in a joined state receiving a node joined message indicating a new node is attempting to join a distributed data cluster, wherein the node in the joined state is a member of the distributed data cluster having a plurality of cluster nodes, wherein the node in the joined state receives the node joined message from one of the cluster nodes connected to it as its previous node according to a cluster topology order, and wherein the node is connected to another cluster node as its current next node according to the cluster topology order; if the node joined message indicates that the new node is to be the node'"'"'s new next node, the node connecting to the new node and sending the new node a connect complete message; and if the node joined message does not indicate that the new node is to be the node'"'"'s new next node, the node sending the node joined message to its current next node. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
-
-
26. A computer system comprising a processor and memory including instructions executable by the processor for:
-
a node in a connecting state attempting to connect to one of a plurality of cluster nodes as its next node, wherein the plurality of cluster nodes are connected together to form a distributed data cluster having a topology order; upon connecting to its next node, the node transitioning to a joining state and sending a connect request message to its next node; the node waiting in the joining state to receive a connect complete message; and upon receiving the connect complete message from one of a plurality of cluster nodes connecting to the node as its previous node, the node transitioning to a joined state as a member of the distributed data cluster; wherein in the joined state the node is a member of the distributed data cluster in the topology order between its previous node and its next node. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A computer system comprising a processor and memory including instructions executable by the processor for:
-
a node in a joined state receiving a connect request message from a new node attempting to join a distributed data cluster, wherein the node in the joined state is a member of the distributed data cluster having a plurality of cluster nodes, wherein the node in the joined state is connected to one of the cluster nodes as its next node according to a cluster topology order; after receiving the connect request message, the node transitioning to a transient state and sending a node joined message to its next node indicating that the new node is joining the distributed data cluster; the node waiting in the transient state to receive a connect complete message from the new node; and upon receiving the connect complete message from the new node, the node transitioning back to the joined state wherein the node is connected to the new node as its previous node in the cluster topology order. - View Dependent Claims (37, 38, 39, 40, 41, 42)
-
-
43. A computer system comprising a processor and memory including instructions executable by the processor for:
-
a node in a joined state receiving a node joined message indicating a new node is attempting to join a distributed data cluster, wherein the node in the joined state is a member of the distributed data cluster having a plurality of cluster nodes, wherein the node in the joined state receives the node joined message from one of the cluster nodes connected to it as its previous node according to a cluster topology order, and wherein the node is connected to another cluster node as its current next node according to the cluster topology order; if the node joined message indicates that the new node is to be the node'"'"'s new next node, the node connecting to the new node and sending the new node a connect complete message; and if the node joined message does not indicate that the new node is to be the node'"'"'s new next node, the node sending the node joined message to its current next node. - View Dependent Claims (44, 45, 46, 47, 48, 49, 50)
-
-
51. A method for managing cluster membership in a distributed data system according to a finite state automata, comprising:
-
a first node in a connecting state attempting to connect to a second node of a plurality of cluster nodes as its next node, wherein the plurality of cluster nodes are connected together to form a distributed data cluster having a cluster topology order; upon connecting to the second node, the first node transitioning to a joining state and sending a connect request message to the second node; the first node waiting in the joining state to receive a connect complete message; the second node in a joined state receiving the connect request message from the first node, wherein the second node is connected to a third node of the cluster nodes as the third node'"'"'s next node according to the cluster topology order; after receiving the connect request message, the second node transitioning to a transient state and sending a node joined message to its next node indicating that the first node is joining the distributed data cluster; the second node waiting in the transient state to receive a connect complete message from the first node; the third node in a joined state receiving the node joined message indicating the first node is attempting to join the distributed data cluster as the third node'"'"'s new next node, wherein the third node receives the node joined message from one of the cluster nodes connected to it as its previous node according to the cluster topology order; in response to the node joined message indicating that the first node is to be the third node'"'"'s new next node, the third node connecting to the first node and sending the first node a connect complete message; upon receiving the connect complete message from the third node, the first node connecting to the third node as its previous node, sending a connect complete message to the second node, and transitioning to a joined state as a member of the distributed data cluster; and upon receiving the connect complete message from the first node, the second node transitioning to the joined state wherein the second node is connected to the first node as the first node'"'"'s previous node in the cluster topology order; wherein in the joined state the first node is a member of the distributed data cluster in the cluster topology order between its previous node and its next node. - View Dependent Claims (52, 53)
-
Specification