Yellowfin Internal Cache Options

Yellowfin stores many objects in LRU (Least Recently Used) memory caches to manage frequently requested objects and minimize requests to the Yellowfin database. LRU Caches have a maximum size and timeout. Elements will be removed from the cache when they have lived in the cache for the timeout period, or have been forced out due to the cache meeting its maximum size.

These cache timeout and size parameters can be modified in order to optimize a growing Yellowfin environment. It is important to scale these parameters as your instance grows in order to maintain optimum performance. You can view the current cache defaults and statuses by appending info_cache.jsp to the end of your standard Yellowfin URL. For example, localhost:7373/info_cache.jsp

Having effective caches, regardless of type, will result in higher performance for the end user. Having well utilized caches means that YF won't have to go between its configuration database or data sources as often, consuming network and CPU resources. The tradeoff is that large caches with lots of stuff in them will cost RAM. It's up to the system/YF administrator to analyze the environment and implement an effective cache strategy that aligns with their system and business needs. 

Here are a list of the caches in Yellowfin and their configurable parameters:

Report Data Cache

The Report Data Cache stores result sets, keyed by SQL. This is for storing report data when the Default Cache Period is set on a Yellowfin view. View caching MUST be turned on in order Yellowfin to cache report data. 

Parameters:

  • ReportCacheSize (Integer) - This is how many datasets will be stored in the cache. Default: 20 datasets
  • ReportCacheMaxAge (Integer Milliseconds) - Maximum timeout for an element in this cache. Default: 24 hours (86400000 ms)

Report Definition Cache

The Report Definition Cache stores the metadata for each report. This is different than the Report Data Cache, as the Report Definition Cache only stores information about how reports are structured, not the actual data content of the reports themselves. 

Parameters:

  • ReportDefinitionCacheSize (Integer) - This is how many definitions will be stored in the cache. Default: 1000 definitions
  • ReportDefinitionCacheTimeout (Integer Milliseconds) Maximum timeout for an element in this cache. Default: 24 hours (86400000 ms)

Dashboard Definition Cache

The Dashboard Definition Cache stores the meta data for each dashboard tab.

Parameters:

  • DashboardDefinitionCacheSize (Integer) - This is how many definitions will be stored in the cache. Default: 1000 definitions
  • DashboardDefinitionCacheTimeout (Integer Milliseconds) - Maximum timeout for an element in this cache. Default: 24 hours (86400000 ms)

Document Cache

The Document Cache stores document objects.

Parameters:

  • DocumentCacheSize (Integer) - This is how many document objects are stored in the cache. Default: 50 document objects
  • DocumentCacheTimeout (Integer Milliseconds) - Maximum timeout for an element in the cache. Default: 12 hours (43200000 ms)

Person Cache

The Person Cache stores information about users, inclussive of profile information, permissions, settings, etc.

Parameters:

  • PersonCacheMaxSize (Integer) - This is how many 'person' objects are stored in the cache. Default: 50 person objects
  • PersonCacheTimeout (Integer Milliseconds) - Maximum timeout for an element in the cache. Default: 12 hours (43200000 ms)

Cached Filter Cache

The Cached Filter Cache stores cached filters.

Parameters:

  • CachedFilterCacheSize (Integer) - This is how many cached filter entries will be stored in the cache. There is one entry per filter hierarchy, unless source substitution or source filters are in use. Then there may be one entry per user, or source filter value. It is dependent on the cache method. Each entry stores the available values for each filter in the hierarchy. Default: 100 objects
  • CachedFilterCachePeriod (Integer Milliseconds) - Maximum timeout for an element in this cache. Default: 24 hours (86400000 ms)
  • MetaCachedSize (Integer) - This is how many hierarchy definitions will be stored in the cache. Default: 1000 definitions
  • MetaCachedPeriod (Integer Milliseconds) - Maximum timeout for an meta-data elements in this cache. Default: 24 hours (86400000 ms)
  • CachedFilterBatchSize (Integer) - How many rows will be written at a time when populating cached filter values. Default: 100 rows
  • CachedFilterCacheMethod (Code) - One of:

        NO_CACHE - no memory caching, loaded from the DB each time a hierarchy is requested.
        CACHE_BY_USER - cache values by user.
        CACHE_BY_SOURCE_FILTER - cache by different source filter values.

    Default: CACHE_BY_USER

  • CachedFilterJoinMethod (Code) - One of:

        DATABASE - perform data joins at database in one complex query against the Yellowfin DB

        JAVA - perform data join in java, running multiple simple queries against the Yellowfin DB

    Default: DATABASE

