Dynamic Dependency Analysis in Multidimensional Database Cubes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multidimensional database environments, existing dependency analysis methods are inefficient in identifying and categorizing runtime and static dependents of dynamic members, leading to suboptimal performance and increased resource utilization during query processing.
Innovation Solution
The system performs a dynamic dependency analysis by categorizing dependents into runtime and static categories, identifying these during server startup and fetching actual dependents only during query execution, thereby optimizing the calculation process and reducing redundant calculations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If dependency analysis is performed for all members during query execution, then complete dependency information is obtained, but query processing time increases
Solution Approach 1:
The system performs dependency analysis during server startup and caching operations, before actual query execution. This preliminary action identifies and caches all potential dependents of dynamic members, so that during query processing, the system only needs to retrieve pre-identified dependents from cache rather than performing full dependency analysis, thus resolving the contradiction between complete dependency identification and query processing speed
2Reliability
If all dependents are fetched and calculated before dynamic member evaluation, then calculation accuracy is ensured, but resource utilization increases
Solution Approach 1:
The system pre-identifies and caches all dependents of dynamic members during server startup, performing the dependency analysis work before actual query execution. This ensures that during runtime, the system has accurate dependency information available without performing resource-intensive analysis during query processing, thus maintaining calculation accuracy while reducing runtime resource utilization
Solution Approach 2:
The system creates a cached copy of dependency information during server startup and stores it in memory. This cached copy is then reused during query execution, avoiding the need to repeatedly perform full dependency analysis and recalculation, thereby reducing resource utilization while ensuring accurate dependency identification
3Adaptability or versatility
If dependency analysis is performed dynamically during query execution, then response to specific queries is optimized, but overall system performance decreases
Solution Approach 1:
The system performs comprehensive dependency analysis during server startup and caches the results, making dependency information available before any queries are executed. This preliminary action enables the system to quickly respond to specific queries by retrieving pre-identified dependents from cache, thus improving both query-specific performance and overall system throughput by eliminating repeated dependency analysis
Solution Approach 2:
The system maintains dependency information in cache during server operation, allowing continuous and efficient query processing without interruption for dependency analysis. This continuous availability of dependency information ensures that the system can handle multiple queries in sequence without performance degradation, maintaining high productivity while providing query-specific optimization
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In accordance with an embodiment, dependency analysis is done for each dynamic (or temporary) member to collect list of runtime as well as static dependents in both BSO (block storage option) and ASO (aggregate storage option) cubes. This enables the member to join hybrid flow for its execution in bottom up approach.