Patent ID: 7624194

Claim:
At a joining node, the joining node including a processor and system memory, a method for establishing membership within a federation infrastructure, the federation infrastructure represented by a linked list of nodes, the linked list of nodes partitioned into a hierarchical tree of rings including a root ring and one or more lower levels of sub-rings, the root ring including all the nodes in the linked list of nodes, each of the one or more sub-rings including a subset of nodes from the linked list of nodes in accordance a plurality of proximity criteria, wherein any node included in a lower level sub-ring is also included in the root ring and is also included in any intermediate higher level sub-rings between the lower level sub-ring and the root ring, the method comprising: an act of sending a join message to a federation infrastructure, the join message including one or more proximity criteria from among the plurality of proximity criteria, the one or more proximity criteria indicating that the joining node is to be a member of one or more sub-rings in a path of sub-rings from a specified sub-ring to the root ring, the specified sub-ring representing a proximally equivalent set of nodes based on the one or more proximity criteria, 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 predecessor nodes in the specified sub-ring and any prospective successor nodes in the specified sub-ring corresponding to the joining node based on the one or more proximity criteria; an act of sending a sync request to any identified immediate predecessor nodes and any identified immediate successor nodes within the specified sub-ring; an act of receiving a sync response message from any of the identified immediate predecessor nodes and any of the identified immediate successor nodes that processed the sync request within the specified sub-ring, the received sync responses indicating any neighborhood nodes of the predecessor nodes and any neighborhood nodes of the successor nodes that processed the sync request within the specified sub-ring; and an act of the processor computing neighborhood nodes for the joining node within the specified sub-ring based on a summarized view of the join response message and any sync response messages.