Patent ID: 9712591
Date: 2017-07-18
CPC Classifications: G06F,H04L

Claim:
1. An apparatus comprising: at least one processor; a memory coupled to the at least one processor; a streaming application residing in the memory and executed by the at least one processor, the streaming application comprising a flow graph that includes a plurality of operators that process a plurality of data tuples; and a streams manager residing in the memory and executed by the at least one processor, the streams manager executing the streaming application and determining a monetary cost of executing the streaming application, wherein the monetary cost of executing the streaming application comprises: when a monetary cost of executing at least a portion of the streaming application can be reduced by maintaining enough buffer to ensure the overage charges are unlikely to occur, the streams manager submits a request to a cloud manager to provision at least one virtual machine according to a monetary cost of the at least one virtual machine, wherein the request specifies a maximum monetary cost, and after the cloud manager provisions the at least one virtual machine, the streams manager modifies the flow graph to deploy the portion of the streaming application to the at least one virtual machine, wherein the portion of the streaming application deployed to the at least one virtual machine comprises the plurality of operators, wherein the streams manager determines when the monetary cost of the streaming application can be reduced by comparing a current monetary cost of at least one portion of the streaming application to at least one monetary cost threshold.