Data-Aware Parallel Rollup Execution for Database Scalability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing parallel execution schemes for rollup operations in relational database management systems face scalability issues due to low cardinality of non-rollup columns and data explosion caused by sparse data distribution, leading to inefficient performance and resource overload.

Innovation Solution

A data-aware parallel execution scheme dynamically selects a data distribution key from candidate keys based on monitoring distinct values and skewedness, allowing for adaptive compression and distribution of data between rollup distributors and collectors, optimizing data distribution and computation across multiple processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If parallel execution schemes are used for rollup operations, then processing speed is improved, but scalability deteriorates due to low cardinality of non-rollup columns

Engineering Contradiction:
Improveprocessing speedVSAvoidscalability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic parallel execution by monitoring the cardinality of non-rollup columns at runtime and adjusting the number of parallel processes accordingly. The system starts with an initial number of parallel processes and dynamically increases or decreases the count based on the actual data characteristics, allowing the execution scheme to adapt to different data scenarios and maintain both speed and scalability.

Inventive Principle:
Principle #15Dynamics

2Productivity

If data is distributed across multiple processes, then processing efficiency is improved, but data explosion occurs due to sparse data distribution

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata volume
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies local quality by distributing data to parallel processes based on the actual data distribution characteristics. Instead of uniform distribution, the system identifies regions with sufficient data density and directs processing to those areas, while avoiding distribution to regions with sparse data. This localized approach ensures processing efficiency is improved without causing data explosion in underutilized processes.

Inventive Principle:
Principle #3Local quality

3Ease of manufacture

If fixed number of parallel processes is used, then implementation simplicity is maintained, but performance optimization is limited due to unknown data characteristics

Engineering Contradiction:
Improveimplementation simplicityVSAvoidperformance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent implements a feedback mechanism where the system monitors data characteristics such as the cardinality of non-rollup columns during execution. Based on this feedback, the system dynamically adjusts the number of parallel processes to optimize performance. The feedback loop continues throughout execution, allowing the system to adapt to actual data distribution patterns and achieve optimal performance without complex pre-analysis.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9235621B2Data-aware scalable parallel execution of rollup operations
Publication Date: 2016.01.12 ORACLE INT CORP
  • US9235621B2 patent drawing
  • US9235621B2 patent drawing
  • US9235621B2 patent drawing

AI summary

According to one aspect of the invention, for a database statement that specifies rollup operations, a data distribution key may be selected among a plurality of candidate keys. Numbers of distinct values of the candidate keys may be monitored with respect to a particular set of rows. Hash values may also be generated by column values in the candidate keys. The data distribution key may be determined based on results of monitoring the numbers of distinct values of the candidate keys as well as the frequencies of hash values computed based on column values of the candidate keys. Rollup operations may be shared between different stages of parallel executing processes and data may be distributed between the different stages of parallel executing processes based on the selected data distribution key.