# US 8,789,050 B2 · Systems and methods for transparently optimizing workloads

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,789,050 B2
- Document ID: US8789050B2
- Status: Granted
- Kind: B2
- Application number: 13/963,980
- Filed: 2013-08-09
- Published: 2013-12-26
- Granted: 2014-07-22
- Earliest claimed: 2011-03-11
- Assignees: Joyent, Inc.
- Applicants: Jason A. Hoffman; James Duncan; Mark G. Mayo; David P. Young
- Inventors: Jason A. Hoffman; James Duncan; Mark G. Mayo; David P. Young
- Web page: https://patentgrep.com/patent/US8789050B2

## CPC

- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F 9/5072: {Grid computing}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, methods, and media for transparently optimizing a workload of a containment abstraction are provided herein. Methods may include monitoring a workload of the containment abstraction, the containment abstraction being at least partially hardware bound, the workload corresponding to resource utilization of the containment abstraction, converting the containment abstraction from being at least partially hardware bound to being entirely central processing unit (CPU) bound by placing the containment abstraction in a memory store, based upon the workload, and allocating the workload of the containment abstraction across at least a portion of a data center to optimize the workload of the containment abstraction.

## Claims

### Claim 1

A method for transparently optimizing a workload of a containment abstraction, comprising:
determining if an at least partially hardware bound containment abstraction should be converted to an entirely central processing unit (CPU) bound containment abstraction based upon priority of the at least partially hardware bound containment abstraction;
converting the at least partially hardware bound containment abstraction to being an entirely CPU bound containment abstraction by placing the containment abstraction in a memory store, based upon the priority;
allocating the workload of the entirely CPU bound containment abstraction across at least a portion of a data center to optimize the workload of the entirely CPU bound containment abstraction; and
automatically reverting the entirely CPU bound containment abstraction back to being at least partially hardware bound when another containment abstraction having higher priority is determined to require conversion.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the containment abstraction includes any of a virtual computing machine, an application, a program, an operating system virtualization, a virtual environment, a jail, a virtual private server, or any combination thereof.

### Claim 3 (depends on 1)

The method according to claim 1, wherein converting includes placing the containment abstraction in a storage object and caching the storage object in the memory store associated with a cloud.

### Claim 4 (depends on 1)

The method according to claim 1, further comprising:
gathering asynchronous data output from the entirely CPU bound containment abstraction; and
synchronously providing the gathered data, based upon the priority of the containment abstraction, to a database associated with a virtual private server.

### Claim 5 (depends on 1)

The method according to claim 1, wherein determining if an at least partially hardware bound containment abstraction should be converted to an entirely CPU bound containment abstraction includes determining an eligibility of the at least partially hardware bound containment abstraction to be converted.

### Claim 6 (depends on 5)

The method according to claim 5, wherein the at least partially hardware bound containment abstraction is eligible to be converted when the priority of the containment abstraction is determined to be highest priority of any remaining at least partially hardware bound containment abstractions.

### Claim 7 (depends on 5)

The method according to claim 5, wherein the entirely CPU bound containment abstraction is eligible to be reverted back to being at least partially hardware bound when the workload of the containment abstraction falls below expected workload for a period of time.

### Claim 8 (depends on 7)

The method according to claim 7, further comprising communicating aggregated asynchronous output of the entirely CPU bound containment abstraction to a data store of the data center upon an occurrence of a reversion event.

### Claim 9 (depends on 1)

The method according to claim 1, wherein the data center includes a plurality of servers in a network.

### Claim 10 (depends on 9)

The method according to claim 9, wherein determining further includes:
ranking a plurality of at least partially hardware bound containment abstractions by comparing end user specifics of the plurality of at least partially hardware bound containment abstractions to one another; and
prioritizing which of the plurality of at least partially hardware bound containment abstractions are to be converted based upon the ranking.

### Claim 11 (depends on 1)

The method according to claim 1, further comprising determining an amount of the at least a portion of the data center to which the workload of the entirely CPU bound containment abstraction is allocated based upon the priority of the entirely CPU bound containment abstraction.

### Claim 12 (depends on 10)

The method according to claim 10, wherein the end user specifics include:
customer desires,
quality of service requests,
service latency requirements,
economic considerations of a customer, and
economic considerations of administrators of the data center.

### Claim 13 (depends on 1)

The method according to claim 1, wherein the entirely CPU bound containment abstraction is distributed across memory stores of a plurality of servers of the data center.

### Claim 14

A system for transparently optimizing a performance of a containment abstraction, comprising:
a memory for storing executable instructions for transparently optimizing the performance of a containment abstraction; and
a processor that executes the instructions stored in the memory to:
determine if an at least partially hardware bound containment abstraction should be converted to an entirely central processing unit (CPU) bound containment abstraction based upon the priority of the at least partially hardware bound containment abstraction, the determination further including:
ranking a plurality of at least partially hardware bound containment abstractions by comparing end user specifics of the plurality of at least partially hardware bound containment abstractions to one another; and
prioritizing which of the plurality of at least partially hardware bound containment abstractions are to be converted based upon the ranking;
convert the at least partially hardware bound containment abstraction to being an entirely CPU bound containment abstraction by placing the containment abstraction in a memory store, based upon the priority; and
allocate the workload of the entirely CPU bound containment abstraction across at least a portion of a data center to optimize the workload of the entirely CPU bound containment abstraction, the data center including a plurality of servers in a network.

### Claim 15 (depends on 14)

The system according to claim 14, wherein the containment abstraction includes any of a virtual computing machine, an application, a program, an operating system virtualization, a virtual environment, a jail, a virtual private server, or any combination thereof.

### Claim 16 (depends on 14)

The system according to claim 14, wherein the processor further executes the instructions to convert by placing the containment abstraction in a storage object and caching the storage object in the memory store associated with a cloud.

### Claim 17 (depends on 14)

The system according to claim 14, wherein the processor further executes the instructions to:
gather asynchronous data output from the entirely CPU bound containment abstraction; and
synchronously provide the gathered data, based upon the priority of the containment abstraction, to a database associated with a virtual private server.

### Claim 18 (depends on 14)

The system according to claim 14, wherein the processor further executes the instructions to revert the entirely CPU bound containment abstraction to being at least partially hardware bound upon an occurrence of a reversion event.

### Claim 19 (depends on 14)

The system according to claim 14, wherein the end user specifics include:
customer desires,
quality of service requests,
service latency requirements,
economic considerations of a customer, and
economic considerations of administrators of the data center.

### Claim 20

A method for transparently converting asynchronous output of a containment abstraction to synchronous output, comprising:
determining if the asynchronous output of the containment abstraction indicates that the containment abstraction is busy, the containment abstraction being at least partially hardware bound;
responsive to determining, converting the containment abstraction from being at least partially hardware bound to being entirely central processing unit (CPU) bound by placing the containment abstraction in a memory store;
aggregating the asynchronous output of the entirely CPU bound containment abstraction;
synchronously providing the aggregated asynchronous output, based upon priority of the entirely CPU bound containment abstraction, to a data store; and
automatically reverting the entirely CPU bound containment abstraction back to being at least partially hardware bound when another containment abstraction having higher priority is determined to require conversion.
