Frozen and Delta Value Storage for OLAP Data Blocks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In online analytical processing (OLAP) applications, managing multi-dimensional datasets with frequent changes leads to an explosion of derived entries due to interdependencies between measures, resulting in inefficient data storage and processing.
Innovation Solution
Storing two values per measure in a block of data: a frozen value representing the state before changes and a delta value representing cumulative changes since the last freeze time, allowing for efficient application of changes by collapsing all intermediate derived entries into the delta value.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all changes are applied one-by-one to measures in a block, then the dataset remains accurate and up-to-date, but the number of derived entries explodes due to interdependencies between measures
Solution Approach 1:
The patent combines multiple individual change entries into a single aggregate change entry that represents the net effect of all changes. Instead of processing each change separately (which generates multiple derived entries), the system merges them into one consolidated change that produces a single set of derived entries, thereby reducing the explosion of derived entries while maintaining data accuracy.
Solution Approach 2:
The patent applies changes to measures before finalizing the block, allowing the system to calculate and store the net effect of all changes in advance. This preliminary application of changes enables the system to consolidate multiple intermediate states into a single final state, reducing the number of derived entries that need to be stored and processed.
2Adaptability or versatility
If multiple user changes are made to a block over time, then the block can be updated with new values, but the number of changes that need to be applied explodes due to derived entries
Solution Approach 1:
The patent merges multiple user changes into a single aggregate change entry that captures the net effect. This consolidation reduces the complexity of change application by transforming many individual change operations into one unified operation, thereby maintaining adaptability while reducing complexity.
Solution Approach 2:
The patent extracts the essential net effect from multiple individual changes, separating the meaningful aggregate change from the intermediate steps. By taking out only the net effect that needs to be applied, the system reduces complexity while preserving the ability to update blocks with new values.
3Measurement precision
If each change to a measure is processed individually, then all derived changes are calculated accurately, but processing time increases due to the explosion of changes
Solution Approach 1:
The patent merges multiple individual change processing operations into a single aggregate processing operation. By combining the changes before processing, the system maintains calculation accuracy for derived changes while significantly reducing processing time, as one consolidated processing operation is faster than multiple sequential operations.
Solution Approach 2:
The patent performs preliminary aggregation of changes before the actual processing step. This preliminary action consolidates multiple changes into a single representative change, allowing the system to maintain precision in derived change calculations while reducing the time required for processing by minimizing the number of processing operations needed.
Data Source
AI summary
A method includes storing a first value for one or more measures in a block of data for the cube of data. The first value is a value where the state of the cube is that no changes are applicable to the block of data. A second value is stored for the one or more measures in the block of data. The second value is a delta value representing changes made to the block of data based on the first value. A change is received to the block. A computer processor then calculates a new second value based on the change to the block. The new second value is stored in place of the second value previously stored while the first value remains the same. The second value represents the cumulative changes to the measure since the frozen value was determined.


