Comparison of Hybrid Mode, Block Storage, and Aggregate Storage
Without hybrid mode, the block storage algorithm for Dynamic Calc members has limitations when used with large, sparse dimensions. Hybrid mode (and aggregate storage) are more optimized for dynamic dependency analysis. Read about key differences to help you choose the best query processor type for an Essbase application.
Without hybrid mode, large, sparse dimensions in block storage databases must be stored; making them dynamic would result in too much block I/O at query or calculation time, affecting performance. Very large stored sparse dimensions can lead to lengthy batch aggregation times, as well as large database sizes that grow in relation to the number and size of the sparse dimensions. Even with such drawbacks, block storage is widely used for its powerful functionality.
Aggregate storage is designed specifically to enable large databases with more and larger dimensions. Unlike block storage, it does not require large sparse dimensions to be pre-aggregated to achieve good query performance. The key lies in the aggregate storage database kernel, which facilitates rapid dynamic aggregation across large dimensionality.
For all the benefits that aggregate storage offers, however, there are many uses that are better suited to block storage, such as the ability to load data at any granularity, or to frequently run complex batch allocations, or implement currency conversion for global financials. In such cases, and many more, hybrid mode might be the solution. Hybrid mode is a combination of the best features of block storage and aggregate storage. In hybrid mode, Essbase
-
Enables full procedural calculation flexibility, even when the calculations depend on sparse, dynamic aggregations.
-
Uses the hybrid engine for queries accessing dynamic sparse members. For the small percentage of queries that cannot be processed this way, Essbase employs the block storage calculation flow to satisfy the request.
-
Offers these benefits, if you mark sparse members as dynamic:
- Eliminates the need for pre-aggregation
-
Improves restructure performance
-
Improves backup performance
-
Reduces disk space requirements
-
Because hybrid mode involves dynamic calculations, you can sequence the calculations by using solve order.
Note:
Hybrid calculations, whether driven by queries or calculation scripts, are performed in temporary memory space, utilizing a formula cache and the aggregate storage cache.
Key Differences
The following key differences can help you choose the best query processor type for your application.
Requirement | Aggregate Storage (ASO) | Block Storage (BSO) | Hybrid Mode |
---|---|---|---|
Optimized for rapid aggregation across many sparse dimensions |
Yes |
No |
Yes |
Optimized for minimal disk space usage and reduced backup time |
Yes |
No |
Yes |
Optimized for financial applications |
No |
Yes |
Yes |
Ability to perform allocations |
Yes |
Yes |
Yes |
Ability to perform batch calculations |
No |
Yes |
Yes |
Member formulas supported |
Yes, expressed as MDX |
Yes, expressed as Essbase Calculation Functions |
Yes, expressed as Essbase Calculation Functions |
Optimized for forward references in member formulas |
No |
No |
Yes |
Ability to customize solve order of calculations/aggregations |
Yes |
No |
Yes |
Ability to specify bottom-up query execution for faster dependency analysis of smaller input data sets |
No |
No |
Yes |
Ability to trace and debug query execution |
Yes |
No |
Yes |
Ability to limit memory use permitted for a query |
Yes |
No |
Yes |
Support for two-pass calculation |
No |
Yes |
No |
Ability to load data at any level |
No. Only level 0 cells without formula dependencies can be loaded |
Yes |
Yes for stored levels No for dynamic levels |
Ability to load data incrementally using buffers |
Yes |
No |
No |
Evaluation of formulas on sparse dimensions can have different results than same formulas on dense dimensions |
N/A |
Yes. On block storage without hybrid mode, Essbase calculation scripts may be written iteratively with the purpose of resolving dependencies over sparse blocks. If you change the dimension type from sparse to dense or vice versa, you may get different results for the same formulas. |
No. Formula dependencies are calculated the same without regard to sparsity or density. In hybrid mode, Essbase uses an algorithm to resolve dynamic dependencies. In some cases, the data derived from a calculation script may be different in hybrid mode than it would be in block storage mode without hybrid. |