RIDDecode Operator ROWID Lookup for Column Store Memory Pressure
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Dictionary decoding in column stores incurs significant overhead due to the need for multiple join operations and data structure maintenance, especially in distributed systems, limiting query optimization and performance.
Innovation Solution
The RIDDecode operator uses ROWID-based lookup and fetch to retrieve unencoded values directly from the row store, eliminating the need for dictionary decoding and reducing memory pressure by propagating ROWIDs through the query execution plan, allowing for efficient decoding of multiple columns simultaneously.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If dictionary decoding is used to retrieve decoded values from column stores, then data can be decoded for predicate or expression evaluation, but significant overhead is incurred due to multiple join operations and data structure maintenance
Solution Approach 1:
The patent extracts the decoding functionality from the traditional dictionary-based approach and relocates it to the row store using ROWID encoding. Instead of maintaining complex dictionary data structures in memory, the decoded values are stored directly in the row store with ROWID references, eliminating the need for dictionary maintenance and multiple join operations while preserving accurate decoding capability.
Solution Approach 2:
The patent introduces ROWID as an intermediary mechanism between the column store and the decoded values. ROWID serves as a compact reference that enables direct retrieval of decoded values from the row store without requiring complex dictionary lookups or join operations, thereby simplifying the decoding process while maintaining accuracy.
2Measurement precision
If dictionary decoding is used to retrieve decoded values, then data can be decoded for query execution, but query performance is limited due to multiple join operations and data access overhead
Solution Approach 1:
The patent performs preliminary action by pre-storing decoded values in the row store with ROWID references during data loading or maintenance operations. This allows query execution to directly retrieve pre-decoded values without performing time-consuming dictionary lookups and join operations during query processing, thereby significantly improving query execution speed while maintaining decoding accuracy.
Solution Approach 2:
The patent segments the data storage system into column store (for encoded data) and row store (for decoded values with ROWID references). This segmentation allows each component to serve its specific function optimally: the column store maintains compressed encoded data for storage efficiency, while the row store provides fast direct access to decoded values, thereby improving overall query execution performance.
3Measurement precision
If dictionary decoding is used, then decoded values can be retrieved for result return, but memory consumption increases due to dictionary data structure maintenance
Solution Approach 1:
The patent replaces the expensive, long-lived dictionary data structures with cheaper, more efficient ROWID references stored in the row store. Instead of maintaining large in-memory dictionaries that consume significant memory resources, the system uses compact ROWID references that point to pre-stored decoded values, thereby reducing memory consumption while preserving decoding accuracy.
Data Source
AI summary
Techniques described herein propose a new RIDDecode operator in a QEP that uses ROWID lookup and fetch, instead of dictionary decoding, to retrieve decoded values, in order to reduce memory pressure and speed up processing.


