Establishing membership within a federation infrastructure
First Claim
1. At a joining node, a method for establishing membership within a federation infrastructure, the method comprising:
- an act of sending a join message to a federation infrastructure, the destination property of the join message being the ID of the joining node;
an act of receiving a join response message from a federation infrastructure node that processed the join message, the join response identifying any prospective proximal predecessor nodes and any prospective proximal successor nodes corresponding to the joining node;
an act of sending a sync request to any identified immediate proximal predecessor nodes and any identified immediate proximal successor nodes;
an act of receiving a sync response message from any of the identified immediate proximal predecessor nodes and any of the identified immediate proximal successor nodes that processed the sync request, the received sync responses indicating any neighborhood nodes of the proximal predecessor nodes and any neighborhood nodes of the proximal successor nodes that processed the sync request; and
an act of computing proximal neighborhood nodes for the joining node based on a summarized view of the join response message and any sync response messages.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for establishing and maintaining membership within a federation infrastructure. A joining node submits a join message to an existing federation infrastructure. The federation infrastructure routes the join message to a processing node. The processing node facilitates identification of predecessor, successor, neighborhood, and routing nodes (for the joining node) within a ring of nodes. The joining node exchanges messages with identified nodes to obtain state information for the identified nodes and other nodes within the ring. Nodes periodically exchange state information, including state information for other nodes, such that state information for the ring is efficiently propagated to all nodes in the ring even when communication between some nodes is lost. Instance IDs, phase values, and freshness values are used to determine when state information is stale and/or is to be updated.
-
Citations
43 Claims
-
1. At a joining node, a method for establishing membership within a federation infrastructure, the method comprising:
-
an act of sending a join message to a federation infrastructure, the destination property of the join message being the ID of the joining node;
an act of receiving a join response message from a federation infrastructure node that processed the join message, the join response identifying any prospective proximal predecessor nodes and any prospective proximal successor nodes corresponding to the joining node;
an act of sending a sync request to any identified immediate proximal predecessor nodes and any identified immediate proximal successor nodes;
an act of receiving a sync response message from any of the identified immediate proximal predecessor nodes and any of the identified immediate proximal successor nodes that processed the sync request, the received sync responses indicating any neighborhood nodes of the proximal predecessor nodes and any neighborhood nodes of the proximal successor nodes that processed the sync request; and
an act of computing proximal neighborhood nodes for the joining node based on a summarized view of the join response message and any sync response messages. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. At a federation infrastructure, a method for a joining a node to establish membership within the federation infrastructure, the method comprising:
-
an act of a receiving node in the federation infrastructure receiving a join message, the destination property of the join message being the ID of a joining node;
an act of routing the join message to a processing node having an ID numerically closer to the ID of the joining node than other nodes in the federation infrastructure;
an act of the processing node computing one or more predecessor nodes and one or more successor nodes for the joining node;
an act of the processing node computing one or more routing nodes for the joining node; and
an act of sending a join response that identifies at least the computed predecessor and successor nodes to the joining node. - View Dependent Claims (37, 38, 39, 40, 41)
-
-
42. A computer program product for use at a joining node, the computer program product for implementing a method for establishing membership within a federation infrastructure, the computer program product comprising one or more computer-readable media having stored thereon computer-executable instructions that, when executed by a processor, cause the joining node to perform the following:
-
send a join message to a federation infrastructure, the destination property of the join message being the ID of the joining node;
receive a join response message from a federation infrastructure node that processed the join message, the join response identifying any prospective proximal predecessor nodes and any prospective proximal successor nodes corresponding to the joining node;
send a sync request to any identified immediate proximal predecessor nodes and any identified immediate proximal successor nodes;
receive a sync response message from any of the identified immediate proximal predecessor nodes and any of the identified immediate proximal successor nodes that processed the sync request, the received sync responses indicating any neighborhood nodes of the proximal predecessor nodes and any neighborhood nodes of the proximal successor nodes that processed the sync request; and
compute proximal neighborhood nodes for the joining node based on a summarized view of the join response message and any sync response messages.
-
-
43. A computer program product for use at a federation infrastructure, the computer program product for implementing a method for a joining a node to establish membership within the federation infrastructure, the computer program product comprising one or more computer-readable media having stored thereon computer-executable instructions that, when executed by a processor, cause a processing node within the federation infrastructure to perform the following:
-
receive node in the federation infrastructure receiving a join message, the destination property of the join message being the ID of a joining node;
route the join message to a processing node having an ID numerically closer to the ID of the joining node than other nodes in the federation infrastructure;
compute one or more predecessor nodes and one or more successor nodes for the joining node;
compute one or more routing nodes for the joining node; and
send a join response that identifies at least the computed predecessor and successor nodes to the joining node.
-
Specification