IP Library › Granted Patent US 9,619,266
Granted Patent B2
US 9,619,266 · App. 14/511,284 · Granted Apr 11, 2017

Tearing down virtual machines implementing parallel operators in a streaming application based on performance

Inventors: Lance Bragstad (Pine Island, MN); Michael J. Branson (Rochester, MN); Bin Cao (Rochester, MN); James E. Carey (Rochester, MN); Mathew R. Odden (Rochester, MN)
Assignee: International Business Machines Corporation
G06F9/45558G06F2009/45562G06F2009/45575G06F2009/45591
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 9,619,266
App. No.
14/511,284
Granted
Apr 11, 2017
Kind
B2
Abstract

A streams manager monitors performance of parallel portions of a streaming application implemented in multiple virtual machines (VMs). When the performance provided by the multiple VMs is no longer needed, one or more of the VMs can be torn down. The performance of the VMs is monitored. When the least performing VM can be torn down, it is torn down. When the least performing VM cannot be torn down, information regarding a better performing VM is gathered, and it is determined whether the least performing VM can be made more similar to the better performing VM. When the least performing VM can be made more similar to the better performing VM, the least performing VM is changed to improve its performance, and the better performing VM is torn down.

Claims (36)

1. A computer-implemented method executed by at least one processor for managing a streaming application, the method comprising:

executing a streaming application that comprises a flow graph that includes a plurality of operators that process a plurality of data tuples, wherein the flow graph comprises a first set of operators implemented in a first virtual machine and a second set of operators implemented in a second virtual machine, wherein the first set of operators and the second set of operators include similar operators and connections between operators and operate on data tuples in parallel;

monitoring performance of the streaming application;

when performance of the streaming application indicates processing data tuples in parallel by the first set of operators and the second set of operators is no longer needed, determining which of the first virtual machine and second virtual machine is least performing;

when the least performing virtual machine can be torn down, tearing down the least performing virtual machine;

wherein when the least performing virtual machine cannot be torn down:

gathering data regarding a better performing virtual machine operating on the flow graph in parallel with the least performing virtual machine;

when the least performing virtual machine can be made more similar to the better performing virtual machine, making at least one change to the least performing virtual machine to improve performance of the least performing virtual machine; and

tearing down the better performing virtual machine;

wherein when the least performing virtual machine cannot be made more similar to the better performing virtual machine:

determining when the least performing virtual machine can be migrated to a location where the least performing virtual machine can be made more similar to the better performing virtual machine;

migrating the least performing virtual machine to the location;

making at least one change to the least performing virtual machine to improve performance of the least performing virtual machine; and

tearing down the better performing virtual machine.

2. The method of claim 1 wherein when the least performing virtual machine cannot be migrated, tearing down the better performing virtual machine.

3. The method of claim 1 further comprising logging performance data for each virtual machine that includes operators in the flow graph.

4. The method of claim 3 further comprising using the logged performance data to determine a desired configuration for a new virtual machine that implements a new set of operators that operate on data tuples in parallel with operators in at least one existing virtual machine.

5. The method of claim 1 wherein tearing down the least performing virtual machine comprises sending a request to a cloud manager to tear down the least performing virtual machine.

6. The method of claim 1 wherein tearing down the better performing virtual machine comprises sending a request to a cloud manager to tear down the better performing virtual machine.

7. A computer-implemented method executed by at least one processor for managing a streaming application, the method comprising:

executing a streaming application that comprises a flow graph that includes a plurality of operators that process a plurality of data tuples, wherein the flow graph comprises a first set of operators implemented in a first virtual machine and a second set of operators implemented in a second virtual machine, wherein the first set of operators and the second set of operators include similar operators and connections between operators and operate on data tuples in parallel;

monitoring performance of the streaming application;

when performance of the streaming application indicates processing data tuples in parallel by the first set of operators and the second set of operators is no longer needed, determining which of the first virtual machine and second virtual machine is least performing;

when the least performing virtual machine can be torn down, tearing down the least performing virtual machine;

when the least performing virtual machine cannot be torn down:

gathering data regarding a better performing virtual machine operating on the flow graph in parallel with the least performing virtual machine;

when the least performing virtual machine can be made more similar to the better performing virtual machine, making at least one change to the least performing virtual machine to improve performance of the least performing virtual machine; and

tearing down the better performing virtual machine;

when the least performing virtual machine cannot be made more similar to the better performing virtual machine:

determining when the least performing virtual machine can be migrated to a location where the least performing virtual machine can be made more similar to the better performing virtual machine;

migrating the least performing virtual machine to the location;

making at least one change to the least performing virtual machine to improve performance of the least performing virtual machine; and

tearing down the better performing virtual machine;

when the least performing virtual machine cannot be migrated, tearing down the better performing virtual machine.

8. The method of claim 7 further comprising logging performance data for each virtual machine that includes operators in the flow graph.

9. The method of claim 8 further comprising using the logged performance data to determine a desired configuration for a new virtual machine that implements a new set of operators that operate on data tuples in parallel with operators in at least one existing virtual machine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2014
From: BRAGSTAD, LANCE; BRANSON, MICHAEL J.; CAO, BIN; CAREY, JAMES E.; ODDEN, MATHEW R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033928/0268 →
Continuity (1)
Related Publication 20160103697A1 · Apr 14, 2016