Method and system for managing data records on a computer network
First Claim
Patent Images
1. A method for administering a plurality of data records on a computer network, each data record of the plurality of data records comprising information associated with a name of a plurality of names, the computer network comprising a plurality of servers, the method comprising:
- providing, to each of a subset of the plurality of servers, a copy of a data record of the plurality of data records;
organizing the servers of the subset into a tree for disseminating updates to the data record, wherein one of the servers of the subset maintains a master copy of the data record and acts as the root of the tree, wherein the tree comprises a plurality of edges, each edge defining an update path between a pair of servers of the subset, the update path being usable to transmit an update of the data record from one server of the pair of servers to the other server of the pair of servers;
determining whether a first server of the subset is receiving an excessive number of requests for information from the data record;
based on the determining step;
identifying a second server of the plurality of servers that does not belong to the subset;
transmitting a copy of the data record from the first server to the second server so as to add the second server to the subset; and
adding a new edge to the tree, the new edge defining an new update path between the second server and the first server, the new update path being usable to transmit updates of the data record from the first server to the second server.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for managing data records on a computer network is described, in which copies of data records are distributed among various servers in a hierarchical tree structure, and in which servers that experience an excessive number of requests for a particular data record transmit replicas of that data record to other servers to distribute the load.
93 Citations
65 Claims
-
1. A method for administering a plurality of data records on a computer network, each data record of the plurality of data records comprising information associated with a name of a plurality of names, the computer network comprising a plurality of servers, the method comprising:
-
providing, to each of a subset of the plurality of servers, a copy of a data record of the plurality of data records;
organizing the servers of the subset into a tree for disseminating updates to the data record, wherein one of the servers of the subset maintains a master copy of the data record and acts as the root of the tree, wherein the tree comprises a plurality of edges, each edge defining an update path between a pair of servers of the subset, the update path being usable to transmit an update of the data record from one server of the pair of servers to the other server of the pair of servers;
determining whether a first server of the subset is receiving an excessive number of requests for information from the data record;
based on the determining step;
identifying a second server of the plurality of servers that does not belong to the subset;
transmitting a copy of the data record from the first server to the second server so as to add the second server to the subset; and
adding a new edge to the tree, the new edge defining an new update path between the second server and the first server, the new update path being usable to transmit updates of the data record from the first server to the second server. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a computer network, a method for managing a data record for the computer network, the method comprising:
-
organizing a plurality of servers of the computer network into a tree, wherein one of the plurality of servers maintains a master copy of the data record and represents the root of the tree, wherein each of the other servers of the plurality of servers maintains a copy of the data record, wherein the plurality of servers transmits updates to one another based on the tree, the tree comprising a plurality of edges, each edge defining a path for updates to the data record between a pair of the plurality of servers;
determining whether a first server is receiving an excessive number of requests of information contained in the data record, the first server being in the plurality of servers that comprise the tree;
based on the determining step, transmitting an additional copy of the data record to a second server that did not previously have a copy of the data record, thereby adding the second server to the tree; and
at the second sever, servicing a request for a lookup of a network name using the received copy of the data record. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for administering a name service on a computer network, the computer network having a plurality of name servers, each name server having a node ID number, the method comprising:
-
organizing network names of the computer network into a plurality of directories according to the subject matter to which the network names relate;
at a first name server of the plurality of name servers;
receiving a request for a network name to be translated into a network address, wherein the request includes a key number, the key number being derived from the name of a directory of the plurality of directories, the directory storing information regarding the network address, wherein the network address corresponds to a node of the computer network that maintains information concerning the subject matter of the directory;
comparing the key number to the node ID number of the first name server;
determining whether there is a second name server whose node ID number is closer to the key number than the node ID number of the first name server; and
based on the determining step, forwarding the request to the second name server. - View Dependent Claims (22, 23)
-
-
24. In a computer network comprising a plurality of name servers that send and receive data to and from one another according to an overlay routing architecture that is superimposed on an IP routing architecture, a method of administering a name service in which network names of the computer network are organized into directories, a copy of each directory being stored on at least one of the plurality of name servers, a subset of the plurality of name servers being organized into a tree according to which ones maintain a copy of a particular directory, wherein one of the name servers of the tree maintains a master copy of the particular directory, the method comprising:
at a first name server of the name servers of the tree;
receiving a request for a lookup of a network name via the overlay routing architecture;
determining whether a copy of a directory that contains the network name is stored on the first name server;
if a copy of the directory is determined not to be stored on the first name server, forwarding the request to another name server via the overlay routing architecture, wherein the name server to which the request is sent may or may not be a part of the tree;
determining whether any of the directories maintained by the first name server contains a network name that is the subject of an excessive number of lookup requests; and
if it is determined that a directory maintained by the first name server contains a network name that is the subject of an excessive number of lookup requests, transmitting a copy of the directory to another name server in the tree according to the overlay routing architecture, wherein the name server to which the copy is sent was not previously a part of the tree but, upon receipt of the copy, becomes a part of the tree. - View Dependent Claims (25)
-
26. A system for administering a name service on a computer network, the system comprising:
-
a plurality of name servers, wherein a subset of the plurality of name servers is organized into a tree having a plurality of edges, wherein adjacent name servers of the tree share common edges, each name server having a copy of a data record stored thereon, wherein one of the name servers of the tree maintains a master copy of the data record and represents the root of the tree, the data record comprising information relating to a network name, each name server of the tree executing one or more programs for receiving, from other name servers of the plurality of name servers, requests for information relating to network names, each name server of the tree executing one or more programs for detecting whether requests for information relating to a particular network name and which is stored in the data record have exceeded a threshold rate, each name server of the tree comprising;
means for determining the identity of a name server of the plurality of name servers that is to be added to the tree, and to which a copy of the particular directory will be sent based on results obtained by the one or more programs for detecting whether the requests for information have exceeded a threshold rate; and
means for obtaining the network address of a name server of the plurality of name servers to which a received request should be forwarded in the event that the name server that receives the request does not have a record containing the requested information, wherein the name server to which the received request should be forwarded may or may not be part of the tree. - View Dependent Claims (27, 28, 29, 30, 31)
-
-
32. A method for administering a name service on a computer network, the computer network having a plurality of name servers, each name server having a node ID number, the method comprising:
-
organizing a plurality of network names of the name service into a plurality of directories, each network name corresponding to one or more computers on the network, each of the one or more computers maintaining information regarding a particular topic, wherein the network name corresponding to the one or more computers falls under a directory for the particular topic;
at a first name server of the plurality of name servers;
receiving, from a client computer, a request for a translation of a network name to a network address, wherein the request includes a key number that is derived from the name of a directory in which the network address is maintained by the name service;
passing the request to a second name server whose node ID is closer to the key number than the first name server'"'"'s node ID;
determining the amount of time that elapses between the execution of the passing step and the first name server receiving a response to the request;
comparing the elapsed amount of time to a threshold level; and
if the elapsed amount of time exceeds the threshold level, requesting a copy of the directory from the name service. - View Dependent Claims (33, 34)
-
-
35. A method for administering a name service on a computer network, the computer network having a plurality of name servers, each name server having a node ID number, the method comprising:
-
organizing network names of the computer network into plurality of data records according to the subject matter to which the network names relate;
at a first name server of the plurality of name servers;
receiving a request for a network name to be translated into a value, wherein the request includes a key number, the key number being derived from the name of data record of the plurality of data records, the value being storied in the data record, wherein the value represents a property of a node of the computer network, wherein the node maintains information regarding the subject matter to which the network names of the data record relate;
comparing the key number to the node ID number of the first name server;
determining whether there is a second name server whose node ID number is closer, either in terms of value or in terms of the number of shared digits, to the key number than the node ID number of the first name server; and
based on the determining step, forwarding the request to the second name server. - View Dependent Claims (36, 37)
-
-
38. In a computer network, a method for managing a data record for the computer network, the method comprising:
-
organizing a plurality of servers of the computer network into a tree, wherein one of the plurality of servers maintains a master copy of the data record and represents the root of the tree, wherein each of the other servers of the plurality of servers maintains a copy of the data record, wherein the plurality of servers transmits updates to one another based an the tree, the tree comprising a plurality of edges, each edge defining a path for updates to the data record between a pair of the plurality of servers;
determining whether a first server is receiving an excessive number of requests for information contained in the data record, the first server being in the plurality of servers that comprise the tree; and
based on the determining step, transmitting an additional copy of the data record to a second server that did not previously have a copy of the data record, thereby adding the second server to the tree;
wherein the data record is a directory that includes a plurality of network name records, each network name record comprising information associated with a name of a node on the network. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. In a computer network, a method for managing a data record for the computer network, the method comprising:
-
organizing a plurality of servers of the computer network into a tree, wherein the plurality of servers is a subset of all of the servers of the network, wherein each server of the network has a node ID, wherein one of the plurality of servers maintains a master copy of the data record and represents the root of the tree, wherein each of the other servers of the plurality of servers maintains a copy of the data record, wherein the plurality of servers transmits updates to one another based on the tree, the tree comprising a plurality of edges, each edge defining a path for updates to the data record between a pair of the plurality of servers;
determining whether a first server is receiving an excessive number of requests for information contained in the data record, the first server being in the plurality of servers that comprise the tree;
based on the determining step, transmitting an additional copy of the data record to a second server that did not previously have a copy of the data record, thereby adding the second server to the tree;
at a server of the plurality of servers, receiving a request for information contained in the data record;
forwarding the request to another server of the network along with a key number, the key number being mathematically derived from the name of the record that is the subject of the request;
at each server of the network that receives a forwarded request, determining whether there is at least one other server whose node ID is closer in value to the key number than the node ID of the server that received the request; and
if it is determined that there is at least one other server whose node ID is closer in value to the key number than the node ID of the server that received the request, transmitting the request to the other server. - View Dependent Claims (49, 50, 51, 52, 53, 54, 55, 56)
-
-
57. In a computer network, a method for managing a data record for the computer network, the method comprising:
-
organizing a plurality of servers of the computer network into a tree, wherein one of the plurality of servers maintains a master copy of the data record and represents the root of the tree, wherein each of the other servers of the plurality of servers maintains a copy of the data record, wherein the plurality of servers transmits updates to one another based on the tree, the tree comprising a plurality of edges, each edge defining a path for updates to the data record between a pair of the plurality of servers;
determining whether a first server is receiving an excessive number of requests for information contained in the data record, the first server being in the plurality of servers that comprise the tree;
based on the determining step, transmitting an additional copy of the data record to a second server that did not previously have a copy of the data record, thereby adding the second server to the tree;
at the first server;
receiving notification of a change in the record; and
transmitting information regarding the change from the first server to the second server; and
at the second server, updating the additional copy of the record to reflect the information received from the first server. - View Dependent Claims (58, 59, 60, 61, 62, 63, 64, 65)
-
Specification