Relationship Between Parallel Calculation and Other Essbase Features

The following topics discuss the relationship between parallel calculation and other Essbase functionality.

Retrieval Performance

Placing the largest sparse dimension at the end of the outline for maximum parallel calculation performance may slow retrieval performance. See Optimizing Query Performance.

Formula Limitations

The presence of some formulas may force serial calculation. The following formula placements likely will force serial calculation:

  • A formula on a dense member, including all stored members and any Dynamic Calc members upon which a stored member may be dependent, that causes a dependence on a member of the dimension that is used to identify tasks for parallel calculation.

  • A formula that contains references to variables declared in a calculation script that uses @VAR, @ARRAY, @XREF, or @XWRITE.

  • A sparse dimension member formula using @XREF, and the dimension for the sparse member is fully calculated. @XREF does not force serial calculation when it is on dense Dynamic Calc members that are not dependent on other stored members during the batch calculation.

  • A member formula that causes a circular dependence. For example, member A has a formula referring to member B, and member B has a formula referring to member C, and member C has a formula referring to member A.

  • A formula on a dense or sparse member with a dependency on a member or members from the dimension used to identify tasks for parallel processing.

  • A sparse dimension member formula that contains references to members from other sparse dimensions.

If you need to use a formula that might prevent parallel calculation, you can either mark the member of the formula as Dynamic Calc or exclude it from the scope of the calculation. To see whether a formula is preventing parallel calculation, check the application log. For relevant error messages, see Monitoring Parallel Calculation.

Calculator Cache

At the start of a calculation pass, Essbase checks the calculator cache size and the degree of parallelism and then uses the calculator cache bitmap option appropriate for maximum performance. Therefore, the bitmap option used for parallel calculation may be different from that used for serial calculation.

For example, assume Essbase performs a serial calculation and uses multiple bitmaps and a single anchoring dimension. Without explicit change of the calculator cache size, Essbase might perform a parallel calculation using only a single bitmap and a single anchoring dimension.

You can determine the calculator cache mode that controls the bitmap options by checking the application log at the start of each calculation pass for an entry similar to the following:

Multiple bitmap mode calculator cache memory usage has a limit of [50000] bitmaps.

When using parallel calculation in multiple bitmap mode, you may encounter high memory usage. If so, you can use the configuration setting PARCALCMULTIPLEBITMAPMEMOPT to optimize memory use in multiple bitmap mode. This setting can be used with, or separately from, MULTIPLEBITMAPMEMCHECK. To enable PARCALCMULTIPLEBITMAPMEMOPT, add the following line to your essbase.cfg file:

PARCALCMULTIPLEBITMAPMEMOPT TRUE

See Sizing the Calculator Cache.

Transparent Partition Limitations

Parallel calculation with transparent partitions has the following limitations:

  • You cannot use parallel calculation across transparent partitions unless the calculation occurs at the target.

  • You must set CALCTASKDIMS or SET CALCTASKDIMS to 1 (the default) so that there is only one anchoring dimension.

  • You must increase the calculator cache so that multiple bitmaps can be used. You can identify the calculator cache mode that controls the bitmap options by checking the application log at the start of each calculation pass for an entry similar to the following:

    Multiple bitmap mode calculator cache memory usage has a limit of [50000] bitmaps.

    See Sizing the Calculator Cache.

Restructuring Limitation

Do not use parallel calculation if you have selected incremental restructuring. Parallel calculation does not support incremental restructuring.

Commit Threshold Adjustments

Essbase checks the commit threshold specified by the database setting “Number of blocks before internal commit.” If the setting requires that less than 10 MB of data be written before an internal commit, then Essbase automatically increases the commit threshold for the duration of the calculation pass to 10 MB. If the setting is greater than 10 MB, Essbase uses the setting value.

Essbase writes a message to the application log noting the temporary increase if it occurs.

If you can allocate more than 10 MB extra disk space for calculation, consider increasing the commit threshold value; that is, the number of blocks before a commit, to a very large number for better performance.

  To view the current threshold, use a tool:

Tool

Topic

Location

Administration Services

Setting Data Integrity Options

Oracle Essbase Administration Services Online Help

MaxL

display database dbs_name

Oracle Essbase Technical Reference

ESSCMD

GETDBINFO: Number of blocks modified before internal commit

Oracle Essbase Technical Reference

  To modify the commit threshold, use a tool:

Tool

Topic

Location

Administration Services

Setting Data Integrity Options

Oracle Essbase Administration Services Online Help

MaxL

alter database dbs_name set implicit_commit after n blocks

Oracle Essbase Technical Reference, list of MaxL statements

ESSCMD

SETDBSTATEITEM 21

Example of Specifying Isolation Level Settings with ESSCMD

See Uncommitted Access.

Isolation Level Limitation

You must use uncommitted mode for parallel calculation.

  To set the isolation level to uncommitted mode, use a tool:

Tool

Topic

Location

Administration Services

Setting Data Integrity Options

Oracle Essbase Administration Services Online Help

MaxL

alter database dbs_name disable committed_mode

Oracle Essbase Technical Reference, list of MaxL statements

ESSCMD

SETDBSTATEITEM 18

Example of Specifying Isolation Level Settings with ESSCMD

See Uncommitted Access.