Transparent request routing for a partitioned application service
First Claim
Patent Images
1. A method performed at a first server for providing access to a partitioned resource comprising:
- (a) receiving a request at the first server from a client via a network connection, the request being a request by the client for access to at least a portion of the resource;
(b) accessing a routing table to identify which one of a plurality of equivalent servers in a server group is a responsible equivalent server for the resource, the routing table indicating that a first portion of the resource resides on a first one of the equivalent servers and that a second portion of the resource resides on a second one of the equivalent servers; and
(c) if the routing table indicates the responsible equivalent server for the resource is not the first server at which the request was received from the client, then;
(i) maintaining the network connection from the first server to the client;
(ii) forwarding the request for access to the resource to the responsible equivalent server for the requested portion;
(iii) receiving the requested portion of the resource from the responsible equivalent server; and
(iv) returning the requested portion of the resource to the client from the first 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
19 Claims
-
1. A method performed at a first server for providing access to a partitioned resource comprising:
-
(a) receiving a request at the first server from a client via a network connection, the request being a request by the client for access to at least a portion of the resource; (b) accessing a routing table to identify which one of a plurality of equivalent servers in a server group is a responsible equivalent server for the resource, the routing table indicating that a first portion of the resource resides on a first one of the equivalent servers and that a second portion of the resource resides on a second one of the equivalent servers; and (c) if the routing table indicates the responsible equivalent server for the resource is not the first server at which the request was received from the client, then; (i) maintaining the network connection from the first server to the client; (ii) forwarding the request for access to the resource to the responsible equivalent server for the requested portion; (iii) receiving the requested portion of the resource from the responsible equivalent server; and (iv) returning the requested portion of the resource to the client from the first server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A first server apparatus for providing access to a partitioned resource, comprising:
-
a routing table storage device, for storing a routing table having information indicating which ones of a plurality of equivalent servers are each responsible for one or more portions of the partitioned resource, such the routing table storage device indicates that a first portion of the partitioned resource resides on a first equivalent server and a second portion of the partitioned resource resides on a second equivalent server; a resource portion storage device; a communication interface providing a connection to a client and connections to the plurality of equivalent servers; and a server processor and instruction memory, for storing and executing processor instructions to access the routing table storage device and operate the communication interface to further; receive a request for the partitioned resource from the client, maintain the connection between the first server and the client while the partitioned resource request is processed; forward the request to one of the equivalent servers on which at least a portion of the requested resource resides, as indicated by the routing table storage device receive a portion of the requested resource from a corresponding one of the plurality of equivalent servers; and forward to the client the portion of the requested resource received from the corresponding one of the plurality of equivalent servers. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for transparent request routing for a partitioned storage resource, the method comprising:
-
establishing a network connection between a client and a selected one of a plurality of equivalent servers in a server group, the equivalent server so connected being a connected server, the server group, including the connected server, together making available to the client, the partitioned storage resource which is partitioned over at least two of the equivalent servers, such that a first portion of the partitioned storage resource resides on a first equivalent server and a second portion of the partitioned storage resource resides on a second equivalent server; none of the equivalent servers providing information to the client as to the partitioning of storage resources over the plurality of equivalent servers; and while maintaining the network connection between the client and the connected server, further comprising the steps of; 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; accessing 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, which portions of the partitioned storage resource reside on which equivalent servers; 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 one of the plurality of equivalent servers via the connected server.
-
Specification