Intercepting Row-Store Expressions on Columnar Databases
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
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.


