FAULT TOLERANT AND SCALABLE LOAD DISTRIBUTION OF RESOURCES
First Claim
Patent Images
1. A method for determining a server from a cluster of servers to handle a resource request, comprising:
- receiving a request for a resource on a server within the cluster of servers;
executing a distributed algorithm on the server receiving the request for the resource to determine a server that handles the resource;
wherein the distributed algorithm is also performed on each of the other servers within the cluster when one of the other servers receives the request for the resource;
wherein the distributed algorithm uses a list of logical servers and a mapping of the logical servers to the servers within the cluster that are active;
forwarding the request to the determined server when the resource is not handled by the server; and
responding to the request for the resource when the server receiving the request handles the resource.
2 Assignments
0 Petitions
Accused Products
Abstract
A resource is located on a server using a distributed resource algorithm that is executing on each server within a cluster of servers. A request for a resource is received at a server in the cluster. The server executes the distributed resource algorithm to determine the server that owns the requested resource. The distributed resource algorithm automatically adapts itself to servers being added or removed within the cluster and is directed at evenly distributing resources across the available servers within the cluster.
27 Citations
20 Claims
-
1. A method for determining a server from a cluster of servers to handle a resource request, comprising:
-
receiving a request for a resource on a server within the cluster of servers; executing a distributed algorithm on the server receiving the request for the resource to determine a server that handles the resource;
wherein the distributed algorithm is also performed on each of the other servers within the cluster when one of the other servers receives the request for the resource;
wherein the distributed algorithm uses a list of logical servers and a mapping of the logical servers to the servers within the cluster that are active;forwarding the request to the determined server when the resource is not handled by the server; and responding to the request for the resource when the server receiving the request handles the resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer-readable storage medium having computer-executable instructions for determining a server from a cluster of servers to handle a resource request, comprising:
-
receiving at a server within the cluster a request for a resource; on the server, executing a distributed algorithm to determine a server that handles the resource;
wherein the distributed algorithm is also performed on each of the other servers within the cluster in response to another request for the resource;
wherein the distributed algorithm uses a unique identifier that is associated with the resource, a list of logical servers and a mapping of the logical servers to the servers within the cluster that are active;
wherein the resource is assigned a sequence indicating a priority among the servers within the cluster to handle the request;forwarding the request to the determined server when the resource is not handled by the server; and responding to the request for the resource when the server receiving the request owns the resource. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A system for determining a server from a cluster of servers to handle a resource request, comprising:
-
a network connection that is configured to connect to the IP network; a processor and a computer-readable medium; an operating environment stored on the computer-readable medium and executing on the processor; and a resource manager operating under the control of the operating environment and operative to; receive a request for a resource; execute a distributed algorithm to determine the server within the cluster that handles the resource;
wherein the distributed algorithm is also performed on each of the other servers within the cluster in response to another request for the resource;
wherein the distributed algorithm uses a unique identifier that is associated with the resource, a list of logical servers and a mapping of the logical servers to the servers within the cluster that are active;
wherein the resource is assigned a sequence indicating a priority among the servers within the cluster to handle the request;forward the request to the determined server when the resource is not handled by the server receiving the request; and respond to the request for the resource when the server receiving the request owns the resource. - View Dependent Claims (17, 18, 19, 20)
-
Specification