View Cache

The View Cache contains cached view objects. Settings for each view's cache are found under the performance section in the 'Prepare' step of the view builder within the Yellowfin UI. 

Geometry Cache

The Geometry Cache caches geometry used in reports featuring maps.

Parameters:

  • GeometryCacheSize (Integer) - This specifies how many shapes should be cached in memory. Default: 4000 shapes.

Report Thumbnail Cache

The Report Thumbnail Cache stores report thumbnail images that are displayed in places like the Browse page. 

Parameters:

  • ReportThumbnailCacheSize (Integer) - This specifies how many report thumbnail images should be cached in memory. Default: 1000 images.

Image Cache

The Image Cache stores frequently used images. These are generally user supplied images.

Parameters:

  • ImageCacheSize (Integer Bytes) - This specifies how many bytes of image memory should be cached in memory. Default:

    52428800 bytes (54 megabytes). 

Translation Cache

The Translation Cache stores frequently used translation objects. These are usually custom translations provided by the user.

Parameters:

  • TranslationCacheSize (Integer) - This specifies how many translation objects should be cached in memory. Default:

    5000 objects. 

  • TranslationCacheMaxAge (Integer Milliseconds) - Maximum timeout for an element living in this cache. Default: 24 hours (86400000ms)

LDAP DN Cache

The LDAP DN Cache stores LDAP information frequently used by Yellowfin. This cache is only beneficial to environments that utilize LDAP authentication.

Parameters:

  • LDAPDNCacheSize (Integer) - This is how many LDAP objects that will be stored in the cache. Default: 300000 objects.
  • LDAPDNCacheMaxAge (Integer Milliseconds) - Maximum timeout for an element in this cache. Default: 25 hours (90000000 ms)

Event Cache

The Event Cache stores event information frequently accessed by Yellowfin. This includes various frequently accessed pages, actions, methods, etc. 

Parameters:

  • EventCacheSize (Integer) - This is how many event objects that will be stored in the cache. Default: 100000 objects.

Text Entity Cache

The Text Entity Cache stores frequently accessed text items that are part of Yellowfin's collaborative features. These include pieces of functionality like Storyboard, Timeline, and Discussions Streams. 

Parameters:

  • TextEntityCacheSize (Integer) -  How many text objects that will be stored in this cache. Default: 10,000 items. 
  • TextEntityCacheMaxAge (Integer Milliseconds) - The amount of time in milliseconds that an item will be kept in the cache. Default: 43200000ms (12 hours)

Adding and Editing Parameters:

Each of the above parameters can be added to the web.xml.
Each parameter should be of the following form:

[VALUE]

For example, like:

CachedFilterJoinMethod DATABASE

And should be a child of the MIStartup servlet.
(You can just add each new parameter under the line: com.hof.mi.servlet.MIStartup )

You can check that the parameters have been accepted in the standard out when starting up Yellowfin:

| Initialising CachedFilterCache... OK
| Cache Method: CACHE_BY_USER
| Cached Filter Cache Size: 100
| Cached Filter Query Cache Size: 100
| Cached Filter Meta Cache Size: 1000
| Cached Filter Cache Period: 86400000 ms
| Cached Filter Query Cache Period: 86400000 ms
| Cached Filter Meta Cache Period: 86400000 ms

You can also load the info_cache.jsp page in a browser to see the current cache stats.

Is article helpful?