Relational Query Slicing via Spool Operators

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Relational data servers face performance issues when processing complex queries due to resource bottlenecks, leading to delays and potential server crashes, as they struggle to manage the evaluation of queries involving large records or complex operations without unduly impacting other concurrent queries.

Innovation Solution

The implementation of automated query rewriting techniques that partition complex relational queries into smaller query slices, each executed within a defined duration threshold, using spool operators and temporary relations to manage resource utilization and maintain query consistency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If complex relational queries are evaluated in an unbroken sequence, then query processing completeness is improved, but server resource availability deteriorates

Engineering Contradiction:
Improvequery processing completenessVSAvoidserver resource availability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides complex relational queries into smaller query slices that can be executed independently and in parallel. Each query slice represents a subset of the original query operations, allowing the server to process multiple slices concurrently across different cores, thus maintaining query completeness while improving resource availability and throughput.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If query complexity increases, then query functionality is improved, but processing time increases

Engineering Contradiction:
Improvequery functionalityVSAvoidprocessing time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

Complex queries are segmented into multiple query slices that can be processed in parallel. This segmentation allows the server to execute different parts of complex queries simultaneously on multiple cores, reducing the overall processing time while maintaining the full functionality of the original complex query.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary analysis of complex queries to identify suitable segmentation points and execution strategies before actual query execution. This preliminary action includes estimating query complexity, determining optimal slice divisions, and preparing execution plans, which enables more efficient processing of complex queries without losing functionality.

Inventive Principle:
Principle #10Preliminary action

3Speed

If more computing resources are allocated to a single complex query, then query processing speed is improved, but concurrent query processing deteriorates

Engineering Contradiction:
Improvequery processing speedVSAvoidconcurrent query processing
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

By segmenting complex queries into smaller slices, the system can distribute these slices across multiple cores for parallel processing. This allows each slice to receive adequate computing resources for fast execution while the overall system maintains high concurrent query processing capacity through efficient resource utilization across multiple processing units.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges multiple query slices from different complex queries across multiple cores, creating a consolidated execution plan that optimizes resource utilization. This merging approach allows the system to process multiple slices in parallel while maintaining efficient use of computing resources, thereby improving both individual slice speed and overall concurrent processing productivity.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10838957B2Slicing relational queries using spool operators
Publication Date: 2020.11.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10838957B2 patent drawing
  • US10838957B2 patent drawing
  • US10838957B2 patent drawing

AI summary

A relational database server may concurrently execute many relational queries, but a complex relational query may cause performance delays in the fulfillment of other relational queries. Instead, the relational database server may generate a query plan for the relational query, and may endeavor to partition the relational query between a spool operator and a scan operator into two or more query slices, where each query slice may be executed within a query slice threshold. Many alternative candidate query plans may be considered, such as inserting spool and scan operators after various operators and parameterizing operators in order to partition the records of a relation into two or more ranges based on an attribute of the relation. A large search space of candidate query plans may be reviewed in order to select a query plan that respects the query slice threshold while efficiently executing the logic of the relational query.