IP Library Granted Patent US 10,853,148
Granted Patent B1
US 10,853,148 · App. 16/109,938 · Granted Dec 1, 2020

Migrating workloads between a plurality of execution environments

Inventors: Chadd Kenney (Belmont, CA); Farhan Abrol (San Francisco, CA); Lei Zhou (Santa Clara, CA); Yi-Chin Wu (Mountain View, CA); Apoorva Bansal (Mountain View, CA)
Assignee: Pure Storage, Inc.
G06F9/5088G06F9/4881
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,853,148
App. No.
16/109,938
Filed
Aug 23, 2018
Granted
Dec 1, 2020
Kind
B1
Examiner
SUN, CHARLIE
Art Unit
2196
USPC
718/105
Abstract

Migrating workloads between a plurality of execution environments, including: identifying, in dependence upon on characteristics of a workload, one or more execution environments that can support the workload; determining, for each execution environment, costs associated with supporting the workload on the execution environment; selecting, in dependence upon the costs associated with supporting the workload on each the execution environments, a target execution environment for supporting the workload; and executing the workload on the target execution environment.

Claims (52)

1. A method comprising:

identifying, for a plurality of workloads, one or more execution environments that can support each workload in dependence upon a characteristic of each workload;

determining, for a plurality of workload placement scenarios, cumulative costs associated with supporting each workload in accordance with each of the workload placement scenarios;

selecting, in dependence upon the cumulative costs associated with supporting each workload on each the execution environments in accordance with each of the workload placement scenarios, a target execution environment for supporting each workload; and

executing a workload on its selected target execution environment.

2. The method of claim 1 further comprising:

detecting a change to a particular workload; and

migrating the particular workload from a particular target execution environment to a new target execution environment.

3. The method of claim 1 further comprising:

predicting a change to a workload; and

migrating the workload from a particular target execution environment to a new target execution environment.

4. The method of claim 1 further comprising:

detecting a change to the costs associated with supporting a particular workload on a particular execution environment; and

migrating the particular workload from the target execution environment to a new target execution environment.

5. The method of claim 1 wherein identifying, for a plurality of workloads, one or more execution environments that can support each workload in dependence upon a characteristic of each workload further comprises identifying one or more execution environments that can meet predetermined performance requirements associated with each workload.

6. The method of claim 1 wherein:

identifying, for a plurality of workloads, one or more execution environments that can support each workload in dependence upon a characteristic of each workload further comprises identifying one or more execution environments that can support each workload in dependence upon on a workload fingerprint; and

determining, for a plurality of workload placement scenarios, cumulative costs associated with supporting each workload in accordance with each of the workload placement scenarios further comprises determining, for each execution environment, the costs associated with supporting each workload in dependence upon on the workload fingerprint.

7. The method of claim 6 further comprising generating, for one or more of workloads, predicted characteristics of the one or more workloads.

8. An apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

identifying, for a plurality of workloads, one or more execution environments that can support each workload in dependence upon a characteristic of each workload;

determining, for a plurality of workload placement scenarios, cumulative costs associated with supporting each workload in accordance with each of the workload placement scenarios;

selecting, in dependence upon the cumulative costs associated with supporting each workload on each the execution environments in accordance with each of the workload placement scenarios, a target execution environment for supporting each workload; and

executing a workload on its selected target execution environment.

9. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

detecting a change to a particular workload; and

migrating the particular workload from a particular target execution environment to a new target execution environment.

10. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

predicting a change to a workload; and

migrating the workload from a particular target execution environment to a new target execution environment.

11. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

detecting a change to the costs associated with supporting a particular workload on a particular execution environment; and

migrating the particular workload from the target execution environment to a new target execution environment.

12. The apparatus of claim 8 wherein identifying, for a plurality of workloads, one or more execution environments that can support each workload in dependence upon a characteristic of each workload further comprises identifying one or more execution environments that can meet predetermined performance requirements associated with each workload.

13. The apparatus of claim 8 wherein:

identifying, for a plurality of workloads, one or more execution environments that can support each workload in dependence upon a characteristic of each workload further comprises identifying one or more execution environments that can support each workload in dependence upon on a workload fingerprint; and

determining, for a plurality of workload placement scenarios, cumulative costs associated with supporting each workload in accordance with each of the workload placement scenarios further comprises determining, for each execution environment, the costs associated with supporting each workload in dependence upon on the workload fingerprint.

14. The apparatus of claim 13 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of further comprising generating, for one or more of workloads, predicted characteristics of the one or more workloads.

15. A storage system comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the storage system to carry out the steps of:

identifying, for a plurality of workloads, one or more execution environments that can support each workload in dependence upon a characteristic of each workload;

determining, for a plurality of workload placement scenarios, cumulative costs associated with supporting each workload in accordance with each of the workload placement scenarios;

selecting, in dependence upon the cumulative costs associated with supporting each workload on each the execution environments in accordance with each of the workload placement scenarios, a target execution environment for supporting each workload; and

executing a workload on its selected target execution environment.

16. The storage system of claim 15 further comprising computer program instructions that, when executed by the computer processor, cause the storage system to carry out the steps of:

detecting a change to a particular workload; and

migrating the particular workload from a particular target execution environment to a new target execution environment.

17. The storage system of claim 15 further comprising computer program instructions that, when executed by the computer processor, cause the storage system to carry out the steps of:

predicting a change to a workload; and

migrating the workload from a particular target execution environment to a new target execution environment.

18. The storage system of claim 15 further comprising computer program instructions that, when executed by the computer processor, cause the storage system to carry out the steps of:

detecting a change to the costs associated with supporting a particular workload on a particular execution environment; and

migrating the particular workload from the target execution environment to a new target execution environment.

Assignments (3)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2018
From: KENNEY, CHADD; ABROL, FARHAN; ZHOU, LEI; WU, YI-CHIN; BANSAL, APOORVA
To: PURE STORAGE, INC.
Reel/Frame 046676/0541 →
Cited By (9)
US 12,204,988 US 12,229,405 US 12,229,588 US 12,236,264 US 12,436,811 US 12,554,545 US 12,580,068 US 12,650,784 US 12,669,965