Runtime Grouping Operator Selection for Data Stream Queries

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional relational database systems face inefficiencies in query optimization, particularly in grouping operations, as they rely on statistical estimates rather than actual data, leading to inaccurate resource cost estimation and suboptimal operator selection during query execution.

Innovation Solution

Implementing a query engine with runtime optimization techniques that estimate resource costs for grouping operators during query execution, allowing for the selection of the most efficient operator based on actual data streams, such as the XIL or XIDI operators, to optimize grouping operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional pre-execution query optimization is used, then query compilation is simpler and faster, but resource cost estimation is inaccurate due to reliance on statistical estimates

Engineering Contradiction:
Improveresource cost estimation accuracyVSAvoidquery optimization time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary grouping operations on sampled data during query compilation to obtain actual runtime statistics, which are then used to guide the full query execution. This preliminary action provides accurate cost estimates without requiring complete data processing upfront.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of optimizing based on complete data or relying solely on statistical estimates, the system performs partial processing on a sample of the data to obtain sufficient information for accurate optimization decisions. This partial action balances accuracy with efficiency.

Inventive Principle:
Principle #16Partial or excessive action

2Productivity

If grouping operations are performed on streams of inverted data prior to row construction, then query performance is improved, but the complexity of operator selection increases

Engineering Contradiction:
Improvequery execution speedVSAvoidoperator selection complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system changes the parameter of optimization timing from pre-execution to runtime, allowing actual data characteristics to inform operator selection. This enables the system to adapt to actual data distribution and select the most appropriate grouping operator based on runtime conditions.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The query optimization process becomes dynamic by evaluating actual data streams during execution and adapting operator selection accordingly. The system can switch between different grouping operators (XIL, XIDI, or hybrid) based on runtime performance feedback and actual data characteristics.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If multiple grouping operators (XIL, XIDI) are available for selection, then query optimization flexibility is improved, but the difficulty of selecting the optimal operator increases

Engineering Contradiction:
Improveoperator selection flexibilityVSAvoidoptimal operator identification
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The system implements feedback mechanisms during query execution that monitor actual performance metrics and use this information to guide operator selection. Runtime statistics from preliminary operations provide feedback that helps identify which grouping operator (XIL, XIDI, or hybrid) will perform best for the specific query and data characteristics.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11494378B2Runtime optimization of grouping operators
Publication Date: 2022.11.08 SALESFORCE INC
  • US11494378B2 patent drawing
  • US11494378B2 patent drawing
  • US11494378B2 patent drawing

AI summary

Runtime optimization of grouping operators is described. A system estimates a resource cost for each of multiple grouping operators based on values identified during query runtime, in response to receiving a query request associated with a data stream. The system selects a grouping operator during query runtime, based on a corresponding resource cost, from the multiple grouping operators. The selected grouping operator enables grouping the data stream based on the query request, and outputting a response based on the grouped data stream.