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.
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:
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.
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:
The Essbase Kernel contains components that control all aspects of retrieving and storing data:
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:
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, 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:
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.
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:
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.
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.
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.
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.
This list is the sequence of events during an Essbase Kernel start-up:
If it encounters an error during start up, the Essbase Kernel shuts itself down.
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:
Setting |
When setting becomes effective |
---|---|
The first time after setting these values that there are no active transactions. |
|
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.
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.
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.
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:
Setting |
Where to Find More Information |
---|---|
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.
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.
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.
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.
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 |