IP Library Granted Patent US 9,805,345
Granted Patent B1
US 9,805,345 · App. 15/152,459 · Granted Oct 31, 2017

Systems, apparatus, and methods for managing quality of service agreements

Inventors: Apostolos Dailianas (Athens, GR); Danilo Florissi (Briarcliff Manor, NY); Nitya Hemang Vyas (Jamaica, NY); Wei Duan (New York, NY); Enlin Xu (New York, NY); Mor Cohen (New York, NY); Shmuel Kliger (Chappaqua, NY)
Assignee: Turbonomic, Inc.
G06Q20/102G06F9/45533G06F9/5061G06Q20/065H04L41/5009H04L41/5029H04L67/12G06F9/5072H04L41/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,805,345
App. No.
15/152,459
Granted
Oct 31, 2017
Kind
B1
Abstract

Systems, apparatus and methods are disclosed which are directed to computer program products for automatically understanding and addressing the QoS adherence of a workload in a computer network. The use of pricing can be used to provide QoS adherence for any type of demand or service. The disclosed methodologies can be applied to applications, to virtual machines, to storage, and/or other types of workload, demand or service that is achieved through the use of shared resources.

Claims (37)

1. A computer-implemented method for dynamic allocation of one or both of hardware and software-based computer resources in a computer system, comprising:

defining, based at least in part on a first and second service level agreement, a first and second quality of service (QoS) requirement respectively associated with a first and second computing workload operating in the computer system, wherein each of the first and second QoS requirements relates to a respective performance level of the workloads;

determining, based on measured performance levels, the closeness of each workload to violating its associated QoS requirement;

automatically assigning a first operating budget of virtual currency units for the first computing workload and a second operating budget of virtual currency units for the second computing workload based at least in part on the determined closeness of each workload to violating its associated QoS requirement;

comparing the first and second assigned budgets to a computer resource bundle purchase price; and

automatically allocating the computer resource bundle to one of the first and second computing workloads which is determined to have an assigned operating budget of virtual currency units which is equal to, or greater than, the computer resource bundle purchase price.

2. The computer-implemented method of claim 1 , further comprising increasing or decreasing the budget for the first computing workload based at least in part on a determination that the performance of the first computing workload is below or above a threshold amount associated with the defined QoS requirement.

3. The computer-implemented method of claim 1 , further comprising increasing or decreasing the budget for the first computing workload based at least in part on the penalty associated with a failure of the first computing workload to meet the defined QoS requirement.

4. The computer-implemented method of claim 1 , wherein the determined budget for the first computing workload is correlated with the priority of the demand for the first computing workload.

5. The computer-implemented method of claim 1 , further comprising determining a budget for a third computing workload in the computer system, wherein the third computing workload does not possess an associated quality of service requirement.

6. The computer-implemented method of claim 5 , wherein the budget for the third computing workload is determined based at least in part on the defined QoS requirement of the first computing workload.

7. The computer-implemented method of claim 1 , wherein the first and second workloads operate in a virtualization system, and wherein each workload is an application, storage, container, or virtual machine.

8. The computer-implemented method of claim 1 , wherein the defined QoS requirement associated with the first workload is correlated to one or more of the first workload's average response time, peak response time, transaction rate, minimum transactions per second, average transactions per second, latency, completion time or delay, or minimum CPU requirement.

9. The method of claim 1 , wherein the closeness of the first computing workload to violating its associated QoS requirement is determined based on one or more of the transaction rate, response time, latency, completion time, or delay of the first workload.

10. The method of claim 1 , wherein the assigning a budget for the first computing workload is further based at least in part on one or more operating conditions of the computer system.

11. The method of claim 10 , wherein the one or more operating conditions of the computer system includes a capacity or usage level of the computer resource bundle.

12. The method of claim 1 , wherein the computer resource bundle includes one or more of an allotment of computer memory, an allotment of program execution scheduling for one or more central processing units, an allotment of storage interface bandwidth, an allotment of network interface bandwidth, or an allotment of a storage device or array.

13. The method of claim 1 , wherein the computer resource bundle purchase price is correlated to the ratio of the usage to capacity of the computer resource bundle.

14. The method of claim 1 , wherein the computer resource bundle purchase price (p) is defined as a function of usage (u) and capacity (c), wherein p(u, c)=1/(1−u/c)^2.

15. A computer system for dynamically allocating one or both of hardware and software-based computer resources, comprising:

instructions stored on a non-transitory computer readable medium in the computer system and executable by a data processing apparatus to cause the data processing apparatus to perform operations comprising:

