Method and apparatus for distributing requests among a plurality of resources
First Claim
Patent Images
1. An apparatus for querying one of a plurality of servers, comprising:
- an interface for receiving a query;
distance logic for determining the distance of each of the plurality of servers and identifying a subset of the plurality of servers to be an acceptable distance from the apparatus;
a router in communication with the interface for choosing a first node on a virtual network of nodes and for generating at least one route from the first node in the virtual network of nodes to another node in the virtual network of nodes in response to the query;
an allocator in communication with the router for allocating each of the nodes on the route in the virtual network to a respective one of the subset of the plurality of servers; and
an output in communication with the allocator for requesting data from the respective one of the plurality of servers mapped to the first node.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention relates to a method and apparatus for requesting data from one of a plurality of servers. A virtual network of nodes is generated in response to a data request. A first node on the virtual network of nodes is chosen randomly, and a path generated from the first node to the root on the virtual network. At least one node on the path is mapped to a respective one of the plurality of servers and data is requested from a server. The node may be mapped to the server using the method and apparatus for distributing a request to one of a plurality of resources of the present invention.
147 Citations
50 Claims
-
1. An apparatus for querying one of a plurality of servers, comprising:
-
an interface for receiving a query;
distance logic for determining the distance of each of the plurality of servers and identifying a subset of the plurality of servers to be an acceptable distance from the apparatus;
a router in communication with the interface for choosing a first node on a virtual network of nodes and for generating at least one route from the first node in the virtual network of nodes to another node in the virtual network of nodes in response to the query;
an allocator in communication with the router for allocating each of the nodes on the route in the virtual network to a respective one of the subset of the plurality of servers; and
an output in communication with the allocator for requesting data from the respective one of the plurality of servers mapped to the first node. - 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. A method for querying one of a plurality of servers, the method comprising the steps of:
-
(a) receiving a query;
(b) determining a distance for each of the plurality of servers;
(c) identifying a subset of the plurality of servers with an acceptable distance;
(d) generating a virtual network of nodes;
(e) choosing a first node on the virtual network;
(f) generating at least one route of nodes in the virtual network from the first node to another node in response to the query; and
(g) allocating nodes on the route in the virtual network to a respective one of the subset of the plurality of servers. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
i. identifying a subset of the plurality of servers that are each a distance less than a predetermined distance value;
ii. determining whether the identified subset would result in an acceptable ratio of servers to clients; and
iii. repeating steps (i) and (ii) with an increased predetermined distance value if the ratio is not acceptable.
-
-
35. The method of claim 32, wherein the identifying step (c) further comprises:
-
i. identifying a subset of the plurality of servers that are each a distance less than a predetermined distance value;
ii. determining whether the identified subset would result in an acceptable ratio of servers to clients; and
iii. identifying a subset that includes all of the plurality of servers if the ratio is not acceptable.
-
-
36. The method of claim 24, wherein the distance is determined as a function of network topology.
-
37. The method of claim 36, wherein the distance is determined as a function of at least one of capacity, bandwidth, throughput, load, and location.
-
38. The method of claim 24, wherein the generating step (d) comprises generating a virtual network of nodes having a number of nodes equal to the number of the plurality of servers.
-
39. The method of claim 38, wherein the generating step (d) comprises generating a virtual network of nodes having a number of nodes equal to the number of servers in the subset of the plurality of servers.
-
40. The method of claim 24, wherein the receiving step (a) further comprises receiving the query from a user.
-
41. The method of claim 24, wherein the receiving step (a) further comprises receiving the query from a computer.
-
42. The method of claim 24, wherein the determining step (b) further comprises determining the distance at least in part as a function of a number of network hops.
-
43. The method of claim 24 further comprising the step of transmitting the query from a client to the one of the plurality of servers allocated to the first node on the virtual network of nodes.
-
44. The method of claim 24, wherein the generating step (d) comprises generating a virtual network of nodes structured as a tree structure.
-
45. The method of claim 24, wherein the generating step (d) comprises generating a virtual network of nodes structured as a circle structure having a center node located inside the circle structure as a root node, and wherein a virtual network route comprises a first node on the perimeter of the circle through next nodes along the perimeter of the circle to the root node.
-
46. The method of claim 24, wherein the choosing step (e) comprises randomly choosing a first node on the virtual network.
-
47. The method of claim 24, wherein the choosing step (e) comprises selecting a first node from a subset of a plurality of nodes determined by the identity of a client.
-
48. The method of claim 24, wherein the choosing step (e) comprises selecting a first node from a subset of a plurality of nodes based on the query.
-
49. The method of claim 24, wherein the allocating step (g) comprises randomly allocating nodes in the virtual network to the plurality of servers.
-
50. The method of claim 24, wherein the allocating step (g) comprises allocating nodes using consistent hashing to consistently allocate nodes on the route to a respective one of the subset of the plurality of servers.
Specification