×

Method and system for arbitraging computer resources in a cloud computing environment

  • US 9,755,988 B2
  • Filed: 07/23/2014
  • Issued: 09/05/2017
  • Est. Priority Date: 05/30/2010
  • Status: Active Grant
First Claim
Patent Images

1. A method executed on or more control data processors to control processing of a data processing workload among a plurality of competing cloud computing resources, the method comprising:

  • receiving, over a first network connection from a user processor, a specification for the data processing workload consisting of two or more different types of data and consumer constraints that include a bid and a proposed duration;

    maintaining, in a storage media, price history information for each of the plurality of competing cloud computing resources, wherein the price history information indicates a price per unit of time that varies over time for each type of data;

    maintaining, in the storage media, information concerning occurrences of past workloads successfully completing during a designated duration, and information concerning occurrences of past workloads failing to compete during a designated duration, for each of the plurality of competing cloud computing resources;

    utilizing, by one or more of the control data processors, the price history information, the specification for the data processing workload, the bid, and the proposed duration to determine a schedule that comprises(a) a number of tasks the data processing workload should be broken into, wherein the number of tasks being two or more tasks and selected based on the two or more different types of data that make up the workload and the price history information for completing tasks that correspond to the two or more different types of data that make up the workload,wherein the number of the two or more tasks is selected to obtain an optimal compute processing price for processing the data processing workload across selected competing cloud computing resources of the plurality of competing cloud computing resources;

    (b) a selected particular one of the competing cloud resources to execute each of said two or more tasks, such that at least two tasks execute on two different particular ones of the cloud computing resources;

    (c) a determined duration that each of said two or more tasks should be processed for; and

    (d) an assigned start time that each of the two or more tasks should begin to be processed at two or more particular cloud computing resources selected from the plurality of competing cloud computing resources;

    determining a probability that the data processing workload will be processed within the bid price and the proposed duration of the consumer constraints using the particular cloud computing resources of the plurality of competing cloud computing resources, wherein the probability is based on a determination of all optimized processing prices for the data processing workload across the plurality of competing cloud computing resources given the consumer constraints and a function;

    P(A)=(n(A))/(n(S)) where n(A) depends on the past occurrences of workloads successfully completing for the particular cloud computing resources during the designated duration, and n(S) is a sum of the past occurrences of workloads successfully completing for the particular cloud computing resources during the designated duration and the past occurrences of workloads failing to complete for the particular cloud computing resources during the designated duration;

    forwarding, to the user processor over one of the network connections, the price, the proposed duration, and the probability that the workload will be processed within the proposed duration;

    receiving, from the user processor, information indicating that execution of the workload should proceed;

    assigning each of the two or more tasks, to the two or more particular cloud computing resources according to the schedule, so that each of the two or more tasks is assigned to execute on each of the particular cloud computing resources beginning at the respective assigned start time for the determined duration further comprising;

    sending a first task over a network connection, to a first one of the two or more particular cloud computing resources;

    monitoring, over a network connection, a processing status of the first task on the first one of the two or more particular cloud computing resources;

    stopping execution of the first task on the first one of the particular cloud computing resources; and

    sending the first task, over a second network connection, to a second one of the particular cloud computing resources, and thereby subsequently continuing execution of the first task on the second one of the particular cloud computing resources.

View all claims
  • 10 Assignments
Timeline View
Assignment View
    ×
    ×