Intercepting Row-Store Expressions on Columnar Databases

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database management systems (DBMS) cannot natively execute row-store expression trees on column-store databases without rewriting the expression data structures, limiting the ability to use existing row-store expression services directly on column-store data.

Innovation Solution

A DBMS is configured to maintain a mapping of row-store results to column data addresses, allowing it to execute row-store operators on column data using an interceptor virtual machine, eliminating the need to rewrite expression trees by storing results on a stack and recording row-store addresses, thereby enabling native execution of row-store expression trees on column-store databases.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a row-store expression tree is used on a column-store database, then the expression structure can be preserved without rewriting, but the expression tree cannot be processed natively because it accesses columns within a single row rather than columns of multiple rows

Engineering Contradiction:
Improveexpression tree structureVSAvoidcompatibility with column-store database
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent introduces an interceptor virtual machine as an intermediary layer between the row-store expression tree and the column-store database. This virtual machine maintains a mapping between row-store addresses and column-store addresses, allowing the expression tree to execute without modification while adapting its address references to the columnar storage layout. The interceptor translates row-oriented address patterns into column-oriented access patterns, resolving the incompatibility between the two storage models.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the DBMS rewrites expression trees to handle columnar data, then the expression can be executed on column-store data, but the complexity of the system increases due to the rewriting requirement

Engineering Contradiction:
Improvequery execution capabilityVSAvoidexpression processing system
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The interceptor virtual machine enables the row-store expression tree to serve itself on column-store databases by maintaining its original structure. The virtual machine handles the adaptation automatically through address mapping, eliminating the need for external rewriting processes. The expression tree executes as-is while the interceptor translates address patterns, reducing system complexity by removing the rewriting layer.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If row-store operators are executed on column data, then existing row-store services can be used on column-store data, but a mapping mechanism must be maintained between row-store results and column data addresses

Engineering Contradiction:
Improveservice compatibilityVSAvoidaddress mapping mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The interceptor virtual machine serves multiple functions: it maintains address mappings, translates access patterns, and enables row-store expression trees to execute on column-store databases. By consolidating these functions in a single virtual machine layer, the system achieves service compatibility while managing the mapping complexity in a unified manner rather than requiring separate mechanisms for each function.

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

Data Source

PatentUS12038894B2Evaluating row-store expressions on a column-store database
Publication Date: 2024.07.16 GOOGLE LLC
  • US12038894B2 patent drawing
  • US12038894B2 patent drawing
  • US12038894B2 patent drawing

AI summary

Aspects of the disclosure provide for natively executing row-store expression data structures on column-store databases without rewriting. A database management system (DBMS) configured as described herein can maintain a mapping of row-store results to addresses of where corresponding column data is stored. When executing operators, such as logical operators, comparison operators, and/or function operators of a received query expression, the DBMS can operate on the column data, rather than the individual rows. The DBMS can store the results generated by executing the column operators, for example on a stack, and record the row-store addresses to which the stored results correspond. The DBMS responds with a number of rows corresponding to the processed column data.