defining, based at least in part on a first and second service level agreement, a first and second quality of service (QoS) requirement respectively associated with a first and second computing workload operating in the computer system, wherein each of the first and second QoS requirements relates to a respective performance level of the workloads;

determining, based on measured performance levels, the closeness of each workload to violating its associated QoS requirement;

automatically assigning a first operating budget of virtual currency units for the first computing workload and a second operating budget of virtual currency units for the second computing workload based at least in part on the determined closeness of each workload to violating its associated QoS requirement;

comparing the first and second assigned budgets to a computer resource bundle purchase price; and

automatically allocating the computer resource bundle to one of the first and second computing workloads which is determined to have an assigned operating budget of virtual currency units which is equal to, or greater than, the computer resource bundle purchase price.

16. The computer system of claim 15 , wherein the instructions further cause the data processing apparatus to increase or decrease the budget for the first computing workload based at least in part on a determination that the performance of the first computing workload is below or above a threshold amount associated with the defined QoS requirement.

17. The computer system of claim 15 , wherein the instructions further cause the data processing apparatus to increase or decrease the budget for the first computing workload based at least in part on the penalty associated with a failure of the first computing workload to meet the defined QoS requirement.

18. The computer system of claim 15 , wherein the instructions further cause the data processing apparatus to determine a budget for a third computing workload in the computer system, wherein the third computing workload does not possess an associated quality of service requirement.

19. The computer system of claim 15 , wherein the first and second workloads operate in a virtualization system, and wherein each workload is an application, storage, container, or virtual machine.

20. A computer-implemented method for dynamic allocation of one or both of hardware and software-based computer resources to computing workloads in a virtualization system, comprising:

initiating the virtualization system with at least one virtual machine, wherein the virtual machine is a software implementation of a computer that runs at least one guest operating system and executes at least a first and second computing workload on the guest operating system;

defining a first quality of service (QoS) requirement associated with the first computing workload and a second QoS requirement associated with the second computing workload, wherein each QoS requirement relates to a respective performance level of the first and second workloads;

determining a budget for the first computing workload based at least in part on the respective defined QoS requirement associated with each of the first and second computing workloads and a determined closeness of each of the first and second computing workloads to violating its associated QoS requirement; and

automatically allocating a computer resource bundle to the first computing workload if the determined budget is equal to, or greater than, a purchase price for the computer resource bundle.

21. The computer-implemented method of claim 20 , wherein the determining a budget is further based in part on a current operating condition of the virtualization system or the at least one virtual machine.

22. The computer-implemented method of claim 20 , further comprising increasing or decreasing the budget for the first computing workload based at least in part on a determination that the performance of the first computing workload is below or above a threshold amount associated with the defined QoS requirement.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2022
From: TURBONOMIC, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062202/0030 →
RELEASE OF SECURITY INTEREST Recorded Jul 5, 2022
From: SILICON VALLEY BANK
To: TURBONOMIC, INC.
Reel/Frame 060396/0411 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 23, 2019
From: TURBONOMIC, INC.
To: SILICON VALLEY BANK
Reel/Frame 050156/0150 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 23, 2019
From: TURBONOMIC, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 050156/0161 →
CHANGE OF NAME Recorded Sep 22, 2016
From: VMTURBO, INC.
To: TURBONOMIC, INC.
Reel/Frame 040114/0091 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2016
From: DAILIANAS, APOSTOLOS; FLORISSI, DANILO; VYAS, NITYA HEMANG; DUAN, WEI; XU, ENLIN; COHEN, MOR; KLIGER, SHMUEL
To: VMTURBO, INC.
Reel/Frame 039029/0280 →
Continuity (19)
Continuation In Part 14810284 · Jul 27, 2015
Continuation In Part 14539973 · Nov 12, 2014
Continuation In Part 15152459
Continuation In Part 14810302 · Jul 27, 2015
Continuation In Part 14539973 · Nov 12, 2014
Continuation In Part 15152459
Continuation In Part 14810327 · Jul 27, 2015
Continuation In Part 14539973 · Nov 12, 2014
Continuation In Part 15152459
Continuation In Part 14810357 · Jul 27, 2015
Continuation In Part 14539973 · Nov 12, 2014
Provisional Application 62159883 · May 11, 2015
Provisional Application 62255859 · Nov 16, 2015
Provisional Application 62256559 · Nov 17, 2015
Provisional Application 62256645 · Nov 17, 2015
Provisional Application 62316340 · Mar 31, 2016
Provisional Application 62077898 · Nov 10, 2014
Provisional Application 62077852 · Nov 10, 2014
Provisional Application 62077860 · Nov 10, 2014