Transparent request routing for a partitioned application service
First Claim
Patent Images
1. A method for accessing a resource distributed over a plurality of equivalent servers in a server group, comprising:
- establishing a direct connection between a client and any one of the equivalent servers in the server group via a network, one of the equivalent servers so connected being a connected server, the plurality of equivalent servers together making available to the client, resources that are partitioned over a subset of, or all of, the plurality of equivalent servers, such that a first portion of a partitioned resource resides on a first equivalent server and a remaining portion of the partitioned resource resides on at least one second equivalent server; and
while maintaining the direct connection between the client and the connected server;
receiving at the connected server a client request for the resource;
accessing a routing table that i) resides on each of the plurality of equivalent servers, including the connected server, and that ii) identifies to each of the plurality of equivalent servers on which of the plurality of equivalent servers, including the connected server and any other equivalent servers, the requested resource resides;
based on the accessing, using the routing table to determine, at the connected server, on which of the plurality of equivalent servers, including the connected server, the requested resource resides; and
returning the requested resource to the client from an other server of the plurality of equivalent servers via the connected server, if the requested resource does not reside on the connected server.
15 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for providing an efficient partitioned resource server. In one embodiment, the partitioned resource server comprises a plurality of individual servers, and the individual servers appear to be equivalent to a client. Each of the individual servers may include a routing table that includes a reference for each resource that is maintained on the partitioned resource server. Requests from a client are processed as a function of the routing table to route the request to the individual server that maintains or has control over the resource of interest.
-
Citations
16 Claims
-
1. A method for accessing a resource distributed over a plurality of equivalent servers in a server group, comprising:
-
establishing a direct connection between a client and any one of the equivalent servers in the server group via a network, one of the equivalent servers so connected being a connected server, the plurality of equivalent servers together making available to the client, resources that are partitioned over a subset of, or all of, the plurality of equivalent servers, such that a first portion of a partitioned resource resides on a first equivalent server and a remaining portion of the partitioned resource resides on at least one second equivalent server; and while maintaining the direct connection between the client and the connected server; receiving at the connected server a client request for the resource; accessing a routing table that i) resides on each of the plurality of equivalent servers, including the connected server, and that ii) identifies to each of the plurality of equivalent servers on which of the plurality of equivalent servers, including the connected server and any other equivalent servers, the requested resource resides; based on the accessing, using the routing table to determine, at the connected server, on which of the plurality of equivalent servers, including the connected server, the requested resource resides; and returning the requested resource to the client from an other server of the plurality of equivalent servers via the connected server, if the requested resource does not reside on the connected server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 13, 14, 15)
-
-
9. A client-server architecture for accessing a distributed resource, comprising:
-
a plurality of equivalent servers in a server group connected to a network; a resource distributed over a subset of, or all of the plurality of equivalent servers, such that a first portion of the resource resides on a first equivalent server and a remaining portion of the resource resides on at least one second equivalent server, the plurality of equivalent servers together making available to a client the resource, each of the plurality of equivalent servers including a routing table that identifies to each of the plurality of equivalent servers the resource or a portion of the resource and a corresponding one server of the plurality of equivalent servers having control over the return of the resource or portion of the resource; wherein a client request for the resource received by one server is routed to any other server of the plurality of equivalent servers, including the one server that received the client request for the resource, based on which of the plurality of equivalent servers has control over the return of the resource or portion of the resource; and wherein the one server that received the client request for the resource responds to the client request for the resource by returning the resource or portion of the resource from the corresponding one server of the plurality of equivalent servers to the client via the one server that received the client request for the resource, if the resource does not reside on the one server that received the client request for the resource, while maintaining a direct connection with the client. - View Dependent Claims (10, 11)
-
-
12. A method for providing a client with access to resources distributed over a plurality of equivalent servers in a server group, comprising:
-
using the plurality of equivalent servers to together make available, to the client, resources that are distributed over a subset of, or all of, the plurality of equivalent servers; providing each of the plurality of equivalent servers with a reference table that contains a reference for each resource distributed across the plurality of equivalent servers, wherein the reference identifies a server having control over return of a respective resource, and wherein the reference table identifies to each of the plurality of equivalent servers on which of the plurality of equivalent servers resources are distributed; detecting at an equivalent server an incoming client request for access to a particular resource of the distributed resources, and while maintaining a direct network connection between the client and the equivalent server that detected the incoming client request; processing the detected incoming client request by querying the table to determine which of the plurality of equivalent servers, including the equivalent server that detected the incoming client request, has control over the return of the particular resource; and returning the particular resource to the client from the server having control over the return of the particular resource via the equivalent server that detected the incoming client request, if the particular resource does not reside on the equivalent server that detected the incoming client request.
-
-
16. A method for transparent request routing for a partitioned storage system, the method comprising:
-
establishing a direct connection between a client and any one of the equivalent servers in a server group via a network, one of the equivalent servers so connected being a connected server, the plurality of equivalent servers, including the connected server, together making available to the client, partitioned storage resources that are portioned over a subset of, or all of the plurality of equivalent servers, such that a first portion of a partitioned storage resource resides on a first equivalent server and a remaining portion of the partitioned storage resource resides on at least one second equivalent server, and the client being unaware of storage resources being portioned over a subset of, or all of the plurality of equivalent servers; and while maintaining the direct connection between the client and the connected server, further comprising; at the connected server, in response to each indication of a client requesting a partitioned storage resource, routing each client request to at least two equivalent servers on which portions of the partitioned storage resource reside, the at least two equivalent servers to which each client request is routed being any one of the plurality of equivalent servers, including the connected server; the routing using a routing table that;
i) resides on each of the plurality of equivalent servers, including the connected server; and
ii) identifies to each of the plurality of equivalent servers on which of the plurality of equivalent servers, including the connected server and any other equivalent servers, portions of the partitioned storage resource reside; andin an event of a portion of the partitioned storage resource does not reside on the connected server, returning the portion of the partitioned storage resource to the client from an other server of the plurality of equivalent servers via the connected server.
-
Specification