Polymorphic SQL Functions Parallel Execution Plan

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current big data processing frameworks face limitations in combining executions of different analytic computations, leading to high unnecessary input/output costs and poor performance due to unoptimized data movement and restricted expression of analytic functions in query languages like SQL, which restricts their connectivity to business applications.

Innovation Solution

The implementation of a parallel architecture that integrates traditional transaction user-defined functions with MapReduce and graph computation models, enabling flexible SQL expressions for user-defined scalar and aggregate functions, and a global planner to optimize data movements, allowing for the composition of analytic functions across different programming paradigms like Java and C, and extending SQL capabilities to connect with business applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional big data processing frameworks are used, then data processing can be performed, but unnecessary I/O costs increase and performance deteriorates due to unoptimized data movement

Engineering Contradiction:
Improvedata processing efficiencyVSAvoidI/O costs
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system performs preliminary actions by generating an optimized execution plan before data processing begins. The global planner analyzes the query and creates a data movement optimization plan that prepares the optimal execution strategy in advance, preventing unnecessary I/O operations during actual data processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The execution plan is dynamically optimized based on the specific query and data distribution. The system adapts the data movement strategy to match the actual processing requirements, allowing flexible adjustment of execution paths to minimize I/O costs while maintaining processing efficiency.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If SQL query language is used, then business applications can connect to databases, but expression of analytic functions is restricted

Engineering Contradiction:
ImproveSQL expressivenessVSAvoidsystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system introduces an intermediary layer (global planner and execution plan generator) between the SQL query language and the distributed processing framework. This intermediary translates standard SQL expressions into optimized distributed execution plans, enabling complex analytic functions to be expressed using familiar SQL syntax while the system handles the complexity of distributed execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Power

If data is processed in a distributed environment, then processing capacity increases, but data transfer between nodes creates performance bottlenecks

Engineering Contradiction:
Improveprocessing capacityVSAvoiddata transfer speed
Core Design Contradiction:
PowerVSSpeed

Solution Approach 1:

The system segments the distributed processing into optimized stages based on data locality and computation requirements. By dividing the execution plan into segments that minimize cross-node data transfer and maximize local processing, the system maintains high processing capacity while reducing network bottlenecks.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11243958B2Implementing contract-based polymorphic and parallelizable SQL user-defined scalar and aggregate functions
Publication Date: 2022.02.08 TERADATA US INC
  • US11243958B2 patent drawing
  • US11243958B2 patent drawing
  • US11243958B2 patent drawing

AI summary

Disclosed are systems and methods for implementing contract-based polymorphic and parallelizable user-defined scalar and aggregate functions. The systems and methods can include receiving a query including a plurality of user-defined functions, parsing the query into a plurality of nodes (e.g., basic operation unit or atomic operator), generating an execution plan that minimizes data transfer between the plurality of nodes, and executing the plan in a distributed environment. Each of the plurality of user-defined functions can correspond to one of a plurality of nodes.