US7761875B2 - Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change - Google Patents
Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change Download PDFInfo
- Publication number
- US7761875B2 US7761875B2 US11/151,159 US15115905A US7761875B2 US 7761875 B2 US7761875 B2 US 7761875B2 US 15115905 A US15115905 A US 15115905A US 7761875 B2 US7761875 B2 US 7761875B2
- Authority
- US
- United States
- Prior art keywords
- resource
- scheduler
- consumers
- competing
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/506—Constraint
Definitions
- the following description relates generally to resource allocation, and more specifically to a system and method for allocating resources to competing consumers according to a weighted proportional-share algorithm, wherein weights assigned to the consumers dynamically change.
- the scheduler may use some algorithm for determining an appropriate share of the resource to allocate to each consumer at any given time, such as a weighted proportional-share algorithm described further below.
- the performance goals of consumers, such as response time bounds and minimum throughput requirements, are typically expressed in the form of Service Level Agreements (SLAs).
- SLAs Service Level Agreements
- the performance level achieved by consumers may be controlled by varying the shares of resources available to each consumer.
- Proportional-share schedulers are known in the art for controlling the shares of resources that are allocated to consumers. Proportional-share schedulers are most commonly implemented using variants of Weighted Fair Queuing (WFQ). The use of WFQ schedulers for meeting SLAs is based on the premise that the performance of a workload varies in a predictable way with the amount of resources available to execute it.
- WFQ Weighted Fair Queuing
- WFQ schedulers have been used to ensure sharing of a computing resource or “service” (e.g., network link, CPU, file server, etc.) in proportion to an explicitly specified “weight” for each of the “flows” (or “consumers”) that compete for the resource.
- a “flow” refers to a sequence of tasks (network packets, instructions, I/O requests, etc.) that are using the shared resource(s). Because each flow desires use of the shared resource(s), a flow may be considered as a “resource consumer.” Weights can be assigned to each consumer (e.g., each flow) to define respective priorities for allocating resource access among various competing consumers.
- Weight adjustment may be desired from time-to-time in certain computing systems, such as in computing systems where specified performance goals have to be met for each flow and/or where effective utilization of shared resource(s) is desired.
- performance of a flow varies in a predictable way with the amount of resources available to execute it.
- Flow weights may thus be adjusted dynamically to adapt to system and workload dynamics, so that performance goals are met and the service resources are effectively utilized.
- Service providers and enterprises are increasingly hosting services and applications on shared pools of computing and storage resources. For example, in many enterprises, shared network storage servers meet the storage demands of different departments in the organization. Multiplexing workloads onto a shared utility infrastructure allows for on-demand assignment of resources to workloads; this can improve resource efficiency while protecting against unplanned demands and service outages.
- Utility services deploy resource control mechanisms that arbitrate the use of the shared resources to comply with the SLAs of different customer workloads.
- consumers e.g., workloads
- Resource control mechanisms include admission control of workloads, throttling or scheduling the demand of individual workloads, and/or changing the configuration of resources such as disks.
- FIG. 1 shows an exemplary system in which embodiments of the present invention may be employed
- FIGS. 2A-2B show exemplary operational flow diagrams according to certain embodiments of the present invention.
- FIG. 3A shows a graph illustrating variation in total throughput over time for a typical workload of a 3-tier Web application
- FIG. 3B shows a graph illustrating an example of such throughput when using an adaptive controller, and demonstrates that the goal is not reached with a standard WFQ scheduler but can be with a controllably-fair WFQ scheduler of an embodiment of the present invention
- FIG. 4 shows graphs for an exemplary system having two continuously back logged flows, f and g, illustrating that when weights change in the traditional WFQ algorithm there exist intervals in which a flow receives no service independent of its weight setting;
- FIG. 5 shows graphs for an exemplary system having two flows, f and g, that are continuously backlogged during an infinite sequence of intervals, illustrating that it is possible in the traditional WFQ algorithm to construct an unbounded number of consecutive intervals during which there is a flow that receives no service even though it has non-zero weights.
- FIG. 1 shows an exemplary system 100 in which embodiments of the present invention may be employed. More specifically, exemplary system 100 is a closed-loop system comprising a shared resource 12 , proportional-share scheduler 11 , and controller 10 .
- Proportional-share scheduler 11 utilizes a WFQ algorithm for allocating shares of resource 12 to requesting flows 1 -N.
- Controller 10 monitors performance 102 of the requesting flows (e.g., to determine whether their respective performances are satisfying their respective performance goals, as may be defined by an SLA), and dynamically changes scheduler parameters 101 , including weights “ ⁇ ” assigned to the flows.
- Flows 1 -N are each a sequence of tasks (network packets, instructions, I/O requests, etc.) that are using the shared resource 12 .
- Flows 1 -N are thus examples of competing “resource consumers” because they consume some share of resource 12 for performing their respective tasks.
- Blocks 104 within resource 12 represent the total number of requests/tasks inside the system at a given time. The number of these taken by a specific flow is dependent on the flow's weight setting.
- system 100 provides an exemplary closed-loop system comprising a weighted proportional-share scheduler 11 that is used for resource allocation to requesting resource consumers (flows 1 -N), wherein the weights ⁇ assigned to the resource consumers may be dynamically adjusted by controller 10 in attempt, for example, to achieve performance goals of the resource consumers and/or effectively utilize shares of shared resource 12 .
- the typical weighted proportional-share algorithm, WFQ is used by scheduler 11 . While much of the description provided herein is directed to the WFQ algorithm, as such algorithm is a common weighted proportional-share algorithm, embodiments of the present invention are not limited in application to WFQ, but may likewise be applied to any other weighted proportional-share algorithm now known or later developed.
- Controller 10 may be implemented to autonomously adjust the scheduler parameters 101 (e.g., weights ⁇ ) based on the received performance 102 , or in certain embodiments controller 10 may be implemented to output performance 102 to a user and/or receive input from a user to dynamically adjust the scheduler parameters 101 .
- the scheduler parameters may be dynamically adjusted autonomously by controller 10 or manually via user input.
- Embodiments of the present invention are not intended to be limited with regard to how scheduler parameters are modified within a given system, and are directed to techniques for adapting the weighted proportional-share scheduler to changed scheduler parameters in a manner that maintains fairness, i.e., maintains allocation of resource shares to the competing consumers (flows 1 -N) proportionally to their respective weights (within some tolerance that is bounded by a constant over any time interval).
- a modified “controllable” WFQ algorithm is employed by scheduler 11 , which is operable to maintain fairness properties when weights dynamically change.
- FIGS. 2A-2B show exemplary operational flow diagrams according to embodiments of the present invention.
- FIG. 2A shows a first exemplary operational flow diagram of a scheduler, such as scheduler 11 of FIG. 1 , according to one embodiment of the present invention.
- the scheduler receives a change to a weight assigned to a consumer. As described above with FIG. 1 , such change may be received from a controller 10 .
- the scheduler utilizes a weighted proportional-share scheduling algorithm (e.g., WFQ) to maintain fairness in allocating shares of a resource to competing consumers in accordance with the changed weight.
- WFQ weighted proportional-share scheduling algorithm
- a weighted proportional-share scheduling algorithm that adapts its internal state (e.g., “tags,” as discussed further below) to maintain, within a defined tolerance that is bounded by a constant over any time interval, allocation of shares of the resource to the competing consumers proportionally to respective weights assigned to the competing consumers.
- the weighted proportional-share scheduling algorithm adapts its internal state to those changes in a manner such that the scheduler continues to fairly allocate shares of the resource to the competing consumers in proportion to their newly specified weights.
- FIG. 2B shows a more detailed exemplary operational flow diagram of a system in which an embodiment of the present invention is implemented, such as system 100 of FIG. 1 .
- shares of a resource 12 are allocated by a scheduler 11 to competing consumers (e.g., flows 1 -N), wherein such allocating is performed by the scheduler using a WFQ algorithm.
- a controller 10 monitors performance 102 of the competing consumers (flows 1 -N).
- the controller 10 dynamically changes a scheduler parameter 101 , wherein the scheduler parameter that is changed comprises at least one of a) a weight ⁇ assigned to at least one of the competing consumers and b) degree of concurrency (D) in the resource 12 .
- the WFQ algorithm adapts its internal state (e.g., tags) to maintain fairness in performing the allocating of shares of resource 12 to the competing consumers.
- a utility service comprises an ensemble of computing resources (servers, disks, network links, etc.) that are shared by multiple customers with contractual performance assurances (SLAs). SLAs contain statistical performance goals, expressed in terms of averages or percentiles over certain time intervals. Examples of utility services include servers shared by different competing applications or by multiple virtual machines, shared storage systems or shared clusters hosting a multi-tier Internet application for each customer. That is, as described further herein, the WFQ scheduler adapts its internal state (or “tags”) to maintain fairness in accordance with the new scheduler parameters (e.g., new weights).
- SLAs contractual performance assurances
- Examples of utility services include servers shared by different competing applications or by multiple virtual machines, shared storage systems or shared clusters hosting a multi-tier Internet application for each customer. That is, as described further herein, the WFQ scheduler adapts its internal state (or “tags”) to maintain fairness in accordance with the new scheduler parameters (e.g., new weights).
- a number of customer workloads compete for access to some shared physical or virtual resources.
- One objective of a utility service is to control the rates by which different workloads consume resources so that the SLAs of the customers are met while maximizing the utilization of the shared resources.
- Utility schedulers may be employed in such utility service environments for adjusting the performance of a workload by controlling the resources available to execute such workload. While the specific application may vary from one environment to the next (e.g., depending on the specific types of consumers and/or resources being controlled), the typical environment can be generalized as shown in FIG. 1 .
- the computational unit of resource consumption is referred to herein as a task. Examples of tasks include, without limitation, I/O (input/output) operations reaching a disk, threads competing for a CPU (central processing unit), network packets sent over a link, and application-level requests (e.g., http requests) sent to an Internet service. Tasks may be grouped into service classes referred to herein as flows.
- gold, silver, and bronze service classes may be defined, with each class having a different performance guarantee.
- Examples of flows include all the I/O operations accessing a given storage volume, the requests for CPU cycles of a specific virtual machine on a host, and all http requests of the “gold” clients of a Web application.
- the weights assigned to each flow may vary based at least in part on their respective service class and also on the performance experienced from the system, faults, etc.
- embodiments of the present invention are not limited in application to systems in which a plurality of different service classes are defined, but may likewise be employed for systems in which all consumers have the same service class.
- a proportional-share scheduler 11 in general, is to limit the resource consumption of each flow f in proportion to a weight ⁇ f assigned to it. If flow weights are normalized to sum to one, then each weight may be interpreted as representing a share of the resources 12 .
- the weights enforce the property of performance isolation: they prevent load surges in any flow from unacceptably degrading the performance of another. Thus, weights should be set (via controller 10 ) to the appropriate values that result in satisfying the performance desires (e.g., SLAs) of the different flows.
- the premise is that the performance of a flow improves when increasing its share of resources. Another factor that affects performance is the degree of concurrency D in the resource. In general, higher concurrency results in higher aggregate throughput and resource utilization, but also higher response latencies. Thus, D is another scheduler parameter that can be tuned (via controller 10 ) to meet flow SLAs, in certain embodiments.
- WFQ scheduler 11 has a property known as work conservation.
- work conservation In contrast to guaranteed reservations, which ensure a minimum allotment of resource to each flow even when the flow has low load, a work-conserving proportional-share scheduler shares surplus resources among active flows in proportion to their configured weights.
- a flow may receive more than its configured share unless the system is fully loaded and all competing flows are active, i.e., they have backlogs of queued tasks.
- An advantage of work-conserving schedulers, that makes them very popular in practice, is that they use resources more efficiently and improve the performance of active flows, when the system is lightly loaded. These properties limit the need for fine-grained adjustments in the weights to accommodate bursty demand.
- the flow weights ⁇ and the degree of concurrency D are, in the exemplary system 100 of FIG. 1 , continuously adjusted by controller 10 in response to observable performance metrics 102 (e.g., response latency, throughput or bandwidth) obtained by each flow.
- observable performance metrics 102 e.g., response latency, throughput or bandwidth
- a challenge is to derive the desirable properties for the resulting closed-loop system; namely, that it is stable (does not oscillate) and that it achieves the desirable performance goals.
- Control theory provides an ideal framework for the systematic design of dynamically controlled systems. Rather than requiring that a new controller be designed, certain embodiments of the present invention may be employed with well-understood, off-the-shelf controllers.
- STR Self-Tuning Regulator
- the term “self-tuning” comes from the fact that the controller parameters are automatically tuned to obtain the desired properties of the closed-loop system.
- An STR may be employed as controller 10 in certain embodiments.
- Such STRs may be desirable in certain systems for at least two reasons.
- STR controllers aim at automating these tasks. Thus, they can be used out-of-the-box for many practical cases.
- Second, existing research has shown that, in the general case, adaptive controllers, such as STRs, may be used to trace the varying behavior of systems and their changing workloads.
- An STR in general, has two main parts: 1) a model estimator and 2) a control law module.
- the estimator estimates how much the performance of a flow will change as a function of weight setting.
- the control law computes the weight settings given a model and a set of performance goals.
- the goals may be formulated as an optimization problem: it is desirable to minimize the deviations from the specified SLAs without too large variations to the weight values that would give rise to oscillations in the system.
- LQR linear quadratic
- p(i) is the vector of the performance measurements at time i (one measurement per flow)
- p ref (i) is the vector of performance goals
- ⁇ (i) is a vector of settings of scheduler parameters (weights and D).
- the variables in equation (1) can be weighted to prioritize among flows when the resource cannot meet the demand of all flows; but priorities are not discussed further here for simplicity.
- a discrete time model can be used for the design and analysis of the closed-loop system.
- the sampling period used in the system i.e., the time between any two consecutive measurements and weight settings, is a tunable design parameter. It is typically identified by experimental means.
- STRs are one example of standard adaptive controllers that can be used off-the-shelf to solve control problems such as the problem of dynamically adjusting the flow weights in a scheduler. But it is not the only type of such controllers. Thus, for system designers, the problem is not how to design controllers, but instead how to design systems that are amenable to control.
- a problem addressed by embodiments of this invention is how to design a specific type of system (or component of a system), namely a scheduler, that is amenable to control.
- the system's behavior should be sufficiently approximated by a linear model. This model should have low variance over time and the relation between actuators and observed behavior should be monotonic in average.
- the system should have a known reaction delay to actuation. That is, there is a known time lag between changing some parameters (e.g., flow weights in our case) and observing the effects of that change.
- WFQ is described in detail herein as one exemplary weighted proportional-share algorithm
- the concepts of the present invention may be readily employed in a similar manner with other types of weighted proportional-share algorithms that are now known or later developed in order to maintain fairness with changing weights.
- Each flow f comprises a sequence of tasks p f o . . . p f n arriving at the server.
- Each task p f i has an associated cost c f i bounded by a constant c f max .
- the tasks may be packets of varying lengths or tasks of varying costs.
- Fair queuing allocates the throughput of the resource in proportion to weights assigned to the competing flows.
- the weights may represent service rates, such as bits or cycles or tasks per second, as examples. Only the relative values of the weights are significant, but it is convenient to assume that the weight ⁇ f for each flow f represents a percentage share of resource throughput, and that task costs are normalized to a resource throughput of one unit of cost per unit of time.
- WFQ schedulers are fair in the sense that active flows share the available resource throughput proportionally to their weights, within some tolerance that is bounded by a constant over any time interval.
- W f (i) is the aggregate cost of the tasks from flow f served during any time interval i, then a fair scheduler guarantees that:
- WFQ schedulers dispatch tasks in order of tags assigned at task arrival time.
- the j th task p f j of flow f arrives, it is assigned a start tag S(p f j ) and a finish tag F(p f j ) as follows:
- each active flow f receives ⁇ f bits of resource per unit of virtual time: v(t) speeds up when surplus resources are available to serve active flows at a higher rate. Calculating v(t) exactly is computationally expensive. In particular, the cost is generally prohibitive when the throughput of the resource fluctuates.
- WFQ algorithms differ primarily in the way that they approximate virtual time.
- WFQ schedulers are designed for resources that handle one task at a time, such as a router's out-going link or a CPU, and so are not suitable for all computing resources (e.g., disk, multi-processors, file servers).
- a depth-controlled variant of SFQ, (SFQ(D)) has been proposed recently to deal with task scheduling in multi-tasking resources.
- the maximum concurrency D allowed in the resource reflects a trade-off between resource utilization and the worst-case fairness bound of the scheduler. In this case, U f.g also depends on D.
- FIG. 3A shows a graph illustrating exemplary variation in total throughput over time for a typical workload of a 3-tier Web application.
- FIG. 3B shows a graph illustrating an example of the throughput in the exemplary workload of FIG. 3A when using an adaptive controller, and demonstrates that the goal is not reached with a standard WFQ scheduler but can be with a controllably-fair WFQ scheduler of an embodiment of the present invention.
- the traditional WFQ scheduler does not maintain fairness as the weights assigned to the consumers change, and thus a desire exists for a controllably-fair WFQ scheduler as provided by embodiments of the present invention.
- ⁇ U* f.g is the controllable fairness bound for the entire sequence of intervals.
- Controllable SFQ (or “C-SFQ” for short), which is an extension of SFQ.
- C-SFQ an extension of SFQ.
- the extension is also applicable to finish-tag emulated algorithms. Accordingly, embodiments of the concepts presented herein are not limited in applicability any particular WFQ algorithm, but may be readily adapted for use with any WFQ algorithm.
- the following recursive computation is performed whenever any weights change.
- the computation updates the tags of the backlogged tasks of the flows for which the weight have changed. Assume, without loss of generality, that there are Q f backlogged tasks for flow f and that they are numbered from j to j+Q f ⁇ 1.
- i is the new interval.
- v(t) refers to the value of virtual time as it evolved in previous intervals, according to WFQ.
- Equation (9) recomputes the finish tag of the last submitted task of flow f (in some interval before i), as if it had the new weight setting.
- the tags of the backlogged tasks are adjusted accordingly in equations (10) and (11) which are equivalent to (4) and (5) of WFQ.
- Re-computation (9) moves the start tag of the next task of f further down in time if the weight has decreased, and closer in time if it has increased. When the weights have not changed, this algorithm reduces to the original WFQ algorithm.
- Theorem 2 For any sequence T of consecutive intervals during which flows f and g are constantly backlogged, the controllable fairness of C-SFQ is bounded by:
- v c (t) ⁇ F c (p f j ⁇ 1 ) the max expression in equation (10) favors the F c (p f j ⁇ 1 ) term.
- SFQ instantaneously receives the same set of tasks as those backlogged in the C-SFQ case at the beginning of i, their backlogged tasks will have the exact same start and finish tags.
- Controllable SFQ(D) (or “C-SFQ(D)” for short) is provided, which is an extension of depth-controlled Start-tag Fair Queuing SFQ(D).
- the maximum depth D is a scheduler parameter that may be desirable to be adjusted, along with flow weights, according to system and workload dynamics. It is thus desirable for a controllable scheduler to be fair even when D changes.
- the original fairness bound for SFQ(D) for when weights and D do not change is:
- D′ max (i) is independent of any D(m),m ⁇ j.
- Theorem 3 For any sequence T of consecutive intervals during which flows f and g are constantly backlogged and both D and flow weights vary between intervals, the controllable fairness of C-SFQ(D) is bounded by:
- C-SFQ(D) we now have a scheduler that is controllable, i.e., it provably satisfies all the properties C.1-C.3 identified above.
- C-SFQ(D) can be used together with a feedback loop to achieve performance goals for a real system, whereas traditional non-controllable schedulers cannot be used in this setting.
- C-SFQ(D) is the etension to just one instance of a WFQ algorithm. A similar extension for controllability esists for any WFQ algorithm.
- a weighted proportional-share algorithm is employed by a scheduler, which is controllable to maintain fairness even when weights dynamically change.
- An exemplary embodiment of a WFQ algorithm that may be employed by the scheduler operates according to the following pseudocode:
- various elements of embodiments of the present invention are in essence the software code defining the operations of such various elements.
- the executable instructions or software code may be obtained from a readable medium (e.g., a hard drive media, optical media, EPROM, EEPROM, tape media, cartridge media, flash memory, ROM, memory stick, and/or the like) or communicated via a data signal from a communication medium (e.g., the Internet).
- readable media can include any medium that can store or transfer information.
- the exemplary operations described above e.g., the flows of FIGS. 2A-2B
- the software code may run on any suitable processor-based system, such as the exemplary system of FIG. 1 .
- Embodiments described above may be employed to address the problem of enforcing application-level performance goals in shared computing infrastructures, for example.
- the parameters of a weighted proportional-share schedulers can be dynamically varied using adaptive feedback-based control.
- Embodiments of the present invention may be employed to maintain controllable fairness in the weighted proportional-share schedulers (e.g., WFQ schedulers) even as the parameters (e.g., weight) are dynamically varied.
- WFQ schedulers weighte.g., weight
- a tag adjustment algorithm is provided that ensures that WFQ schedulers are controllably-fair even when scheduler parameters, such as weight, dynamically vary.
Abstract
Description
min {∥p(i+1)−pref(i+1)∥2+∥φ(i)−φ(i−1)∥2} (1)
where f and g are any two flows continuously backlogged with tasks during i. Interval i=|ti, ti) is the time period between the ith and i+1th sampling/actuation in the system. Uf.g is a constant that depends on the flow weights and the maximum cost of flow tasks. All algorithms try to ensure low values of Uf.g, which indicates better fairness. Typically, fairness is defined on pairs of flows, but, of course, there may be more than two flows using a resource. In practice, good fairness implies that the performance of the different competing flows is a predictable function of their corresponding weights. Poor fairness, on the other hand, implies large variability in the relation between performance and weights, violating property C.1 described above.
where A(pf j) is the arrival time of task pf j, cf j is the actual cost for the resource to execute task pf j, and φf is the weight of flow f. For convenience, table 1 briefly summarizes the symbols used herein.
TABLE 1 | |||
Symbol | Meaning | ||
φf(i) | Weight of flow f during time | ||
interval i. | |||
pf j | The j-th task of flow f. | ||
cf i | Cost of task pf j. | ||
cf max(i) | Maximum cost for a task from flow | ||
f during time internal i | |||
v(t) | Virtual time at time t | ||
D(i) | The maximum number of outstanding | ||
tasks during time internal i | |||
D′(i) | The actual number of outstanding | ||
tasks during time interval i | |||
A(pf j) | Arrival time of task pf j. | ||
S(pf j) | Start tag of task pf j | ||
F(pf j) | Finish tag of task pf j | ||
Wf(i) | Total amount of work/cost served | ||
from flow f during time internal i. | |||
Uf·g(i) | The fairness bound during time | ||
internal i. | |||
Uf·g | The controllable fairness bound | ||
over a sequence of time internals. | |||
which is two times the theoretical lower upper bound for any fair queuing algorithm.
Here, ≦U*f.g is the controllable fairness bound for the entire sequence of intervals.
U* f.g=∞ (8)
-
- 1) For every flow f, the weight of this execution is constant throughout the execution and equal to the C-SFQ weight during interval i, i.e., φf s=φf c(i) for all f.
- 2) At some point in time, the virtual time of the SFQ execution is equal to that of C-SFQ at the beginning of interval i, i.e., vs(t′)=vc(t).
- 3) At that same point in time, the finish tag of the last submitted task in the SFQ execution is equal to the re-calculated finish tag by C-SFQ at the beginning of interval i,Fs(pf k)=Fc(pf j−1) for some k and j.
- 4) At that same point in time, the set of backlogged tasks for all flows in the SFQ execution is the same as that in the C-SFQ case.
- 5) From that point in time and at least for a period of time equal to that of interval i, the SFQ scheduler receives the same sequence of tasks as those received by C.
Thus, this bound holds for every single interval of an execution with C-SFQ. In fact, the fairness bound in every single interval is a function of the maximum cost of the tasks actually executed during that interval (not of the maximum cost of any task of a flow). This results in a tighter fairness bound for each interval i, defined as:
Thus, the fairness bound across a sequence of intervals is the worst bound among all individual intervals in the sequence, given by equation (12).
D′ max(i)=max(D(i),D(j)) (15)
where D(0)=0 and j,j<i is the latest interval before i during which a task was dispatched to the service.
-
- 1) If D′(k)≦D(i), there are D(i)−D(k) new tasks that the scheduler can dispatch to the service in i. Thus, the maximum possible number of outstanding tasks during i is D′max(i)=D(i), as the flows are continuously backlogged.
- 2) If D′(k)>D(i), a new task can be submitted only after D′(k)−D(i)+1 tasks have completed. Thus, the largest possible D′(i) occurs when no task is completed in interval i. That is, the maximum possible number of outstanding tasks during i is D′max(i)=D′(k)=D(j).
where D′max(i) is defined as in
Thus, the worst-case bound in sequence T is the highest bound of any single interval i ε T, as given by equation (16).
for each flow |
if no change in weight |
return |
else |
for each single request in the queue |
if first request |
recompute tags according to equations (9) and (10) |
else |
recompute tags according to equations (10) and (11) |
endif |
endif | ||
Claims (22)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/151,159 US7761875B2 (en) | 2005-06-10 | 2005-06-10 | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/151,159 US7761875B2 (en) | 2005-06-10 | 2005-06-10 | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change |
Publications (2)
Publication Number | Publication Date |
---|---|
US20060280119A1 US20060280119A1 (en) | 2006-12-14 |
US7761875B2 true US7761875B2 (en) | 2010-07-20 |
Family
ID=37524016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/151,159 Active 2029-05-20 US7761875B2 (en) | 2005-06-10 | 2005-06-10 | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change |
Country Status (1)
Country | Link |
---|---|
US (1) | US7761875B2 (en) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090165007A1 (en) * | 2007-12-19 | 2009-06-25 | Microsoft Corporation | Task-level thread scheduling and resource allocation |
US20090187784A1 (en) * | 2008-01-18 | 2009-07-23 | Microsoft Corporation | Fair and dynamic central processing unit scheduling |
US20090228888A1 (en) * | 2008-03-10 | 2009-09-10 | Sun Microsystems, Inc. | Dynamic scheduling of application tasks in a distributed task based system |
US20090328046A1 (en) * | 2008-06-27 | 2009-12-31 | Sun Microsystems, Inc. | Method for stage-based cost analysis for task scheduling |
US20100211958A1 (en) * | 2009-02-17 | 2010-08-19 | Sun Microsystems, Inc. | Automated resource load balancing in a computing system |
US20110167427A1 (en) * | 2010-01-07 | 2011-07-07 | Samsung Electronics Co., Ltd. | Computing system, method and computer-readable medium preventing starvation |
US20130103829A1 (en) * | 2010-05-14 | 2013-04-25 | International Business Machines Corporation | Computer system, method, and program |
US20130247061A1 (en) * | 2012-03-19 | 2013-09-19 | Ati Technologies Ulc | Method and apparatus for the scheduling of computing tasks |
US8667495B1 (en) | 2010-12-29 | 2014-03-04 | Amazon Technologies, Inc. | Virtual resource provider with virtual control planes |
US8667399B1 (en) | 2010-12-29 | 2014-03-04 | Amazon Technologies, Inc. | Cost tracking for virtual control planes |
US8954978B1 (en) * | 2010-12-29 | 2015-02-10 | Amazon Technologies, Inc. | Reputation-based mediation of virtual control planes |
CN104750547A (en) * | 2013-12-31 | 2015-07-01 | 华为技术有限公司 | Input-output (IO) request processing method and device of virtual machines |
US9178763B2 (en) | 2013-03-13 | 2015-11-03 | Hewlett-Packard Development Company, L.P. | Weight-based collocation management |
US20160188367A1 (en) * | 2014-12-29 | 2016-06-30 | Huawei Technologies Co., Ltd. | Method for scheduling user request in distributed resource system, and apparatus |
US9395920B2 (en) | 2011-11-17 | 2016-07-19 | Mirosoft Technology Licensing, LLC | Throttle disk I/O using disk drive simulation model |
US9495222B1 (en) * | 2011-08-26 | 2016-11-15 | Dell Software Inc. | Systems and methods for performance indexing |
US9824131B2 (en) | 2012-03-15 | 2017-11-21 | Hewlett Packard Enterprise Development Lp | Regulating a replication operation |
US10097478B2 (en) | 2015-01-20 | 2018-10-09 | Microsoft Technology Licensing, Llc | Controlling fair bandwidth allocation efficiently |
US10346205B2 (en) * | 2016-01-11 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method of sharing a multi-queue capable resource based on weight |
US10496490B2 (en) | 2013-05-16 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
US10592347B2 (en) | 2013-05-16 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
US20200196192A1 (en) * | 2018-12-18 | 2020-06-18 | Intel Corporation | Methods and apparatus to enable multi-ap wlan with a limited number of queues |
US10942874B2 (en) | 2018-03-27 | 2021-03-09 | Samsung Electronics Co., Ltd. | Methods and systems that manage fetching of commands by a controller from queues of a host |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070028300A1 (en) * | 2005-07-28 | 2007-02-01 | Bishop Ellis E | System and method for controlling on-demand security |
US7363399B2 (en) * | 2005-08-17 | 2008-04-22 | International Business Machines Corporation | Method, apparatus and computer program product providing storage network dynamic tuning of I/O flow with Queue Depth |
US20070210923A1 (en) * | 2005-12-09 | 2007-09-13 | Butler Timothy P | Multiple radio frequency network node rfid tag |
US20070156879A1 (en) * | 2006-01-03 | 2007-07-05 | Klein Steven E | Considering remote end point performance to select a remote end point to use to transmit a task |
US8169956B2 (en) | 2007-01-26 | 2012-05-01 | Qualcomm Incorporated | Mapping uplink acknowledgement transmission based on downlink virtual resource blocks |
US9405585B2 (en) * | 2007-04-30 | 2016-08-02 | International Business Machines Corporation | Management of heterogeneous workloads |
US8479241B2 (en) | 2007-05-10 | 2013-07-02 | At&T Intellectual Property I, Lp | System and method to control communication of data |
US8045563B2 (en) * | 2007-12-27 | 2011-10-25 | Cellco Partnership | Dynamically adjusted credit based round robin scheduler |
US8332865B2 (en) * | 2008-02-21 | 2012-12-11 | International Business Machines Corporation | Adjunct processor load balancing |
US20110249557A1 (en) * | 2008-12-19 | 2011-10-13 | Indian Institute Of Science | Centralized Wireless Manager (WiM) for Performance Management of IEEE 802.11 and a Method Thereof |
US8693328B2 (en) * | 2009-02-19 | 2014-04-08 | Sandvine Incorporated Ulc | Method and apparatus for distributing credits to multiple shapers to enable shaping traffic targets in packet communication networks |
US8683477B2 (en) * | 2009-07-05 | 2014-03-25 | Hewlett-Packard Development Company, L.P. | Performance degradation based at least on computing application priority and in a relative manner that is known and predictable beforehand |
US8305889B2 (en) * | 2010-01-31 | 2012-11-06 | Hewlett-Packard Development Company, L.P. | Method for allocating a resource among consumers in proportion to configurable weights |
US20110199899A1 (en) * | 2010-02-16 | 2011-08-18 | Lime Brokerage Holding Llc | Rate-Adaptive Bundling of Data in a Packetized Communication System |
WO2012106571A2 (en) * | 2011-02-04 | 2012-08-09 | Opnet Technologies, Inc. | Overhead management for event tracing |
US20140130055A1 (en) * | 2012-02-14 | 2014-05-08 | Aloke Guha | Systems and methods for provisioning of storage for virtualized applications |
EP2842379A1 (en) * | 2012-04-23 | 2015-03-04 | Telefonaktiebolaget LM Ericsson (PUBL) | Packet scheduling in a communication network |
US9325585B1 (en) * | 2012-07-10 | 2016-04-26 | The Boeing Company | Mission-driven autonomous and adaptive resource management |
JP5622984B1 (en) * | 2014-03-31 | 2014-11-12 | 株式会社スクウェア・エニックス | Information processing apparatus, drawing system, control method, and program |
US10394606B2 (en) | 2014-09-30 | 2019-08-27 | Hewlett Packard Enterprise Development Lp | Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy |
US10534542B2 (en) | 2014-09-30 | 2020-01-14 | Hewlett Packard Enterprise Development Lp | Dynamic core allocation for consistent performance in a non-preemptive scheduling environment |
US9483187B2 (en) | 2014-09-30 | 2016-11-01 | Nimble Storage, Inc. | Quality of service implementation in a networked storage system with hierarchical schedulers |
US9600337B2 (en) | 2014-09-30 | 2017-03-21 | Nimble Storage, Inc. | Congestion avoidance in network storage device using dynamic weights |
US10545791B2 (en) * | 2014-09-30 | 2020-01-28 | Hewlett Packard Enterprise Development Lp | Methods to apply IOPS and MBPS limits independently using cross charging and global cost synchronization |
US10491537B2 (en) | 2014-10-28 | 2019-11-26 | Salesforce.Com, Inc. | Facilitating dynamic hierarchical management of queue resources in an on-demand services environment |
US9614775B2 (en) * | 2015-01-30 | 2017-04-04 | Vmware, Inc. | Data transmission using modified weighted fair queue algorithm |
US10073714B2 (en) * | 2015-03-11 | 2018-09-11 | Western Digital Technologies, Inc. | Task queues |
CN105302650B (en) * | 2015-12-10 | 2018-09-07 | 云南大学 | A kind of more resource fairness distribution methods of dynamic towards under cloud computing environment |
US10805222B2 (en) * | 2017-05-01 | 2020-10-13 | General Electric Company | Resilient network configuration for time sensitive traffic |
US10387051B2 (en) | 2017-08-24 | 2019-08-20 | Hewlett Packard Enterprise Development Lp | Acquisition of IOPS and MBPS limits independently at a scheduler in a scheduler hierarchy |
US11366697B2 (en) | 2019-05-01 | 2022-06-21 | EMC IP Holding Company LLC | Adaptive controller for online adaptation of resource allocation policies for iterative workloads using reinforcement learning |
US11586474B2 (en) | 2019-06-28 | 2023-02-21 | EMC IP Holding Company LLC | Adaptation of resource allocation for multiple workloads using interference effect of resource allocation of additional workloads on performance |
US11327801B2 (en) | 2019-08-29 | 2022-05-10 | EMC IP Holding Company LLC | Initialization of resource allocation for a workload characterized using a regression model |
US11868810B2 (en) * | 2019-11-15 | 2024-01-09 | EMC IP Holding Company LLC | Resource adaptation using nonlinear relationship between system performance metric and resource usage |
CN111625337A (en) * | 2020-05-28 | 2020-09-04 | 浪潮电子信息产业股份有限公司 | Task scheduling method and device, electronic equipment and readable storage medium |
EP4030708A1 (en) * | 2021-01-19 | 2022-07-20 | Nokia Solutions and Networks Oy | Method and apparatus for bandwidth allocation |
US20230205653A1 (en) * | 2021-12-24 | 2023-06-29 | Nutanix, Inc. | Metering framework for improving resource utilization for a disaster recovery environment |
CN115150340B (en) * | 2022-06-29 | 2023-10-27 | 武汉烽火技术服务有限公司 | Method and device for dynamically adjusting message queue weight |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153564A1 (en) * | 2001-12-28 | 2004-08-05 | Jani Lakkakorpi | Packet scheduling method and apparatus |
US20040230675A1 (en) * | 2003-05-15 | 2004-11-18 | International Business Machines Corporation | System and method for adaptive admission control and resource management for service time guarantees |
US20060079979A1 (en) * | 2004-09-28 | 2006-04-13 | Siemens Technology-To-Business Center, Llc | Dynamic-state waiting time analysis method for complex discrete manufacturing |
US7257083B2 (en) * | 2003-06-25 | 2007-08-14 | Motorola, Inc. | Method and apparatus for policy-based dynamic preemptive scheduling of data transmissions |
-
2005
- 2005-06-10 US US11/151,159 patent/US7761875B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153564A1 (en) * | 2001-12-28 | 2004-08-05 | Jani Lakkakorpi | Packet scheduling method and apparatus |
US20040230675A1 (en) * | 2003-05-15 | 2004-11-18 | International Business Machines Corporation | System and method for adaptive admission control and resource management for service time guarantees |
US7257083B2 (en) * | 2003-06-25 | 2007-08-14 | Motorola, Inc. | Method and apparatus for policy-based dynamic preemptive scheduling of data transmissions |
US20060079979A1 (en) * | 2004-09-28 | 2006-04-13 | Siemens Technology-To-Business Center, Llc | Dynamic-state waiting time analysis method for complex discrete manufacturing |
Non-Patent Citations (37)
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090165007A1 (en) * | 2007-12-19 | 2009-06-25 | Microsoft Corporation | Task-level thread scheduling and resource allocation |
US20090187784A1 (en) * | 2008-01-18 | 2009-07-23 | Microsoft Corporation | Fair and dynamic central processing unit scheduling |
US8640131B2 (en) * | 2008-01-18 | 2014-01-28 | Microsoft Corporation | Demand-based processor cycle allocation subsequent to equal group-based processor cycle distribution |
US20090228888A1 (en) * | 2008-03-10 | 2009-09-10 | Sun Microsystems, Inc. | Dynamic scheduling of application tasks in a distributed task based system |
US8276143B2 (en) * | 2008-03-10 | 2012-09-25 | Oracle America, Inc. | Dynamic scheduling of application tasks in a distributed task based system |
US20090328046A1 (en) * | 2008-06-27 | 2009-12-31 | Sun Microsystems, Inc. | Method for stage-based cost analysis for task scheduling |
US8250579B2 (en) | 2008-06-27 | 2012-08-21 | Oracle America, Inc. | Method for stage-based cost analysis for task scheduling |
US20100211958A1 (en) * | 2009-02-17 | 2010-08-19 | Sun Microsystems, Inc. | Automated resource load balancing in a computing system |
US20110167427A1 (en) * | 2010-01-07 | 2011-07-07 | Samsung Electronics Co., Ltd. | Computing system, method and computer-readable medium preventing starvation |
US8799913B2 (en) * | 2010-01-07 | 2014-08-05 | Samsung Electronics Co., Ltd | Computing system, method and computer-readable medium for managing a processing of tasks |
US20130103829A1 (en) * | 2010-05-14 | 2013-04-25 | International Business Machines Corporation | Computer system, method, and program |
US9794138B2 (en) * | 2010-05-14 | 2017-10-17 | International Business Machines Corporation | Computer system, method, and program |
US9553774B2 (en) | 2010-12-29 | 2017-01-24 | Amazon Technologies, Inc. | Cost tracking for virtual control planes |
US8667495B1 (en) | 2010-12-29 | 2014-03-04 | Amazon Technologies, Inc. | Virtual resource provider with virtual control planes |
US8667399B1 (en) | 2010-12-29 | 2014-03-04 | Amazon Technologies, Inc. | Cost tracking for virtual control planes |
US8954978B1 (en) * | 2010-12-29 | 2015-02-10 | Amazon Technologies, Inc. | Reputation-based mediation of virtual control planes |
US10033659B2 (en) | 2010-12-29 | 2018-07-24 | Amazon Technologies, Inc. | Reputation-based mediation of virtual control planes |
US9882773B2 (en) | 2010-12-29 | 2018-01-30 | Amazon Technologies, Inc. | Virtual resource provider with virtual control planes |
US9495222B1 (en) * | 2011-08-26 | 2016-11-15 | Dell Software Inc. | Systems and methods for performance indexing |
US9395920B2 (en) | 2011-11-17 | 2016-07-19 | Mirosoft Technology Licensing, LLC | Throttle disk I/O using disk drive simulation model |
US9824131B2 (en) | 2012-03-15 | 2017-11-21 | Hewlett Packard Enterprise Development Lp | Regulating a replication operation |
US20130247061A1 (en) * | 2012-03-19 | 2013-09-19 | Ati Technologies Ulc | Method and apparatus for the scheduling of computing tasks |
US9081618B2 (en) * | 2012-03-19 | 2015-07-14 | Ati Technologies Ulc | Method and apparatus for the scheduling of computing tasks |
US9178763B2 (en) | 2013-03-13 | 2015-11-03 | Hewlett-Packard Development Company, L.P. | Weight-based collocation management |
US10496490B2 (en) | 2013-05-16 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
US10592347B2 (en) | 2013-05-16 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
CN104750547B (en) * | 2013-12-31 | 2018-05-18 | 华为技术有限公司 | The input and output I/O request processing method and processing device of virtual machine |
CN104750547A (en) * | 2013-12-31 | 2015-07-01 | 华为技术有限公司 | Input-output (IO) request processing method and device of virtual machines |
US20160188367A1 (en) * | 2014-12-29 | 2016-06-30 | Huawei Technologies Co., Ltd. | Method for scheduling user request in distributed resource system, and apparatus |
US10127079B2 (en) | 2014-12-29 | 2018-11-13 | Huawei Technologies Co., Ltd. | Scheduling user requests in a distributed resource system having plurality of schedulers and coordinators |
US9575691B2 (en) * | 2014-12-29 | 2017-02-21 | Huawei Technologies Co., Ltd. | Scheduling user requests in a distributed resource system having a plurality of schedulers and coordinators |
US20190007338A1 (en) * | 2015-01-20 | 2019-01-03 | Microsoft Technology Licensing, Llc | Controlling fair bandwidth allocation efficiently |
US10097478B2 (en) | 2015-01-20 | 2018-10-09 | Microsoft Technology Licensing, Llc | Controlling fair bandwidth allocation efficiently |
US10630601B2 (en) * | 2015-01-20 | 2020-04-21 | Microsoft Technology Licensing, Llc | Controlling fair bandwidth allocation efficiently |
US10346205B2 (en) * | 2016-01-11 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method of sharing a multi-queue capable resource based on weight |
US10942874B2 (en) | 2018-03-27 | 2021-03-09 | Samsung Electronics Co., Ltd. | Methods and systems that manage fetching of commands by a controller from queues of a host |
US20200196192A1 (en) * | 2018-12-18 | 2020-06-18 | Intel Corporation | Methods and apparatus to enable multi-ap wlan with a limited number of queues |
US10887796B2 (en) * | 2018-12-18 | 2021-01-05 | Intel Corporation | Methods and apparatus to enable multi-AP WLAN with a limited number of queues |
Also Published As
Publication number | Publication date |
---|---|
US20060280119A1 (en) | 2006-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7761875B2 (en) | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change | |
Jin et al. | Interposed proportional sharing for a storage service utility | |
Lu et al. | Feedback control real-time scheduling: Framework, modeling, and algorithms | |
West et al. | Dynamic window-constrained scheduling of real-time streams in media servers | |
US9386086B2 (en) | Dynamic scaling for multi-tiered distributed systems using payoff optimization of application classes | |
US8997107B2 (en) | Elastic scaling for cloud-hosted batch applications | |
US7823154B2 (en) | System and method for providing, by a plurality of schedulers, differentiated service to consumers of distributed resources | |
Pacifici et al. | Performance management for cluster-based web services | |
US7362766B2 (en) | System and method for dynamically controlling weights assigned to consumers competing for a shared resource | |
Wang et al. | Multi-resource generalized processor sharing for packet processing | |
Yfoulis et al. | Honoring SLAs on cloud computing services: a control perspective | |
Zhang et al. | A virtual deadline scheduler for window-constrained service guarantees | |
Xu et al. | Model predictive feedback control for QoS assurance in webservers | |
Cucinotta et al. | QoS control for pipelines of tasks using multiple resources | |
Lin et al. | Two-tier project and job scheduling for SaaS cloud service providers | |
Karlsson et al. | Controllable fair queuing for meeting performance goals | |
Pham et al. | Dilos: A dynamic integrated load manager and scheduler for continuous queries | |
Neugebauer et al. | Congestion prices as feedback signals: An approach to QoS management | |
Cardei et al. | Hierarchical feedback adaptation for real time sensor-based distributed applications | |
Karatza | A comparison of load sharing and job scheduling in a network of workstations | |
Bhola et al. | Utility-aware resource allocation in an event processing system | |
Wang et al. | On fairness-efficiency tradeoffs for multi-resource packet processing | |
Karlsson et al. | Non-intrusive performance management for computer services | |
Wang et al. | Proportional service allocation in distributed storage systems | |
Pacifici et al. | Performance management for web services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KARAMANOLIS, CHRISTOS;KARLSSON, MAGNUS;REEL/FRAME:016689/0603 Effective date: 20050610 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001 Effective date: 20151027 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
AS | Assignment |
Owner name: SNOWFLAKE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP;REEL/FRAME:054969/0843 Effective date: 20201218 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |