Prioritized throttling in a multiusage environment
First Claim
Patent Images
1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
- applying one or more prioritization criteria to assign a priority ranking to each of a plurality of server processes being executed by a backend server;
quantifying a utilization of the backend server by a plurality of server demands, the plurality of server demands comprising the plurality of server processes being executed by the backend server;
first determining that the quantified utilization of the backend server has reached or exceeded one or more determined limits on backend utilization;
throttling, in response to the first determining, at least a lowest priority server process of the plurality of server processes based on a first throttling parameter of one or more throttling parameters, wherein the throttling comprises allocating a first nonzero amount of one or more resources of the backend server to the lowest priority server process, wherein the first nonzero amount is smaller than a first amount of the one or more resources allocated to the lowest priority server process before throttling, and wherein the first throttling parameter is based on a utilization metric of the backend server with the lowest priority server process comprising a longest duration of utilization of the backend server;
assigning, in response to the throttling of at least the lowest priority server process, a different priority ranking to each of the plurality of server processes;
second determining, in response to the throttling of at least the lowest priority server process, whether a current utilization of the backend server is still at or above the one or more determined limits on backend utilization, wherein the different priority ranking is assigned based on whether a server process of the plurality of server processes has been throttled within a certain time period prior to the second determining; and
throttling, in response to the second determining and when the current utilization of the backend server is still at or above the one or more determined limits on backend utilization after the second determining, a next to lowest priority server process of the plurality of server processes by allocating a second nonzero amount of the one or more resources to the next to lowest priority server process, the throttling of the next to lowest priority server process based on a second throttling parameter of the one or more throttling parameters, wherein the second nonzero amount is smaller than a second amount of the one or more resources allocated to the next to lowest priority server process before throttling, wherein the next to lowest priority server process is determined based on the different priority ranking assigned to each of the plurality of server processes.
2 Assignments
0 Petitions
Accused Products
Abstract
Prioritization criteria can be applied to assign a priority ranking to server processes executed by a backend server, and a utilization of the backend server by server demands can be quantified. Upon determining that the quantified utilization of the backend server has reached or exceeded one or more determined limits on backend utilization, at least a lowest priority server process can be throttled based on one or more throttling parameters.
-
Citations
20 Claims
-
1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
-
applying one or more prioritization criteria to assign a priority ranking to each of a plurality of server processes being executed by a backend server; quantifying a utilization of the backend server by a plurality of server demands, the plurality of server demands comprising the plurality of server processes being executed by the backend server; first determining that the quantified utilization of the backend server has reached or exceeded one or more determined limits on backend utilization; throttling, in response to the first determining, at least a lowest priority server process of the plurality of server processes based on a first throttling parameter of one or more throttling parameters, wherein the throttling comprises allocating a first nonzero amount of one or more resources of the backend server to the lowest priority server process, wherein the first nonzero amount is smaller than a first amount of the one or more resources allocated to the lowest priority server process before throttling, and wherein the first throttling parameter is based on a utilization metric of the backend server with the lowest priority server process comprising a longest duration of utilization of the backend server; assigning, in response to the throttling of at least the lowest priority server process, a different priority ranking to each of the plurality of server processes; second determining, in response to the throttling of at least the lowest priority server process, whether a current utilization of the backend server is still at or above the one or more determined limits on backend utilization, wherein the different priority ranking is assigned based on whether a server process of the plurality of server processes has been throttled within a certain time period prior to the second determining; and throttling, in response to the second determining and when the current utilization of the backend server is still at or above the one or more determined limits on backend utilization after the second determining, a next to lowest priority server process of the plurality of server processes by allocating a second nonzero amount of the one or more resources to the next to lowest priority server process, the throttling of the next to lowest priority server process based on a second throttling parameter of the one or more throttling parameters, wherein the second nonzero amount is smaller than a second amount of the one or more resources allocated to the next to lowest priority server process before throttling, wherein the next to lowest priority server process is determined based on the different priority ranking assigned to each of the plurality of server processes. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
at least one programmable processor; and a machine-readable medium storing instructions that, when executed by the at least one programmable processor, cause the at least one programmable processor to perform operations comprising; applying one or more prioritization criteria to assign a priority ranking to each of a plurality of server processes being executed by a backend server; quantifying a utilization of the backend server by a plurality of server demands, the plurality of server demands comprising the plurality of server processes being executed by the backend server; first determining that the quantified utilization of the backend server has reached or exceeded one or more determined limits on backend utilization; throttling, in response to the first determining, at least a lowest priority server process of the plurality of server processes based on a first throttling parameter of one or more throttling parameters, wherein the throttling comprises allocating a first nonzero amount of one or more resources of the backend server to the lowest priority server process, wherein the first nonzero amount is smaller than a first amount of the one or more resources allocated to the lowest priority server process before throttling, and wherein the first throttling parameter is based on a utilization metric of the backend server with the lowest priority server process comprising a longest duration of utilization of the backend server; assigning, in response to the throttling of at least the lowest priority server process, a different priority ranking to each of the plurality of server processes; second determining, in response to the throttling of at least the lowest priority server process, whether a current utilization of the backend server is still at or above the one or more determined limits on backend utilization, wherein the different priority ranking is assigned based on whether a server process of the plurality of server processes has been throttled within a certain time period prior to the second determining; throttling, in response to the second determining and when the current utilization of the backend server is still at or above the one or more determined limits on backend utilization after the second determining, a next to lowest priority server process of the plurality of server processes by allocating a second nonzero amount of the one or more resources to the next to lowest priority server process, the throttling of the next to lowest priority server process based on a second throttling parameter of the one or more throttling parameters, wherein the second nonzero amount is smaller than a second amount of the one or more resources allocated to the next to lowest priority server process before throttling, wherein the next to lowest priority server process is determined based on the different priority ranking assigned to each of the plurality of server processes; third determining, in response to the throttling of at least the lowest priority server process and/or the throttling of the next to lowest priority server process, an amount a maximum possible load on the backend server can be increased and that the quantified utilization of the backend server satisfies a de-throttling threshold; and de-throttling, in response to the third determining, a highest priority, previously throttled server process. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer-implemented method comprising:
-
applying one or more prioritization criteria to assign a priority ranking to each of a plurality of server processes being executed by a backend server; quantifying a utilization of the backend server by a plurality of server demands, the plurality of server demands comprising the plurality of server processes being executed by the backend server; first determining that the quantified utilization of the backend server has reached or exceeded one or more determined limits on backend utilization; throttling, in response to the first determining, at least a lowest priority server process of the plurality of server processes based on a first throttling parameter of one or more throttling parameters, wherein the throttling comprises allocating a first nonzero amount of one or more resources of the backend server to the lowest priority server process, wherein the first nonzero amount is smaller than a first amount of the one or more resources allocated to the lowest priority server process before throttling, and wherein the first throttling parameter is based on a utilization metric of the backend server with the lowest priority server process comprising a longest duration of utilization of the backend server; assigning, in response to the throttling of at least the lowest priority server process, a different priority ranking to each of the plurality of server processes; second determining, in response to the throttling of at least the lowest priority server process, whether a current utilization of the backend server is still at or above the one or more determined limits on backend utilization, wherein the different priority ranking is assigned based on whether a server process of the plurality of server processes has been throttled within a certain time period prior to the second determining; and throttling, in response to the second determining and when the current utilization of the backend server is still at or above the one or more determined limits on backend utilization after the second determining, a next to lowest priority server process of the plurality of server processes by allocating a second nonzero amount of the one or more resources to the next to lowest priority server process, the throttling of the next to lowest priority server process based on a second throttling parameter of the one or more throttling parameters, wherein the second nonzero amount is smaller than a second amount of the one or more resources allocated to the next to lowest priority server process before throttling, wherein the next to lowest priority server process is determined based on the different priority ranking assigned to each of the plurality of server processes. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
-
applying one or more prioritization criteria to assign a priority ranking to each of a plurality of server processes being executed by a backend server, the plurality of server processes prioritized to include a lowest priority server process and a next to lowest priority server process; first determining that a quantified utilization of the backend server has reached or exceeded one or more limits on backend utilization; first throttling, when the quantified utilization of the backend server is determined to have reached or exceeded one or more limits on backend utilization, the lowest priority server process by at least allocating a first nonzero amount of one or more resources of the backend server to the lowest priority server process, wherein the first nonzero amount is smaller than a first amount of the one or more resources allocated to the lowest priority server process before the first throttling; assigning, in response to the throttling of at least the lowest priority server process, a different priority ranking to each of the plurality of server processes; second determining, in response to the throttling of at least the lowest priority server process, whether a current utilization of the backend server is still at or above the one or more determined limits on backend utilization, the different priority ranking assigned based on whether a server process of the plurality of server processes has been throttled within a certain time period prior to the second determining; and throttling, in response to the second determining and when the current utilization of the backend server is still at or above the one or more determined limits on backend utilization after the second determining, a next to lowest priority server process of the plurality of server processes by allocating a second nonzero amount of the one or more resources to the next to lowest priority server process, the throttling of the next to lowest priority server process based on a second throttling parameter of the one or more throttling parameters, wherein the second nonzero amount is smaller than a second amount of the one or more resources allocated to the next to lowest priority server process before throttling, wherein the next to lowest priority server process is determined based on the different priority ranking assigned to each of the plurality of server processes.
-
Specification