Parallel Distributed Code Analysis for ETL Metadata Accuracy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional systems lack the capability to accurately generate and maintain metadata associated with Extract Transform Load (ETL) transformations, leading to data transformation errors and inefficiencies in processing, as well as the redevelopment of applications due to inaccurate metadata.

Innovation Solution

A system that performs parallel and distributed analysis of program code to generate directed graphs, which includes identifying calculations, dependencies, and cyclic dependencies, and optimizes transformation operations, thereby ensuring accurate metadata generation and maintenance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional systems are used to generate metadata for ETL transformations, then the system structure is simple, but the metadata accuracy is insufficient leading to data transformation errors

Engineering Contradiction:
Improvemetadata accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system segments the code analysis process into distinct components: syntax tree extraction, parallel analysis of calculation identification, dependency detection, and cyclic dependency recognition. Each component handles a specific aspect of metadata generation, improving accuracy while managing complexity through modular design

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A directed graph structure serves as an intermediary representation between the source code and the ETL transformation metadata. The graph models calculations, dependencies, and cyclic dependencies, enabling accurate metadata generation without requiring direct complex parsing of the source code

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If parallel and distributed analysis is performed to generate accurate directed graphs, then metadata accuracy is improved, but the processing time and computational resources increase

Engineering Contradiction:
Improvemetadata accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary syntax tree extraction and code analysis to identify all calculations, dependencies, and cyclic dependencies before generating the directed graph. This preliminary action enables accurate metadata generation while the parallel execution of analysis tasks optimizes the time consumption

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The analysis transitions from sequential single-threaded processing to parallel multi-threaded distributed analysis. By utilizing multiple processing dimensions simultaneously, the system maintains high metadata accuracy while significantly reducing the overall processing time through concurrent execution of analysis tasks

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Reliability

If the system performs comprehensive analysis to identify all dependencies and cyclic dependencies, then transformation accuracy is improved, but the device complexity increases

Engineering Contradiction:
Improvetransformation accuracyVSAvoidanalysis complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements feedback mechanisms where the directed graph is continuously validated against the source code and transformation requirements. Cyclic dependencies are detected and resolved through iterative analysis, ensuring high transformation accuracy while managing complexity through systematic validation loops

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The directed graph acts as an intermediary model that simplifies the representation of complex dependencies. By modeling calculations, dependencies, and cyclic dependencies in graph form, the system achieves comprehensive analysis for high transformation accuracy while the graph structure itself manages the complexity of tracking all relationships

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If cached directed graphs are used for repeated transformations, then processing efficiency is improved, but metadata may become outdated

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidmetadata validity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements a validation feedback mechanism that checks whether cached directed graphs remain valid before use. The smart detection module verifies metadata consistency with the current source code state, ensuring reliability while allowing efficient reuse of cached results when valid

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The caching system is dynamic rather than static. The smart detection module continuously monitors source code changes and automatically invalidates or updates cached directed graphs as needed. This dynamic approach maintains high processing efficiency through caching while ensuring metadata validity through automatic detection and renewal

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11842176B2System and method for performing parallel and distributed analysis of program code to generate dependency graphs for executing extract transform load transformations
Publication Date: 2023.12.12 BANK OF AMERICA CORP
  • US11842176B2 patent drawing
  • US11842176B2 patent drawing
  • US11842176B2 patent drawing

AI summary

Embodiments of the present invention provide a system for performing parallel and distributed analysis of program code to generate directed graphs for executing extract transform load transformations. The system is configured for identifying that a user has initiated a request for analysis of a program code, via a compiler, extracting a syntax tree associated with the program code from the compiler, performing parallel and distributed analysis of the program code based on the syntax tree, generating a directed graph based on performing parallel and distributed analysis of the program code, and storing the directed graph in a cache memory.