In this article:

Loading Data to Global Cache

Loading Cached Data to RAM

Saving Data on Global Cache Use

Global Cache Management Console

Memory Use and Performance

Scenarios of Global Cache Use

Logging of Executed Operations

Global Cache Constraints

Working with Global Cache

Multidimensional cubes and dictionaries store data in flat relational structures. When working with multidimensional cubes, a data selection query is executed from relational structures, then data selection results should be loaded and built into multidimensional structures. With large volume of data, high data sparsity, a number of conditions during query execution selection, loading and building in multidimensional structures may require a long time. To speed up Foresight Analytics Platform, there is a built-in capability for working with data cache of dictionaries, standard cubes and cube views and virtual cubes. When cache is used, the previously loaded and built multidimensional structure is saved in DBMS and is loaded to RAM on the first work with the object.

Data saved in the special format is loaded to RAM, conversion to matrix is not required because data is already stored in multidimensional format. One query is enough to get the entire matrix and place it in BI server RAM. Specialized multidimensional databases, special files or special data structures in relational DBMS can be used to store multidimensional data.

There are two cache operation modes:

Both modes can be used to cache data of dictionaries and cubes.

For details about working with global cache in Fore see the Working with Global Cache in Fore section.

Loading Data to Global Cache

Data can be loaded to global cache using the global cache management console. When this cache creation method is used, data can be divided not only by parameters but also cache can be created by a specific cube selection. This method also allows for saving all data to cache.

NOTE. After determining or changing settings in the settings.xml file or in system registry settings, restart the BI server.

Selection of a global cache loading mode depends on the tasks to be solved and data sources structure.

Loading Cached Data to RAM

A cached object is loaded to RAM on the first use of this object. Then, depending on the settings, object data will be available to all users. All further object use will be executed in RAM, and additional queries to DBMS will not be created.

Full Cache

When full cube cache is used, the use of data in any slice results in loading of all cache to RAM, which may take longer time than working without cache, if the selection, by which data should be obtained, is not very large. In this case more memory will be used than without cache because all cube data will be stored in RAM.

If working with data does not assume the use of all data, one can divide data by parameters to save to cache in parts or to set selection on creating cache.

Cache by Parameters

If cache was saved for different parameter values, cache can be loaded to RAM for each parameter in parallel using different indicators.

NOTE. The cache by parameters is only available for parametric cubes.

Saving Data on Global Cache Use

If the data loaded to RAM was changed and saved to source, it will be visible to users until cache is in RAM. If cache was loaded from RAM and loaded to it again, the changed data will not be visible.

As global cache is stored separately from cube and dictionary data, when the source data is changed in source objects, it is not loaded to cache automatically.

To update cache data, "warm-up" cache again using the cache "warm-up" wizard of the global cache management console. Take into account features of saving data for full cache or cache by parameters in multi-user mode:

Global Cache Management Console

To start the console, select the Cube Caching item on the side panel of the object navigator. After this the page with the URL in the following format opens in the new browser tab:

http://<IP address or DNS server name>/fp10.x/app/cache.html#repo=<repository identifier>

NOTE. To work with the global cache management console, the repository should contain the Cube Cache extension .

Available settings:

Creating Data Cache

To create data cache and select a cacheable object, click the Set Up button in the cache creation wizard area on the console start page.

After executing the operation the Cache Model tab opens:

Determine the settings:

Select cube for caching

Create and edit cache records

Delete cache record

Cache "Warm-up" Wizard

To populate a cache record with data, click the Set Up button in the cache creation wizard area on the console start page.

After executing the operation the Cache Warm-up tab opens:

Determine the settings:

Select cube for cache "warm-up"

Set up cache "warm-up" method

Monitoring

To view records loaded to BI server memory, click the Set Up button in the memory monitoring wizard area on the console's start page.

The page will display a list of cache records that are currently loaded to memory. To clear the data matrix of any cache record, select it and click the Clear button. The record remains loaded but the number of points for it will be zero.

If someone works with a record at the same time from application code, and this record is locked for read/write, the Number of Points, Date, Allocated Memory, Used Memory columns will display the text "Record unavailable". Clearing this record will be unavailable.

Memory Use and Performance

Before making a decision whether to use data caching, see work speed and memory use values. The indicators presented below depend on the hardware, DBMS server load, and other conditions.

Memory use depends on the number of dimensions, number of facts, and data type.

Averaged indicators of memory use and performance for cubes with real data type:

Number of records, mln.

Number of dimensions

Number of facts

The first opening without cache, sec.

The first opening with cache, sec.

The second opening with "warmed up" cache, sec.

Memory, Gb

10

5

1

19.7

3.6

0

0.52

10

5

5

52.0

31.6

0

2.3

10

10

1

43.2

4.6

0

0.68

10

10

5

67.2

35.7

0.01

3.2

10

18

1

67

9

0.01

1.2

10

18

5

90.3

48.4

0.01

4.8

100

5

1

216.6

40.4

0.01

4.7

100

10

1

279.4

48.2

0.01

6.5

100

18

1

567.6

135.4

0.01

9.3

Take into account the effect of cube settings and cube structure on the amount of necessary RAM:

If the system is out of RAM during cache loading:

Scenarios of Global Cache Use

Use global cache if the following scenario is implemented:

When making a decision whether to use data caching in Foresight Analytics Platform, take into account that:

To be able to work with different data fragments in different time periods, use cache by parameters instead of full cache. To use cache by parameters, determine one or several object parameters and create your own cache fragment for each combination of parameters. "Warm-up" of each such cache fragment is managed separately, and any of them can always be added or removed from the common fragment pool.

Logging of Executed Operations

Data cache management console is used to log operations executed by the user. When the console opens for the first time, log storage tables will be created in the Cube Cache extension in the Service Objects folder. The console should be opened by the user who is a repository administrator.

The following tables are created:

NOTE. To ensure correct creating of tables, which store cache work log, the repository can be created based on PostgreSQLDBMS, and a default database should be set up in the repository.

By default, all repository users can access tables. If required, the administrator should set up access permissions according to developed system requirements.

Global Cache Constraints

Before making a decision whether to use data caching, see the constraints:

When executing data analysis and building reports based on cubes with enabled global cache, using the Analytical Queries (OLAP), Dashboards, Reports, Interactive Data Entry Forms tools, the following functions are unavailable:

See also:

Data Access Using InMemory MOLAP