Patent ID: 8600951

Claim:
A device configured as a node in a distributed indexing network in which each node within the distributed indexing network has an address in an index address space and an address in a separate network address space, said device comprising: machine readable storage memory hardware configured to store program instructions and data structures; one or more processors; program instructions stored on said storage memory hardware which, responsive to execution by the one or more processors, are configured to: associate a subset of the index address space with the node; maintain a contact list, which stores the index address space address and separate network address space address for each of a plurality of contacts, each of which is another node in said distributed indexing network, wherein said contact list comprises both direct contacts, as a minority of contacts in the contact list, and indirect contacts; attempt to communicate with each direct contact with a minimum frequency, to determine whether or not that direct contact is still a member of the distributed indexing network; respond to a determination that a given direct contact is no longer functioning as a member of the distributed indexing network by finding a new direct contact to replace that given direct contact; and replace the given direct contact that is no longer functioning as a member of the distributed indexing network in the node's contact list with the index address space address and separate network address space address associated with said found new direct contact; wherein the node is configured to respond to a search request for a given index address space address that does not fall in the subset of the index address space associated with the node by using a next node to send such a search request to an address on its contact list that is closest to the given index address space address, whether that address is a direct or indirect address, and wherein the node does not directly communicate with indirect contacts at a frequency greater than one tenth the minimal frequency with which it communicates with direct contacts effective to: determine whether or not that indirect contact is still a member of the distributed indexing network; and learn about changes in status of such indirect contacts through communications with direct contacts.