IP Library › Granted Patent US 9,253,059
Granted Patent B2
US 9,253,059 · App. 13/709,438 · Granted Feb 2, 2016

Deploying an executable with historical performance data

Inventors: Michael J. Branson (Rochester, MN); John M. Santosuosso (Rochester, MN); Brandon W. Schulz (Rochester, MN)
Assignee: International Business Machines Corporation
H04L43/08G06F9/505G06F9/5044G06F9/5055G06F9/5088G06F17/30516G06F2209/508
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,253,059
App. No.
13/709,438
Granted
Feb 2, 2016
Kind
B2
Abstract

Techniques for incorporating performance data into an executable file for an application are described. Embodiments monitor performance of an application while the application is running. Additionally, historical execution characteristics of the application are determined based upon the monitored performance and one or more system characteristics of a node on which the application was executed on. Embodiments also incorporate the historical execution characteristics into executable file for the application, such that the historical execution characteristics can be used to manage subsequent executions of the application.

Claims (26)

1. A method for incorporating performance data into an executable file for an application, comprising:

monitoring performance of the executable file for the application while the executable file is executing on a node;

determining the performance data of the application based on the monitored performance and one or more system characteristics of the node;

incorporating the performance data into the executable file for the application for subsequent retrieval from the executable file, further comprising:

storing the performance data in a plurality of global variables in a source code for the application; and

compiling the source code including the performance data stored in the plurality of global variables to create the executable file for the application, such that the performance data can subsequently be retrieved from the executable file;

deploying the executable file containing the incorporated performance data for the application to a first node for execution;

retrieving the performance data from the executable file for use in managing the execution of the executable file: and

performing a remedial action for the deployed application, upon determining that a potential workload overflow problem exists for the deployed application based on s stem information describing attributes of the first node and the retrieved performance data.

2. The method of claim 1 , wherein the application is a processing element in a stream computing application, and further comprising:

retrieving system information for each of a plurality of nodes inclusive of the node;

selecting one or the plurality of nodes to deploy the processing element based on the retrieved system information and the performance data incorporated into the executable file for the processing element; and

deploying the processing element for execution on the selected node.

3. The method of claim 2 , wherein the processing element is deployed alongside a plurality of other processing elements, and further comprising:

establishing an operator graph of the plurality of other processing elements and the deployed processing element, the operator graph defining at least one execution path and wherein at least one of the processing elements of the operator graph is configured to receive data from at least one upstream processing element and transmit data to at least one downstream processing element.

4. The method of claim 1 , wherein the performance data include at least one of: a processor type, a number of processors, an amount of memory, a type of memory, a type of storage, one or more network connectivity characteristics, and a measure of system workload.

5. The method of claim 1 , further comprising:

determining a number of instances of the application that should be created, based on system information for systems on which the instances of the application will be executed and further based on the performance data; and

creating the determined number of instances of the application on the systems, such that load can be balanced between the created instances of the application.

6. The method of claim 1 , wherein performing a remedial action includes at least one of:

(i) spawning a second instance of the application on a second node and discarding the deployed executable file on the first node,

(ii) migrating the deployed executable file on the first node to a second node,

(iii) modifying an operator graph to reduce a workload of the deployed executable file, and

(iv) modifying one or more operations performed by the deployed executable file.

7. The method of claim 1 , further comprising:

generating a status notification for the deployed executable file, the status notification indicating a current amount of workload for the executable file and a maximum amount of workload for the executable file, based on current workload information for the first node, the system information describing the attributes of the first node and the performance data incorporated into the executable file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2013
From: BRANSON, MICHAEL J.; SANTOSUOSSO, JOHN M.; SCHULZ, BRANDON W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029804/0741 →
Continuity (2)
Continuation 13363647 · Feb 1, 2012
Related Publication 20130198371A1 · Aug 1, 2013