Systems, methods and programming for routing and indexing globally addressable objects and associated business models
First Claim
Patent Images
1. A node in a distributed indexing network in which each node has an address in an index address space and in a separate network address space, said node comprising:
- machine readable memory for storing program instructions and data structures;
one or more processors for executing program instructions stored in said memory;
program instructions stored in said memory for;
associating a subset of the index address space with the node;
maintaining a contact list, which stores the index space and network address for each of a plurality of contacts, each of which is another node in said indexing network;
treating a minority of said contact list as direct contacts and the rest of said contacts as indirect contacts;
attempting to communicate with each direct contact with a minimum frequency, to determine whether or not that direct contact is still a member of the network; and
responding to a determination that a given direct contact is no longer functioning as a member of the network by finding a new direct contact to replace that given contact and replacing the replaced direct contact in the node'"'"'s contact list with the index and network address of the replacement contact;
wherein the node responds to a search request for a given index address that does not fall in the subset of the index address space associated with the node by using, as the next node to send such a search request to, the address on its contact list that is closest to the given address, whether that address is a direct or indirect address.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods, apparatus, and programming recorded in machine readable memory are provided for the index, search and retrieval of objects on a global network. This inventive system embeds a distributed index in a routing layer to enable fast search. The method provides dynamic insertion, lookup, retrieval, and deletion of participating nodes, objects and associated metadata in a completely decentralized fashion. Nodes can dynamically join and leave the network. This infrastructure can be applied to content networks for publishing, searching, downloading, and streaming.
-
Citations
23 Claims
-
1. A node in a distributed indexing network in which each node has an address in an index address space and in a separate network address space, said node comprising:
-
machine readable memory for storing program instructions and data structures;
one or more processors for executing program instructions stored in said memory;
program instructions stored in said memory for;
associating a subset of the index address space with the node;
maintaining a contact list, which stores the index space and network address for each of a plurality of contacts, each of which is another node in said indexing network;
treating a minority of said contact list as direct contacts and the rest of said contacts as indirect contacts;
attempting to communicate with each direct contact with a minimum frequency, to determine whether or not that direct contact is still a member of the network; and
responding to a determination that a given direct contact is no longer functioning as a member of the network by finding a new direct contact to replace that given contact and replacing the replaced direct contact in the node'"'"'s contact list with the index and network address of the replacement contact;
wherein the node responds to a search request for a given index address that does not fall in the subset of the index address space associated with the node by using, as the next node to send such a search request to, the address on its contact list that is closest to the given address, whether that address is a direct or indirect address. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A distributed indexing network in which each node has an address in an index address space and in an independent network address space, said network comprising:
-
a plurality of nodes each of which includes;
machine readable memory for storing program instructions and data structures;
one or more processors for executing program instructions stored in said memory;
program instructions stored in said memory for;
associating a subset of the index address space with the node;
storing on said node indexed information having an associated index address value within the node'"'"'s associated subset of the index address space; and
responding to a request for information associated with a given index value by accessing information, if any, that has been stored on the node in association with that index value;
wherein all or a portion of the subset of the index address space associated with each of a plurality of nodes overlaps, so that each node in said plurality of nodes stores indexed information for a similar set of index address values. - View Dependent Claims (7, 8)
-
-
9. A node in a distributed indexing network in which each node has an address in an index address space and in a separate network address space, said node comprising:
-
machine readable memory for storing program instructions and data structures;
one or more processors for executing program instructions stored in said memory;
program instructions stored in said memory for;
associating a subset of the index address space with the node;
storing on said node indexed information having an associated index address value within the node'"'"'s associated subset of the index address space;
responding to a request for information associated with a given index value by accessing information, if any, that has been stored on the node in association with the given index value;
defining a set of the network'"'"'s nodes, including the node, that form a logical node, comprised of nodes that are all associated with the same subset of the index address space and store substantially the same indexed information;
communicating with other nodes in said logical node to obtain any new information that such other nodes have stored that is not yet stored on the node and that has an associated index address value within the logical node'"'"'s associated subset of the index address space; and
storing a copy of said new information on the node, so that the node, if it stays in the network long enough will obtain a copy of substantially all such information that has been stored by other nodes in the logical node over a given period of time. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A node in a distributed indexing network in which each node has an address in an index address space and in a separate network address space, said node comprising:
-
machine readable memory for storing program instructions and data structures;
one or more processors for executing program instructions stored in said memory;
program instructions stored in said memory for;
associating a subset of the index address space with the node;
storing on said node a keyword entry for each of one or more keywords having an index value corresponding to the node'"'"'s associated subset of the index address space, where each such keyword entry associated with a given keyword stores information relating to one or more objects associated with the given keyword; and
responding to a request for information associated with a keyword index value for which the node stores a corresponding keyword entry by accessing information stored on the node in that keyword entry. - View Dependent Claims (19)
-
- 20. A node as in claim 20 wherein a keyword entry associated with a given keyword contains lists of one or more files associated with the given keyword.
-
23. A node in a distributed indexing network in which each node has an address in an index address space and in a separate network address space, said node comprising:
-
machine readable memory for storing program instructions and data structures;
one or more processors for executing program instructions stored in said memory;
program instructions stored in said memory for;
associating a subset of the index address space with the node;
storing on said node a file entry for each of one or more file'"'"'s having an index corresponding to the node'"'"'s associated subset of the index address space, where each such file entry stores information relating its associated file and information on each of a set of one or more copies of all or a portion of the entry'"'"'s associated file, which copies can be stored on one or more different nodes of said network, including the network addresses of the node on which each such copy is stored; and
receiving a request for information associated with a file having a given index value, which includes an indication of the network location of the node that has generated such a request;
responding to such a file-by-index request, if the index value of the requested file falls within the subset of the index address space associated with the node, by sending to the node that sent the request information on a set of one or more copies of all or part of the file listed in the requested file'"'"'s entry, including the network address of node'"'"'s storing those copies;
wherein said selecting on which file copies to send information to the requesting node includes making said selections as a function of the apparent appropriateness of the network location at which a given file copy is stored given the network location of the requesting node.
-
Specification