IP Library Granted Patent US 10,673,952
Granted Patent B1
US 10,673,952 · App. 15/474,222 · Granted Jun 2, 2020

Systems, apparatus, and methods for managing computer workload availability and performance

Inventors: Mor Cohen (New York, NY); Endre Sara (Briarcliff Manor, NY); Danilo Florissi (Briarcliff Manor, NY); Nitya Hemang Vyas (Jamaica, NY); David Olshefski (New York, NY); Milin Jaiswal (New York, NY)
Assignee: TURBONOMIC, INC.
H04L67/14H04L67/10H04L67/16H04L67/36G06F2009/4557G06F2009/45562G06Q20/20
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 10,673,952
App. No.
15/474,222
Granted
Jun 2, 2020
Kind
B1
Abstract

Systems, apparatus and methods are disclosed which are directed to computer program products for managing multiple instances of an application or other entities, including managing instances of an application or other entities across multiple environments, in each case while assuring application performance to the extent possible given the resources available. The disclosed management software and/or processes may also be used to ensure that an application is running in multiple geo localities (e.g., discrete and/or physically separated geographical locations).

Claims (31)

1. A computer-implemented method for managing application availability in a computer system, comprising:

determining a minimum number of instances of a highly available application to be made available in the computer system; and

upon determining that the computer system does not meet the minimum number of the instances of the highly available application:

(i) initializing a virtual application (VApp), wherein the VApp is used to manage the instances of the highly available application;

(ii) determining the number of clones of the highly available application to be made available in the computer system;

(iii) purchasing, by the highly available application, at least one high availability commodity (HACommodity);

(iv) assigning a selling price for the at least one HACommodity based at least in part on a determined profitability requirement; and

(v) selling, by the highly available application, the at least one HACommodity to the VApp at or above the assigned selling price, wherein the sale and an associated profitability results in the cloning of at least one of the highly available application and the VApp so as to cause the minimum number of the instances of the highly available application to be met in the computer system.

2. The computer-implemented method of claim 1 , wherein the determining a minimum number of instances of a highly available application to be made available in the computer system is based at least in part on one or more of the actual or expected demand for the application, the type of application, the importance of the application, the expected or contracted availability of the application, or the degradation on system performance in the absence of an available instance of the application.

3. The computer-implemented method of claim 1 , wherein the determining a minimum number of instances of a highly available application to be made available in the computer system is based at least in part on a determined cost to maintain availability.

4. The computer-implemented method of claim 1 , wherein the determining the number of clones is based at least in part on the cost of one or more resources in the computer system.

5. The computer-implemented method of claim 1 , further comprising:

determining a minimum number of instances of a second highly available application to be made available in the computer system; and

initializing a second virtual application (VApp), wherein the second VApp is used to manage the instances of the second highly available application.

6. The computer-implemented method of claim 1 , wherein the assigned selling price for the at least one HACommodity results in revenue generation for the highly available application when a predetermined number of instances of that highly available application is not met.

7. The computer-implemented method of claim 1 , wherein the purchasing, by the highly available application, at least one high availability commodity (HACommodity) comprises purchasing from a virtual machine.

8. The computer-implemented method of claim 1 , wherein the VApp distributes its load across underlying applications according to a round robin distribution scheme.

9. The computer-implemented method of claim 1 , further comprising resizing the VApp to accommodate a determined demand for the highly available application.

10. The computer-implemented method of claim 9 , wherein the resizing comprises adding at least one application to the VApp.

11. The computer-implemented method of claim 9 , wherein the resizing comprises removing at least one application from the VApp.

12. The computer-implemented method of claim 1 , wherein there is only one highly available application on a first virtual machine, and wherein the VApp is attached to the one highly available application.

13. The computer-implemented method of claim 1 , wherein there are multiple highly available applications on a first virtual machine, and wherein the VApp is attached to a load balancer on the first virtual machine.

14. The computer-implemented method of claim 1 , wherein there is only one highly available application on a first virtual machine, and wherein the highly available application triggers a clone of the virtual machine.

15. A computer system for managing application availability, 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:

determining a minimum number of instances of a highly available application to be made available in the computer system; and

upon determining that the computer system does not meet the minimum number of the instances of the highly available application:

(i) initializing a virtual application (VApp), wherein the VApp is used to manage the instances of the highly available application;

(ii) determining the number of clones of the highly available application to be made available in the computer system;

(iii) purchasing, by the highly available application, at least one high availability commodity (HACommodity);

(iv) assigning a selling price for the at least one HACommodity based at least in part on a determined profitability requirement; and

(v) selling, by the highly available application, the at least one HACommodity to the VApp at or above the assigned selling price, wherein the sale and an associated profitability results in the cloning of at least one of the highly available application and the VApp so as to cause the minimum number of the instances of the highly available application to be met in the computer system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2022
From: TURBONOMIC, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062202/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2017
From: COHEN, MOR; SARA, ENDRE; FLORISSI, DANILO; VYAS, NITYA HEMANG; OLSHEFSKI, DAVID; JAISWAL, MILIN
To: TURBONOMIC, INC.
Reel/Frame 041857/0781 →
Continuity (24)
Continuation In Part 15351356 · Nov 14, 2016
Continuation In Part 15351342 · Nov 14, 2016
Continuation In Part 15351319 · Nov 14, 2016
Continuation In Part 15152459 · May 11, 2016
Continuation In Part 15152459
Continuation In Part 15152459
Continuation In Part 15474222
Continuation In Part 14810327 · Jul 27, 2015
Continuation In Part 14810357 · Jul 27, 2015
Continuation In Part 14810284 · Jul 27, 2015
Continuation In Part 14810302 · Jul 27, 2015
Continuation In Part 14539973 · Nov 12, 2014
Continuation In Part 14539973
Continuation In Part 14539973
Continuation In Part 14539973
Provisional Application 62435497 · Dec 16, 2016
Provisional Application 62316340 · Mar 31, 2016
Provisional Application 62256559 · Nov 17, 2015
Provisional Application 62256645 · Nov 17, 2015
Provisional Application 62255859 · Nov 16, 2015
Provisional Application 62159883 · May 11, 2015
Provisional Application 62077860 · Nov 10, 2014
Provisional Application 62077898 · Nov 10, 2014
Provisional Application 62077852 · Nov 10, 2014
Cited By (2)
US 12,271,749 US 12,489,681