Systems and techniques for utilizing resource aware queues and/or service sharing in a multi-server environment
First Claim
1. A method for servicing requests in an environment having multiple application servers each having multiple queues to store at least indications of requests to be serviced by the application servers, wherein the queues have different priorities, the method comprising:
- determining, with one or more processors corresponding to the multiple application servers, a first utilization level for a first application server of the multiple application servers, wherein the first utilization level indicates utilization of one or more resources of the first application server;
maintaining, with the one or more processors, a directory of utilization information received from other application servers within the environment, wherein the directory includes a list of healthy application servers of the multiple application servers to which request can be sent when a selected server has reached a workload threshold, wherein the list of healthy application servers is based on utilization information from the multiple application servers;
pushing, by the first application server, information related to the first utilization level at random intervals to one or more randomly chosen application servers of the multiple application servers to at least update the list of healthy application servers;
receiving, from at least one of the multiple application servers, utilization information for one or more application servers of the multiple application servers to at least update the list of healthy application servers;
determining, with the one or more processors, the first application server is on the healthy list and should service one or more requests allocated to other application servers of the multiple application servers based on the first utilization level and utilization information received from the other application servers based, at least in part, on the directory of utilization information in the first application server;
pulling, based on the determining, by the first application server a request allocated to a second application server of the multiple application servers, wherein said pulling comprises identifying the pulled request by walking a queue of the multiple queues of the second application server in accordance with a modified first-in-first-out (FIFO) strategy, including skipping one or more requests in the queue having an associated predicted cost deemed too expensive to be processed by the first application server based on current conditions of the first application server; and
servicing, by the first application server, the pulled request.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and techniques for utilizing resource aware queues and/or service sharing in a multi-server environment. Requests directed to an application server are received into one or more queues in front of the application server. An acknowledgement of the requests is provided in response to the requests being received by the one or more queues. Metadata associated with the requests is utilized to manage the one or more queues. The requests from the one or more queues are processed based on the metadata.
193 Citations
17 Claims
-
1. A method for servicing requests in an environment having multiple application servers each having multiple queues to store at least indications of requests to be serviced by the application servers, wherein the queues have different priorities, the method comprising:
-
determining, with one or more processors corresponding to the multiple application servers, a first utilization level for a first application server of the multiple application servers, wherein the first utilization level indicates utilization of one or more resources of the first application server; maintaining, with the one or more processors, a directory of utilization information received from other application servers within the environment, wherein the directory includes a list of healthy application servers of the multiple application servers to which request can be sent when a selected server has reached a workload threshold, wherein the list of healthy application servers is based on utilization information from the multiple application servers; pushing, by the first application server, information related to the first utilization level at random intervals to one or more randomly chosen application servers of the multiple application servers to at least update the list of healthy application servers; receiving, from at least one of the multiple application servers, utilization information for one or more application servers of the multiple application servers to at least update the list of healthy application servers; determining, with the one or more processors, the first application server is on the healthy list and should service one or more requests allocated to other application servers of the multiple application servers based on the first utilization level and utilization information received from the other application servers based, at least in part, on the directory of utilization information in the first application server; pulling, based on the determining, by the first application server a request allocated to a second application server of the multiple application servers, wherein said pulling comprises identifying the pulled request by walking a queue of the multiple queues of the second application server in accordance with a modified first-in-first-out (FIFO) strategy, including skipping one or more requests in the queue having an associated predicted cost deemed too expensive to be processed by the first application server based on current conditions of the first application server; and servicing, by the first application server, the pulled request. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An article comprising a non-transitory computer-readable medium having stored thereon instructions that when executed by one or more processors are configurable to service requests in an environment having multiple application servers each having one or more queues to store at least indications of requests to be serviced by the application servers by:
-
determining, with one or more processors corresponding to the multiple application servers, a first utilization level for a first application server of the multiple application servers, wherein the first utilization level indicates utilization of one or more resources of the first application server; maintaining, with the one or more processors, a directory of utilization information received from other application servers within the environment, wherein the directory includes a list of healthy application servers of the multiple application servers to which request can be sent when a selected server has reached a workload threshold, wherein the list of healthy application servers is based on utilization information from the multiple application servers; pushing, by the first application server, information related to the first utilization level at random intervals to one or more randomly chosen application servers of the multiple application servers to at least update the list of healthy application servers; receiving, from at least one of the multiple application servers, utilization information for one or more application servers of the multiple application servers to at least update the list of healthy application servers; determining, with the one or more processors, the first application server is on the healthy list and should service one or more requests allocated to other application servers of the multiple application servers based on the first utilization level and utilization information received from the other application servers based, at least in part, on the directory of utilization information in the first application server; pulling, based on the determining, by the first application server a request allocated to a second application server of the multiple application servers, wherein said pulling comprises identifying the pulled request by walking a queue of the multiple queues of the second application server in accordance with a modified first-in-first-out (FIFO) strategy, including skipping one or more requests in the queue having an associated predicted cost deemed too expensive to be processed by the first application server based on current conditions of the first application server; and servicing, by the first application server, the pulled request. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A system comprising:
-
at least one memory device; one or more processors coupled with the at least one memory device, the one or more processors to determine a utilization level for a first application server of multiple application servers, to determine, with one or more processors corresponding to the multiple application servers, a first utilization level for a first application server of the multiple application servers, wherein the first utilization level indicates utilization of one or more resources of the first application server; maintain, with the one or more processors, a directory of utilization information received from other application servers of the multiple application servers within the environment, wherein the directory includes a list of healthy application servers of the multiple application servers to which request can be sent when a selected server has reached a workload threshold, wherein the list of healthy application servers is based on utilization information from the multiple application servers; push, by the first application server, information related to the first utilization level at random intervals to one or more randomly chosen application servers of the multiple application servers to at least update the list of healthy application servers; receive, from at least one of the multiple application servers, utilization information for one or more application servers of the multiple application servers to at least update the list of healthy application servers; determine, with the one or more processors, the first application server is on the healthy list and should service one or more requests allocated to other application servers of the multiple application servers based on the first utilization level and utilization information received from the other application servers based, at least in part, on the directory of utilization information in the first application server; pull, based on the determining, by the first application server a request allocated to a second application server of the multiple application servers, wherein the pulled request is identified by walking a queue of the multiple queues of the second application server in accordance with a modified first-in-first-out (FIFO) strategy, including skipping one or more requests in the queue having an associated predicted cost deemed too expensive to be processed by the first application server based on current conditions of the first application server; and service, by the first application server, the pulled request. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification