Managing Essbase Kernel Settings

This chapter introduces you to the Essbase Kernel, explains how Essbase accesses and stores data, and provides an overview of Essbase Kernel settings you can use to optimize performance at the Essbase server level.

This chapter contains the following sections:

Note: For information about fatal errors in the Essbase Kernel, see Understanding Fatal Error Handling.

Understanding the Essbase Kernel

The Essbase Kernel provides the foundation for a variety of functions of the Essbase server. These functions include data loading, calculations, spreadsheet lock&send, partitioning, and restructuring. The Essbase Kernel reads, caches, and writes data; manages transactions; and enforces transaction semantics to ensure data consistency and data integrity.

The Essbase Kernel has the following functions:

The rest of this topic explains the two available access modes, and presents an overview of several Essbase Kernel components:

Understanding Buffered I/O and Direct I/O

The Essbase Kernel uses buffered I/O (input/output) by default, but direct I/O is available on most of the operating systems and file systems that Essbase supports. For a list of the supported platforms, see the Essbase Installation Guide.

Buffered I/O uses the file system's buffer cache.

Direct I/O bypasses the file system's buffer cache, and is able to perform asynchronous, overlapped I/Os. The following benefits are provided:

If you set a database to use direct I/O, Essbase attempts to use direct I/O the next time the database is started. If direct I/O is not available on your platform at the time the database is started, Essbase uses buffered I/O, which is the default. However, Essbase will store the I/O access mode selection in the security file, and will attempt to use that I/O access mode each time the database is started.

Note: Cache memory locking can only be used if direct I/O is used. You also must use direct I/O if you want to use an operating system's no-wait (asynchronous) I/O.

Setting the I/O Access Mode

Buffered I/O is the default for all databases. You can view which I/O access mode a database is currently using or is currently set to, by selecting Database > Information in Application Manager, display database in MaxL, or GETDBINFO in ESSCMD.

You must perform these tasks to use direct I/O for Essbase:

Essbase Kernel Components

The Essbase Kernel contains components that control all aspects of retrieving and storing data:

Index Manager

The Index Manager manages the database index and provides a fast way of looking up Essbase data blocks. The Index Manager determines which portions of the database index to cache in the index cache, and manages the index cache.

The Index Manager controls five components. The following table describes these components:

Component
Description

Index

The method that Essbase uses to locate and retrieve data. The term index also refers to the index file.

Index File

File that Essbase uses to store data retrieval information. It resides on disk and contains index pages. Essbase names index files incrementally on each disk volume, using the naming convention ESSxxxxx.IND, where xxxxx is a number. The first index file on each disk volume is named ESS00001.IND.

Index page

A subdivision of an index file that contains index entries that point to data blocks.

Index entry

A pointer to a data block. An index entry exists for every intersection of sparse dimensions.

Index cache

A buffer in memory that holds index pages.



The term index refers to all index files for a single database. The index can span multiple volumes, and more than one index file can reside on a single volume. Use the disk volumes setting to specify disk spanning parameters. For information on setting the index cache size, see Sizing Caches. For information about allocating storage space with the disk volumes setting, see Specifying Disk Volumes.

Allocation Manager

Allocation Manager, part of the Index Manager, performs these tasks:

When one of these tasks needs to be performed, the Allocation Manager uses this process to allocate space:

  1. It attempts to use free space in an existing file.
  2. If enough free space is not available, it attempts to expand an existing file.
  3. If enough free space is not available in existing files, it creates a new file on the current volume.
  4. If it cannot expand an existing file or create a new file on the specified volume, it attempts to use the next specified volume.
  5. If all specified volumes are full, an error message is displayed, and the transaction is aborted.

The Allocation Manager allocates space for index and data files based on the database settings for storage. You can check current values and set new values in any of these ways:

See Specifying Disk Volumes for information about the disk volumes setting.

For more information, see Storage Allocation.

Data Block Manager

The Data Block Manager brings data blocks into memory, writes them out to data files, handles data compression, and writes data files to disk. The Data Block Manager controls four components. The following table describes each component:

Component
Description

Data file

A file that contains data blocks. Essbase generates the data file upon data load and stores it on disk. Essbase names data files incrementally: ESSxxxxx.PAG, where xxxxx is a number starting with 00001.

Data block

The primary storage unit within Essbase. A data block is a multidimensional array that represents cells of the dense dimensions for a given intersection of sparse dimensions.

Data cache

A buffer in memory that holds uncompressed data blocks.

Data file cache

A buffer in memory that holds compressed data files (.PAG).



The size of the data file cache determines how much of the data within the data files can fit into memory at one time. The data cache size and the data block size determine how many data blocks can fit into memory at one time. Data files for a single database can span multiple volumes; more than one database can reside on the same volume. For information on setting the data file cache size and data cache size, see Sizing Caches. For information about allocating storage space with the disk volumes setting, see Specifying Disk Volumes.

LRO Manager

Linked reporting objects (LROs) enable you to associate objects, such as flat files, with data cells. Using the Spreadsheet Add-in, users can create and store LRO files, with an .lro extension.

LRO files are stored in the database directory (\essbase\appname\dbname, for example, \essbase\sample\basic).

Essbase stores information about linked reporting objects in an LRO catalog. Each catalog resides in its own Essbase index page and coexists in an index file with other, non-LRO Essbase index pages.

For more information about linked reporting objects, see Linking Objects to Essbase Data, and the Essbase Spreadsheet Add-in User's Guide.

Lock Manager

The Lock Manager issues locks on data blocks, which in turn controls concurrent access to data.

The committed access and uncommitted access isolation levels use different locking schemes. For more information on isolation levels and locking, see Ensuring Data Integrity.

Transaction Manager

The Transaction Manager controls transactions and commit operations and manages database recovery.

Essbase commits data automatically. Commits are triggered by transactions that modify data: data loading, calculating, restructuring, and spreadsheet lock&send operations.

How Essbase commits data depends upon whether the transaction isolation level is set to committed or uncommitted access (the default). For information about specifying isolation level, see Isolation Levels.

The Transaction Manager maintains a transaction control table, database_name.TCT, to track transactions.

For more information about commit operations and recovery, see Ensuring Data Integrity.

Understanding the Essbase Kernel Startup

This list is the sequence of events during an Essbase Kernel start-up:

  1. After the OLAP Server starts, a user connects to it from a client.
  2. The user starts a database.
  3. Essbase loads the database.
  4. The Essbase Agent passes database settings to the server.
  5. The Essbase Kernel begins its initialization process.
  6. The Essbase Kernel starts its components: the Index Manager, Lock Manager, LRO Manager, Data Block Manager, and Transaction Manager.

If it encounters an error during start up, the Essbase Kernel shuts itself down.

Precedence of Settings

Hyperion Essbase provides default values for database storage settings in the configuration file essbase.cfg. You can leave the default settings, or change their values in two places:

Changes made for an individual database permanently override essbase.cfg settings and Essbase defaults for the relevant database until they are changed or withdrawn (through ESSCMD, MaxL, or the Database Settings dialog box).

If you change settings at the database level, the changes become effective at different times, as shown in Table 39:

Table 39: Database-level storage settings effectiveness

Setting
When setting becomes effective

  • Index cache
  • Data file cache
  • Data cache
  • Cache memory locking
  • Disk volume

After you stop and restart a database.

Isolation level parameters Concurrency parameters

The first time after setting these values that there are no active transactions.

All other settings

Immediately.



Note: The size of index pages is fixed at 8 K. This is to reduce input-output overhead, as well as to simplify database migration.

Understanding How Essbase Reads Settings

Essbase reads the essbase.cfg file when you start the server, and then applies settings to the appropriate databases that you have created using any of these methods:

Database settings that are specified in the Database Settings dialog box of Application Manager, the Database Properties window of Administration Services, or in ESSCMD/MaxL always override essbase.cfg file settings, even if you change a setting in the essbase.cfg file after you have applied a setting for a particular database. Only removing a setting (via the Database dialog box, the Database Properties window, ESSCMD or MaxL) triggers Hyperion Essbase to use the essbase.cfg file, and then only after restarting the server.

Viewing Most Recently Entered Settings

To view the most recently entered settings, use any of these methods:

For information on stopping and starting servers, applications, and databases, see Running Essbase Servers, Applications, and Databases.

Customizing Essbase Kernel Settings

You can customize different Essbase Kernel settings for each database on the server. The information in this section helps you understand what each setting controls and how to adjust each setting. For a table of performance-related settings, see Improving Essbase Performance.

Note: Configure settings that are applied to an entire Essbase server with the essbase.cfg configuration file (essbase.cfg on UNIX platforms). For information about how to create this file and about what settings are available, see the Technical Reference in the docs directory.

You can customize these major kernel settings:

Table 40: Major Kernel Settings

Setting
Where to Find More Information

Index cache size

Sizing the Index Cache

Data file cache size

Sizing the Data File Cache

Data cache size

Sizing the Data Cache

Cache memory locking

Before You Size: Using Cache Memory Locking

Disk volumes

Storage Allocation

Data compression

Data Compression

Isolation level

Isolation Levels



This section provides an overview of how to specify these settings:

For a full list of database settings, see Using Application Manager for Kernel Settings.

Specifying and Changing Kernel Settings

Before you change any kernel settings, be sure to review information about precedence of the settings as changed in different parts of Essbase, and how those settings are read by Essbase:

You can specify most Essbase Kernel settings in four ways:

These different methods provide different ways to change the same database settings. In rare cases, you may want to use the essbase.cfg server file to specify settings.

Caution: In previous versions of Essbase, you could specify many Essbase database settings in the essbase.cfg server file. In Version 5.x and higher, Essbase overrides most of the .cfg settings. See Understanding the Essbase Kernel Startup.

Using Application Manager for Kernel Settings

You can specify database, application, and server settings by using the settings dialog boxes in Essbase Application Manager. This section covers database settings. See Managing Security for Users and Applications for information on application and server settings.

For information about database settings to improve performance, see Improving Essbase Performance.

To customize database settings using Application Manager, select Database > Settings. This dialog box is displayed:

Figure 502: The Database Settings Dialog Box

The dialog box has four tabs, which correspond to the following pages.

The General page includes the following settings:

The Storage page includes the following settings:

The Transaction page includes the following settings:

The Currency page includes settings for currency databases. See Designing and Building Currency Conversion Applications, for more information.

Note: Changes that you make in any pages of the Database Settings dialog box affect only the specified database. For information about when settings take effect, see Table 39.

Database settings that you set or change with either of these methods affect only the specified database.

Using alter database in MaxL for Kernel Settings

Issue a separate alter database statement for each database setting you want to change. For example, the following MaxL script logs in to Essbase, changes three database settings, and logs out:

login admin identified by secretword;
alter database sample.basic enable committed_mode;
alter database sample.basic set lock_timeout immediate;
alter database sample.basic disable create_blocks;
logout; 

Note: Terminate each MaxL statement with a semicolon when issuing them using the MaxL Command Shell; however, if MaxL statements are embedded in Perl scripts, do not use the semicolon statement terminator.

You can use MaxL to write batch scripts that automate database setting changes. For information, see the MaxL Language Reference, located in the Technical Reference in the docs directory.

Using SETDBSTATEITEM in ESSCMD for Kernel Settings

For simple items, specify the command, item number representing the parameter, application, database, and value for the parameter:

SETDBSTATEITEM 2 "JILLAPP" "JILLDB" "Y"; 

For parameters that require multiple values, such as Isolation Level (item 18), specify multiple values, in this case, all the values after "BASIC":

SETDBSTATEITEM 18 "SAMPLE" "BASIC" "1" "Y" "-1"; 

If you don't know the parameter number, omit it, and Essbase lists all parameters and their corresponding numbers. Essbase also prompts you for a database and an application name.

Use a separate SETDBSTATEITEM command for each parameter; you cannot string parameter numbers together on the same line.

See the Technical Reference in the docs directory for information about SETDBSTATE and SETDBSTATEITEM commands. See Automating the Production Environment, for information about ESSCMD.

Note: SETDBSTATEITEM or SETDBSTATE affect only the specified database.

You can include SETDBSTATEITEM (or SETDBSTATE) in batch scripts. For information about writing batch scripts, see Automating the Production Environment. See the Technical Reference in the docs directory for information on ESSCMD syntax.




© 2002 Hyperion Solutions Corporation. All rights reserved.
http://www.hyperion.com