Critical Path

AAI is a real-time, dynamic solution which not only monitors current information, but allows users and decision makers to proactively interact with their environments to fix problems and drive efficiencies. One of the most central roles and value propositions of AAI is SLA management. The critical path is one of the most important features in AAI because it is the critical path which determines if a jobstream will make or miss its SLA.

The critical path allows you to recognize which jobs are affecting you SLA compliance, thus giving you the ability to optimize batch windows more effectively. This can help you improve SLA compliance and deliver better service to the business.

This page includes the following:

Overview

The critical path is a specific sequence of jobs within a jobstream that directly affect or are predicted to affect the completion time of a jobstream. It singles out every job in the jobstream that comprises the longest path required for a particular jobstream run to be successful. This means that if any of the jobs on the critical path are delayed, the jobstream is also delayed.

A delay on a job that is not on the critical path does not necessarily affect the completion time of the jobstream. However, if a job that is not on the critical path is delayed enough to affect the completion of the jobstream, AAI adds it dynamically to the critical path in real-time. Therefore, the critical path can change from run to run.

AAI uses the target job of a jobstream and the end time of its predecessors (upstream dependencies) for the critical path definition of a particular jobstream run.

The target job is the end point in the jobstream. It is the end job against which you track an SLA. It is typically a job that you consider critical to your business: either the job needs to finish by a particular time, or it is critical to your environment in some other way. AAI automatically creates historical views of the jobstream by tracing the upstream dependencies of the target job. It is used as criterion to determine lateness; if the target job is late or predicted to be late, alerts are triggered.

In each historical run, a unique critical path is calculated. This unique critical path represents the jobs, in that particular run, that comprised the longest path to the successful completion of the target job.

Through historical analytics, you can see which jobs have appeared on the critical path the most frequently. This is very important because if you want to improve your batch window, you must find ways to shorten the critical path of your jobstream runs. The critical path analysis within AAI provides the visibility into this crucial critical path information.

You can move up and down the critical path and also decide which dependencies you want to see. For more information, see Critical Path - Toolbar and Pop-Up Menu Options.

Defining the Critical Path

AAI uses a specific method to define the critical path automatically for each run. When you select a target job of interest, AAI automatically traces the upstream dependencies and the critical path (in real-time) for that target job.

Important !

AAI uses time as an organizing principle, not criticallity! Critical paths are calculated based on runtimes. They evolve from run to run.

Understanding that AAI calculates a critical path for each jobstream run is very important. It is not specific to a scheduler definition or AAI jobstream itself. If a jobstream runs 100 times a month, you potentially have a 100 different critical paths because some jobs may be included on the critical path for one run but not the next. Some jobs are constant and always part of the critical path. Some may or may not be included; some are never included.

The critical path always starts from the target job and goes backwards from there, using the end time of the predecessors (upstream dependencies) to determine the next job on the critical path.

The jobstream can only be successful if the target job is completed. AAI defines the critical path by asking one simple question: What is preventing the target job from executing?

Example

The critical path for this jobstream run is set as follows:

  1. The critical path always starts from the target job.

  2. AAI keeps looking backwards and finds that the target job has only one predecessor and adds it to the critical path, regardless of its end time.

  3. Going further back, AAI establishes that the job added to the critical path has four predecessors of its own. In this case, AAI adds the job with the latest end time to the critical path.

  4. Going further back, AAI finds one predecessor for that job and includes it on the critical path.

  5. Going further back, AAI finds four jobs with the same starting time. However, the one with the longest runtime is not marked as a dependency and is therefore not included on the critical path.

  6. AAI includes the one job that is marked as a predecessor to the critical path.

  7. Going further back, AAI finds the next dependency and adds it to the critical path.

This jobstream run critical path definition is not the same every time. For example, one of the predecessors mentioned on step 3 could run longer than the job included on the critical path now. This means that, in the next run, that job would be included on the critical path and AAI continues going further back based on that job, thus changing the critical path for that particular run.

The process is the same for jobstreams with embedded containers. AAI assesses the jobstream based on the target job and the runtimes of the predecessors and evaluates nested containers the same way. If the nested container is on the critical path, then AAI figures out the items inside the container that are blocking its execution and includes those jobs to the critical path as well.

Critical Path Optimization

The goal of optimizing the critical path of a jobstream is to tighten SLAs and therefore deliver better service to the business. Contracting the critical path leads to an immediate improvement of the overall runtime.

One of the most immediate benefits of AAI is how data is depicted. While job definitions in the scheduler might be difficult to discern and anticipating potential runtimes might not be possible, the historical, real time and predicted gantt chart views show individual executions of a jobstream. Runtimes are conveyed with simple bars and dependencies with arrows. Nested containers like boxes and workflows are represented with bars of various colors and so it is very easy to work through the process.

Additionally, every time a process runs in your external workload automation engines, a matching run is generated in AAI and depicted in a clear and eminently readable way. For each of these runs, AAI points out the jobs that are central to the success of the jobstream based on the target job and its predecessors.

AAI also has a pre-configured report that produces a list of jobs with a high degree of critical path inclusion. By combining this data with very long average runtimes you can get a solid list of candidates for improvements. For more information, see Trending by Critical Path History Report.

This not only allows you to easily monitor process runtimes, making sure they execute under certain deadlines and alerting operations teams when needed. It also uncovers opportunities for batch window improvements by singling out jobs that slow things down.

Since the critical path is specific to a jobstream run, there is no one way of optimizing it. However, you can look at the successive runs of jobstreams to quickly detect the most promising opportunities and consider the following aspects:

  • Very short runtimes might not be relevant because the upside is limited.

  • Jobs that tend to move in and out of the critical path from one run to the next might not be worth considering.

  • If a job on the critical path shares a downstream critical path successor with other predecessors with comparable runtimes, the upside might be limited because one of the siblings (the longest one) would take its place on the critical path.

  • Consider contracting jobs that are constant on the critical path and are the only predecessor to another job on the critical path.

See also: