Client load distribution
First Claim
Patent Images
1. A system for managing a set of connections between a plurality of clients and a plurality of storage servers based on system load, comprising:
- a plurality of storage servers having a set of resources partitioned thereon, each of the storage servers in the plurality further comprising;
at least one connection of the set of connections being a client communication connection from the storage server to at least one client, the at least one connection further requesting a given resource of the set of resources;
a storage device for providing at least one volume of storage partitioned across the plurality of storage servers, such that a first portion of the given resource is located on a storage device associated with a first storage server of the plurality of storage servers, and such that a second portion of the given resource is located on a storage device associated with a second storage server of the plurality of storage servers;
a load monitor process connected to communicate with other load monitor processes on at least one other storage server of the plurality of storage servers for generating a measure of overall system load, and for generating a measure of client load on each of the plurality of storage servers that have at least one portion of the given resource; and
a client connection distribution process, responsive to the load monitor process, for repartitioning the set of connections and redistributing client load by disconnecting the at least one client communication connection from the first storage server and establishing a new connection from the at least one client communication connection to the second storage server based on a measurement of overall system efficiency determined from at least one of the measurement of overall system load, a category of the given resource requested, historical data available to the load monitor process in the plurality of storage servers relating to a previous access pattern from at least one storage server, policy parameters established for the plurality of servers, and the client load on each of the plurality of storage servers.
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.
103 Citations
25 Claims
-
1. A system for managing a set of connections between a plurality of clients and a plurality of storage servers based on system load, comprising:
-
a plurality of storage servers having a set of resources partitioned thereon, each of the storage servers in the plurality further comprising; at least one connection of the set of connections being a client communication connection from the storage server to at least one client, the at least one connection further requesting a given resource of the set of resources; a storage device for providing at least one volume of storage partitioned across the plurality of storage servers, such that a first portion of the given resource is located on a storage device associated with a first storage server of the plurality of storage servers, and such that a second portion of the given resource is located on a storage device associated with a second storage server of the plurality of storage servers; a load monitor process connected to communicate with other load monitor processes on at least one other storage server of the plurality of storage servers for generating a measure of overall system load, and for generating a measure of client load on each of the plurality of storage servers that have at least one portion of the given resource; and a client connection distribution process, responsive to the load monitor process, for repartitioning the set of connections and redistributing client load by disconnecting the at least one client communication connection from the first storage server and establishing a new connection from the at least one client communication connection to the second storage server based on a measurement of overall system efficiency determined from at least one of the measurement of overall system load, a category of the given resource requested, historical data available to the load monitor process in the plurality of storage servers relating to a previous access pattern from at least one storage server, policy parameters established for the plurality of servers, and the client load on each of the plurality of storage servers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An information storage server apparatus comprising:
-
one or more client communication connections to a plurality of client devices; a server communication connection to at least one other storage server; a storage device for storing a portion of a partitioned resource thereon, such that a first portion of a partitioned resource is stored on the storage server, and such that other portions of the partitioned resource are stored on the one other storage server; a request handler, for receiving requests for access to the partitioned resource via at least one client communication connection, and determining which portions of the partitioned resource are stored on the storage device, and which portions of the partitioned resource are stored on the one other storage server; a load monitor, for; determining a local load placed on the storage server by the request handler; receiving information via the server communication connection concerning a load on the other server; and generating a measure of load based on at least one of a category of the given resource requested, historical data available to the load monitor process in the plurality of storage servers relating to a previous access pattern from at least one storage server, policy parameters established for the plurality of servers, and the client load on each of the plurality of storage servers from both the local load and the load on the other server; and a client load distributor, responsive to the load monitor, for closing a client communication connection to at least one client device and requesting the at least one storage server to open a new client communication connection to the at least one client device when the measure of load indicates the storage server is over utilized and overall system efficiency may be improved. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A method for handling information by providing a storage server comprising:
-
connecting to a plurality of client devices over one or more client communication connections; connecting to at least one other storage server over a server communication connection; storing a portion of a partitioned resource on a storage device local to the storage sever, such that a first portion of the partitioned resource is stored on the storage server, and such that at least one other portion of the partitioned resource is stored on the other storage server; receiving requests for access to the partitioned resource from at least one of the clients, and determining if portions of the requested partitioned resource are stored on the storage device, and determining if portions of the requested portioned resource are stored on the other storage server and, if at least one portion of the requested resource is stored on either the storage device or the other server, directing the request to be served by a selected one of the storage server or the other storage server; measuring a load by determining a local load placed on the storage server based on the requests for access to the partitioned resource; receiving information via the server communication connection concerning a load on the other server; and generating a load measure based on at least one of a category of the given resource requested, historical data available to the load monitor process in the plurality of storage servers relating to a previous access pattern from at least one storage server, policy parameters established for the plurality of servers, and the client load on each of the plurality of storage servers using both the local load and the load on the other server; and distributing client load by closing a client communication connection from one of the storage server or the other server to at least one client device, and requesting the other one of the storage server or the other server to open a new connection to the client device when the load measure indicates the storage server is over utilized and overall system efficiency may be improved. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A tangible, non-transitory, computer readable medium for storing computer executable instructions for providing a storage server function, with the computer executable instructions for:
-
connecting to a plurality of client devices over one or more client communication connections; connecting to at least one other storage server over a server communication connection; storing a portion of a partitioned resource on a storage device local to the storage sever, such that a first portion of the partitioned resource is stored on the storage server, and such that at least one other portion of the partitioned resource is stored on the other storage server; receiving requests for access to the partitioned resource from at least one of the clients, and determining if portions of the requested partitioned resource are stored on the storage device, and determining if portions of the requested portioned resource are stored on the other storage server and, if at least one portion of the requested resource is stored on either the storage device or the other server, directing the request to be served by a selected one of the storage server or the other storage server; measuring a load by determining a local load placed on the storage server based on the requests for access to the partitioned resource; receiving information via the server communication connection concerning a load on the other server; and generating a load measure based on at least one of a category of the given resource requested, historical data available to the load monitor process in the plurality of storage servers relating to a previous access pattern from at least one storage server, policy parameters established for the plurality of servers, and the client load on each of the plurality of storage servers using both the local load and the load on the other server; and distributing client load by closing a client communication connection from one of the storage server or the other server to at least one client device, and requesting the other one of the storage server or the other server to open a new connection to the client device when the load measure indicates the storage server is over utilized and overall system efficiency may be improved.
-
-
25. An information storage server apparatus comprising:
-
one or more network interfaces providing communication connections to a plurality of client devices and a server communication connection to a plurality of other storage servers; a storage device for storing a portion of a partitioned resource thereon, such that a first portion of a partitioned resource is only stored on the storage server, and such that a second portion of the partitioned resource is only stored on one of the plurality of other servers; opening an initial connection between one of the client devices and the storage server only if the storage server actually stores at least the first portion of the partitioned resource; a request handler, for receiving requests for access to the partitioned resource via at least one client device, and determining if portions of the partitioned resource are stored on the storage device, and if portions of the partitioned resource are stored on the other storage server; a load monitor, for; determining a local load placed on the storage server by the request handler; receiving information via the server communication connection concerning a load on the other server; and generating a measure of load based on at least one of a category of the given resource requested, historical data available to the load monitor process in the plurality of storage servers relating to a previous access pattern from at least one storage server, policy parameters established for the plurality of servers, and the client load on each of the plurality of storage servers from both the local load and the load on the other server; and
a client connection distributor, responsive to both the request handler and the load monitor, for closing a client communication connection from the storage server to the client device and requesting that one of the plurality of other storage servers open a new client communication connection to the at client device when the measure of load indicates the storage server is over utilized.
-
Specification