Data Job Performance Optimizer for SAP ERP
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
It is challenging to determine which approach, either performing data operations in a data service tool or pushing them down to the data source, results in better performance, especially in database-based applications like SAP ERP, where reading is unpredictable due to the absence of indexes on special objects like cluster and pool tables.
Innovation Solution
A performance optimizer determines a new type of data job based on execution parameters, executes it twice, once at the data service tool and once with operations pushed down to the data source, collects performance results, and updates a result storage with a pushdown flag to indicate the optimal execution method for subsequent jobs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If data operations are performed at the data service tool, then the operations can be executed with full control and flexibility, but the performance may be slower due to data transfer and processing overhead
Solution Approach 1:
The system dynamically switches between two execution modes (pushdown to data source vs. execution at data service tool) based on real-time performance benchmarking results. The performance optimizer adapts the execution strategy by selecting the mode that demonstrated better performance for similar operations, making the system flexible and responsive to different data scenarios.
Solution Approach 2:
The invention segments the data processing workflow into two distinct execution paths: (1) pushdown operations where data operations are executed at the data source, and (2) traditional operations where data is transferred to and processed at the data service tool. This segmentation allows the system to choose the optimal path based on performance characteristics.
2Productivity
If data operations are pushed down to the data source, then processing speed may improve by avoiding data transfer, but performance becomes unpredictable especially for database applications with special objects
Solution Approach 1:
The system performs preliminary benchmarking executions before actual data processing to establish performance characteristics. By executing test operations in both modes (pushdown and traditional) and measuring their performance, the system proactively determines the optimal execution strategy for future operations, eliminating the need to guess which approach will be faster.
Solution Approach 2:
The performance optimizer implements a feedback mechanism where benchmarking results from preliminary executions are used to guide subsequent operation execution. The system continuously learns from performance measurements and adjusts its strategy by storing benchmark results and using them to inform future execution mode selections, creating a closed-loop optimization system.
3Productivity
If benchmarking is performed to determine the optimal execution approach, then performance optimization is achieved, but additional time and computational overhead is introduced
Solution Approach 1:
The system performs benchmarking selectively rather than for every single operation. By categorizing operations and using benchmark results from representative samples to guide similar operations, the system achieves performance optimization without the overhead of exhaustive benchmarking for each individual data operation.
Solution Approach 2:
Benchmarking is performed in advance during system initialization or maintenance windows rather than in real-time before every operation. This preliminary benchmarking establishes performance baselines that are then used to guide operation execution, separating the optimization overhead from critical data processing paths.
Data Source
AI summary
Embodiments may be associated with a data source and a data service tool. A performance optimizer may determine a new type of data job to be executed based on a job execution parameter, perform a first execution of the new type of data job (such that data operations are performed at the data service tool), and collect first performance results. The performance optimizer then performs a second execution of the new type of data job (such that data operations are pushed down and performed at the data source) and collects second performance results. The first and second performance results are compared, and a result storage is updated with an indication of whether subsequent executions of the new type of data job will perform data operations at the data service tool or at the data source. The indication stored in the result storage may comprise, for example, a pushdown flag.


