Discovering liveness information within a federation infrastructure
First Claim
1. At a current node in a federation infrastructure, a method for discovering liveness information for another node in the federation infrastructure, the method comprising:
- an act of receiving a message from a sending node, the message including at least one liveness header representing state information for a participating node in the federation infrastructure, the state information including at least a participating node ID, an instance ID, a phase value, and a freshness value, the instance ID identifying an instance of the participating node, the phase value identifying an expressed phase of the participating node, the phase value including an expressed phase-state value and a phase.unknown indication, the phase-unknown indication indicating if the phase-state value was actually known to the sending node at the time indicated by the freshness value, the freshness value indicating how recently the instance ID and phase value where identified;
an act of accessing at least a current instance ID, current phase value, and current freshness value for the participating node maintained at the current node;
an act of comparing at least the received instance ID, the received phase value, and the received freshness value to the current instance ID, the current phase value, and the current freshness value respectively at a current node; and
an act of determining if state information for the participating node is to be updated at the current node based on the comparison.
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.
57 Citations
34 Claims
-
1. At a current node in a federation infrastructure, a method for discovering liveness information for another node in the federation infrastructure, the method comprising:
-
an act of receiving a message from a sending node, the message including at least one liveness header representing state information for a participating node in the federation infrastructure, the state information including at least a participating node ID, an instance ID, a phase value, and a freshness value, the instance ID identifying an instance of the participating node, the phase value identifying an expressed phase of the participating node, the phase value including an expressed phase-state value and a phase.unknown indication, the phase-unknown indication indicating if the phase-state value was actually known to the sending node at the time indicated by the freshness value, the freshness value indicating how recently the instance ID and phase value where identified; an act of accessing at least a current instance ID, current phase value, and current freshness value for the participating node maintained at the current node; an act of comparing at least the received instance ID, the received phase value, and the received freshness value to the current instance ID, the current phase value, and the current freshness value respectively at a current node; and an act of determining if state information for the participating node is to be updated at the current node based on the comparison. - 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. A computer program product for use at a current node in a federation infrastructure, the computer program product for implementing a method for discovering liveness information for another node in the federation infrastructure, 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:
-
receiving a message from a sending node, the message including at least one liveness header representing state information for a participating node in the federation infrastructure, the state information including at least a participating node ID, an instance ID, a phase value, and a freshness value, the instance ID identifying an instance of the participating node, the phase value identifying an expressed phase of the participating node, the phase value including an expressed phase-state value and a phase.unknown indication, the phase-unknown indication indicating if the phase-state value was actually known to the sending node at the time indicated by the freshness value, the freshness value indicating how recently the instance ID and phase value where identified; access at least a current instance ID, current phase value, and current freshness value for the participating node maintained at the current node; compare at least the received instance ID, the received phase value, and the received freshness value to the current instance ID, the current phase value, and the current freshness value respectively at a current node; and determine if state information for the participating node is to be updated at the current node based on the comparison.
-
Specification