essbase: Number of Databases per Application

Довольно старый документ , но не потерявший своей актуальности на сегодняшний день.

/* У меня есть одно желание –  , всех кто осознано использует более одной БД в приложении Planning отправлять к “столбу позора” */

Hyperion Essbase Application Development Note

Design Best Practices

Number of Databases per Application

Introduction:

Hyperion Essbase allows one or more cubes (databases) to be grouped into applications.  Due to the flexibility in defining databases to applications, there have been questions as to the optimal number of databases per application.  This note is intended to document the recommendation, and reasons thereof.

Design Best Practices Recommendation:

The best practices recommendation is to define only one database per application.  The exception is for those applications that take advantage of the Currency Conversion option, which needs to create the conversion rates database in the same application as the database to be converted.  The reasons for this one-to-one recommendation are as follows:

1)     Memory Utilization.  All databases within an application run under that application’s ESSSVR process.  A given ESSSVR process can only address from 2 – 3+ GB of memory, depending on the Operating System. Therefore, all databases within that application must ration this memory addressability across the caches that are used, the outlines that are loaded in memory, and other requirements (as documented in the Database Administrators Guide), must share this memory space.  This can cause memory swapping, and the need to ration out the memory across the databases in a more deliberate manner.  If these databases are within separate applications, you can better take advantage of your hardware resources.

2)     Concurrent Dimension Builds.  Dimension builds are resource intensive activities that may also require database restructures after they complete.  When these databases are within an application, you do not get a full parallelization of these activities, and the additional memory needed for outline restructures (two copies of the outline reside in memory during the restructure) will exacerbate the situation highlighted in item 1 above.  Therefore for highly volatile databases with similar batch processing schedules, you would receive better throughput on the system by placing these in separate applications.

3)     Single Point of Failure.  If many databases are in the same application, and the application is no longer able to be started, you would now have all the contained databases inaccessible until the issue is resolved. This can also happen if one of the databases within the application becomes corrupted.  Databases within separate applications are isolated from this event, and therefore impacts are lessened to the users.

4)     Load/Unload Databases.  The load and unload application features are parallelized via the Essbase Agent. However, the load and unload database are not parallelized within the Essbase Server (ESSSVR) process. Therefore, environments that require loading and loading of databases in concurrence will achieve faster throughput if they are in separate applications, vs. within the same application.

5)     Application Settings.  The following application settings apply to all databases within the application. (Refer to the Database Administrators Guide for more information on these settings.

  1. Allow Commands
  2. Allow Connects
  3. Allow Updates
  4. Enable Security

Therefore, if the administrator wishes to switch these settings, they need to be cognizant of the effect it will have on all contained databases. If databases are maintained as a one-to-one with applications, this becomes less of an issue.

6)     Database Exports.  An Essbase Server (ESSSVR) process can only export one database at a time via the ASCII database export feature. Therefore, if you have multiple databases within an application, you cannot export them in concurrence.  If the databases are in different applications (i.e., under different ESSSVR processes), they can be exported in concurrence.  Additionally, when the export is being performed, the ESSSVR process rejects other commands until the export is completed. This means that the other databases within the application will not respond to requests until the export is completed.

7)     Single Log for Application.  Essbase writes information, warning, and error messages for databases into the application log. Each application has its own log.  Having multiple databases writing to the same log can cause minimal contention lags, and also make monitoring of logs for specific databases more tedious, if many databases are writing their events to the same log.

8)   Если нужно реструктуризировать все кубы  , то это можно сделать в параллельном режиме.

Summary:

Although you can create multiple databases in an application in Essbase, it is only recommended for databases requiring use of the Currency Conversion option, or for databases that do not need additional memory and have non-conflicting maintenance schedules.  In all other instances, it is highly recommended that implementations follow a one-to-one mapping of databases and applications.

  • Pingback: Oracle Hyperion Performance Lab » EssBase Calc Performance: еще раз о производительности()

  • u041bu0435u043eu043du0438u0434 u0411u043eu0440u0447u0443u043a

    u041au0430u0441u0430u0435u043cu043e u043fu0443u043du043au0442u0430 3 u0438u0441u0442u0438u043du043du0430u044f u043fu0440u0430u0432u0434u0430. u041du0430 u043eu0434u043du043eu043c u0438u0437 u0442u0435u0441u0442u043eu0432u044bu0445 u044du043au0437u0435u043cu043fu043bu044fu0440u043eu0432 u043du0435 u0441u0442u0430u043b u0431u0435u043au0430u043fu0438u0442u044c u043au043bu043eu043d u0411u0414 u0438 u043fu043eu0441u043bu0435 u0440u0430u0437u0432u043eu0440u0430u0447u0438u0432u0430u043du0438u044f u0438u0437 u0431u0435u043au0430u043fu0430 u0438u043cu0435u0435u043c u043au0430u0440u0442u0438u043du0443:nnMAXL> alter application CONSOL load database CONSOL;nnu00a0OK/INFO – 1054014 – Database Consol loaded.nu00a0OK/INFO – 1054014 – Database Plan2 loaded.nu00a0OK/INFO – 1054014 – Database Plan3 loaded.nu00a0u00a0 ERROR – 1019038 – DB file is missing..nnMAXL> drop database CONSOL.cConsol force;nnu00a0u00a0 ERROR – 1053005 – Database directory does not exist: cConsol.nnMAXL> alter application CONSOL load database CONSOL;nnu00a0OK/INFO – 1054014 – Database Consol loaded.nu00a0OK/INFO – 1056013 – Application CONSOL altered.