OLAP Window Partitioning Vectorization for Query Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Relational Database Management Systems (RDBMSs) face inefficiencies in processing window partitioning and ordering for On-Line Analytical Processing (OLAP) functions due to limited reuse of information across these operations, leading to increased execution time for complex queries.

Innovation Solution

A prior compare function is introduced that generates a Boolean output vector indicating differences between current and previous attribute values, enabling efficient processing of window partitioning and ordering by identifying shared attributes and reusing intermediate results through vectorized operations, thereby optimizing the computation of prior compare outputs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If row-store engine processes OLAP functions using row at a time processing, then processing simplicity is maintained, but execution time increases for complex queries with multiple window partitioning and ordering operations

Engineering Contradiction:
Improveexecution timeVSAvoidprocessing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the window partitioning and ordering processing into distinct phases: first computing partition boundaries using partition-by columns, then computing ordering within partitions using order-by columns. This segmentation allows each phase to be optimized independently and enables better reuse of intermediate results, reducing overall execution time for complex queries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary computation of partition boundaries and uses this information to optimize subsequent ordering operations. By pre-computing which rows belong to which partitions, the system can efficiently determine ordering within partitions without re-scanning the entire dataset, thereby reducing execution time.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If existing RDBMS processes window partitioning and ordering separately, then processing flexibility is maintained, but information reuse is limited leading to increased computation time

Engineering Contradiction:
Improvecomputation efficiencyVSAvoidinformation reuse
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent merges the processing of window partitioning and ordering by computing both partition boundaries and ordering information in an integrated manner. The system computes a bitmask indicating partition boundaries and uses this same information to determine ordering within partitions, thereby reusing information and reducing redundant computation.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates a universal processing mechanism that handles both window partitioning and ordering operations using the same underlying data structures and algorithms. The bitmask structure serves multiple purposes: identifying partition boundaries, determining row grouping, and establishing ordering sequences, thereby eliminating the need for separate processing loops.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Speed

If columnar data engine implements vectorized operations for window partitioning and ordering, then processing speed increases, but implementation complexity increases

Engineering Contradiction:
Improveprocessing speedVSAvoidimplementation complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent changes the data representation parameters from traditional row-based structures to columnar vectors with bitmask representations. By transforming the problem into operations on bitmasks and column vectors, the system achieves vectorized processing that is both fast and implementable using standard SQL processing techniques.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10089356B2Processing window partitioning and ordering for on-line analytical processing (OLAP) functions
Publication Date: 2018.10.02 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10089356B2 patent drawing
  • US10089356B2 patent drawing
  • US10089356B2 patent drawing

AI summary

Provided are techniques for processing window partitioning and ordering for OLAP functions. A prior compare operation is performed by: receiving an input vector for each of one or more attributes of input data that represent one of a partition-by column and an order-by column in a database query; generating a per-attribute comparison vector for each input vector; and producing a single output vector using each per-attribute comparison vector, wherein each value of the single output vector is a Boolean attribute whose value for a given tuple is true if a current value and a most recent prior value of any of the one or more attributes are different.