Cooperative fault tolerance and load balancing
First Claim
1. A method implemented at a client device, comprising:
- creating, at a client, requests on behalf of an entity;
for each request;
accessing, at the client, a homing cache storing an assignment list for the entity that specifies one or more servers for the entity;
determining, from the assignment list, the entity'"'"'s current home server;
sending the request to the current home server; and
determining whether there is failure of the current home server for the request;
for each request for which there is a determined failure of the current home server;
selecting, from the assignment list, a next listed server as the current home server for the entity;
attaching, to the request, metadata describing the prior current home server as a failed server; and
sending the request with the attached metadata to the current home server.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for cooperative fault tolerance and load balancing. In one aspect, a method includes receiving a request from an entity wherein the request includes metadata specifying a plurality of non-responsive servers to which the entity sent the request but that could not process the request; determining that the data processing apparatus is not a current home server for the entity based on information cached in the data processing apparatus, wherein the current home server is a server within a plurality of preferred servers that processes requests for the entity and, in response thereto: assigning the data processing apparatus as the current home server so that the entity will send subsequent requests to the data processing apparatus for processing; and sending a response to the entity.
-
Citations
12 Claims
-
1. A method implemented at a client device, comprising:
-
creating, at a client, requests on behalf of an entity; for each request; accessing, at the client, a homing cache storing an assignment list for the entity that specifies one or more servers for the entity; determining, from the assignment list, the entity'"'"'s current home server; sending the request to the current home server; and determining whether there is failure of the current home server for the request; for each request for which there is a determined failure of the current home server; selecting, from the assignment list, a next listed server as the current home server for the entity; attaching, to the request, metadata describing the prior current home server as a failed server; and sending the request with the attached metadata to the current home server. - View Dependent Claims (2, 3, 4)
-
-
5. A client device, comprising:
-
a hardware processor; and a non-transitory computer-readable medium coupled to the processor and having instructions stored thereon, which, when executed by the processor, cause the processor to perform operations comprising; creating, at a client, requests on behalf of an entity; for each request; accessing, at the client, a homing cache storing an assignment list for the entity that specifies one or more servers for the entity; determining, from the assignment list, the entity'"'"'s current home server; sending the request to the current home server; and determining whether there is failure of the current home server for the request; for each request for which there is a determined failure of the current home server; selecting, from the assignment list, a next listed server as the current home server for the entity; attaching, to the request, metadata describing the prior current home server as a failed server; and sending the request with the attached metadata to the current home server. - View Dependent Claims (6, 7, 8)
-
-
9. A non-transitory computer-readable medium having instructions stored thereon, which, when executed by a processor in a server, cause the processor to perform operations comprising:
-
creating, at a client, requests on behalf of an entity; for each request; accessing, at the client, a homing cache storing an assignment list for the entity that specifies one or more servers for the entity; determining, from the assignment list, the entity'"'"'s current home server; sending the request to the current home server; and determining whether there is failure of the current home server for the request; for each request for which there is a determined failure of the current home server; selecting, from the assignment list, a next listed server as the current home server for the entity; attaching, to the request, metadata describing the prior current home server as a failed server; and sending the request with the attached metadata to the current home server. - View Dependent Claims (10, 11, 12)
-
Specification