Database Parallel Execution Clumping for Communication Cost Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database systems face inefficiencies in parallel execution of user-defined table functions due to unnecessary data redistribution and complex query execution plans, which increase computational and communication costs.

Innovation Solution

The solution involves determining compatibility of data partitioning methods between operations and user-defined table functions, allowing for 'clumping' of these operations into the same execution sub-plan, thereby avoiding unnecessary data redistribution and reducing communication costs by executing them on the same set of processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data redistribution is performed between operations and user-defined table functions, then data can be properly partitioned for parallel execution, but computational and communication costs increase

Engineering Contradiction:
Improvedata partitioning correctnessVSAvoidcommunication cost
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent merges operations with compatible data partitioning requirements into the same execution sub-plan, eliminating the need for data redistribution between them. This is achieved by detecting compatibility between partitioning methods and consolidating operations that can execute together on the same processes, thereby reducing communication overhead while maintaining correct data partitioning.

Inventive Principle:
Principle #5Merging (Combining)

2Adaptability or versatility

If multiple operations are executed separately in parallel, then flexibility in execution is maintained, but query execution plan complexity increases

Engineering Contradiction:
Improveexecution flexibilityVSAvoidquery execution plan complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent combines multiple operations into unified execution sub-plans when their data partitioning requirements are compatible. This merging reduces the number of separate execution units and simplifies the overall query execution plan structure while preserving the ability to handle diverse partitioning strategies through the compatibility detection mechanism.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If data redistribution table queues are used for all operations, then data partitioning is ensured, but computational costs increase

Engineering Contradiction:
Improvedata partitioning correctnessVSAvoidcomputational efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts and eliminates unnecessary data redistribution table queues from the execution plan. By detecting when operations have compatible partitioning requirements, the system removes the intermediate redistribution step entirely, allowing operations to execute directly on the same processes without the computational overhead of data redistribution.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7577637B2Communication optimization for parallel execution of user-defined table functions
Publication Date: 2009.08.18 ORACLE INT CORP
  • US7577637B2 patent drawing
  • US7577637B2 patent drawing
  • US7577637B2 patent drawing

AI summary

While generating an execution plan for a database statement that includes a user-defined table function that requires partitioning of input data to the function, it is determined whether the partitioning of output data from an operation that feeds the function is compatible with the partitioning required by the function. If the partitioning of output data from the operation that feeds the function is compatible with the partitioning required by the function, then the execution plan is constructed to specify execution of both (1) the function and (2) the operation that feeds the function, by a same set of processes. For example, the operation that feeds the function and the function itself are clumped into the same sub-plan or sub-tree, which is scheduled and run in parallel on a set of parallel execution slaves.