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 Essbaseapplication.

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

Solve Order in Hybrid Mode

Ability to specify bottom-up query execution for faster dependency analysis of smaller input data sets

No

No

Yes

QUERYBOTTOMUP configuration setting

@QUERYBOTTOMUP calc function

Ability to trace and debug query execution

Yes

QUERYTRACE

No

Yes

QUERYTRACE

Ability to limit memory use permitted for a query

Yes

MAXFORMULACACHESIZE

No

Yes

MAXFORMULACACHESIZE

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.