JCL Step Pipelining for Mainframe I/O Cost Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Job Control Language (JCL) step processing in IBM mainframe systems incurs high file Input/Output (I/O) costs due to the sequential nature of processing, which necessitates reading and writing datasets for each step, leading to inefficiencies in batch processing operations.

Innovation Solution

Implementing a method to classify JCL steps into groups where pipelining is available or unavailable, allowing for parallel execution and transferring output data from one step to the input stream of another when datasets are identical, thereby reducing the need for sequential I/O operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sequential processing of JCL steps is used, then each step can be processed in order with proper data flow control, but file I/O costs increase and processing speed decreases

Engineering Contradiction:
Improveprocessing speedVSAvoidfile I/O cost
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements pipelining between JCL steps where the output dataset of one step is directly fed to the input dataset of the next step without writing to disk. This continuous data flow eliminates the read-write cycle that occurs in sequential processing, keeping data in memory buffers and maintaining continuous useful action across step boundaries, thereby reducing file I/O costs and improving processing speed

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The patent performs static analysis on JCL code beforehand to identify steps where pipelining is available (where output dataset of one step matches input dataset of another). This preliminary classification allows the system to prepare and establish pipeline connections in advance, enabling parallel execution of compatible steps and avoiding sequential file I/O operations during actual processing

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parallel execution of JCL steps is implemented, then processing efficiency improves, but system complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments JCL steps into different groups based on pipelining availability - steps where pipelining is available are identified and separated from those where it is not. This segmentation allows the system to apply parallel execution only to compatible steps while maintaining sequential processing for others, thereby improving efficiency without excessively increasing system complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a pipeline management mechanism that acts as an intermediary between JCL steps. This intermediary handles the complex tasks of matching output datasets with input datasets, establishing pipeline connections, and coordinating parallel execution. By centralizing this complexity in a dedicated management layer, the overall system complexity is controlled while still enabling parallel processing benefits

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11307893B2Pipelining for step input dataset and output dataset
Publication Date: 2022.04.19 TMAXSOFT
  • US11307893B2 patent drawing
  • US11307893B2 patent drawing
  • US11307893B2 patent drawing

AI summary

According to an exemplary embodiment of the present disclosure, a computer program stored in a computer readable storage medium is disclosed. The computer program includes instructions which cause a processor to execute steps, the steps including: classifying a first group and a second group by executing static analysis to a code including plural steps stated in Job Control Language (JCL), the first group including one or more steps where pipelining is available, the second group including one or more steps where pipelining is unavailable; determining a sequential or parallel execution of the plural steps based on a classification result; and transferring an output data of a first step to an input stream of a second step based on an order of steps included in the first group when processing steps included in the first group among the plural steps.