Many basic administrative actions such as loading the admin console or the browse reports page in Yellowfin are repeatable events and can benefit from caching.
If an action/event is cached, Yellowfin will draw the results from temporary memory rather than querying the configuration database. Similar to report and view caching, properly adjusting these settings can lead to dramatic performance improvements.
How do I know if I need to adjust event caching?
Yellowfin contains a diagnostic page specifically to track the effectiveness of caching throughout the program, called info_cache.jsp.
While this page can be useful for all of your caching needs, we are specifically interested in the "Event Cache" section.
Cache Hits vs Cache Misses
If an action/event is not cached and Yellowfin needs to query the configuration database, this will register as a Cache Miss. While there is no hard line for what this should be, we typically will want the Cache Hit Rate to be greater than 60%
Max Cache Size
Event caching is enabled by default in Yellowfin, with a maximum cache size of 100,000. If the amount of events being cached is pushing this limit, and the amount of misses is high, we will want to increase this setting.
What you choose to increase this to is highly dependent on what the values, described above, currently say. If you are hitting on less than 10% of your caches, a good starting value might be 500,000. Then, after using Yellowfin as normal for a day, check back in and see if the cache hit rate increased.
Note: In the example above, we are caching 7% of the maximum allowed and hitting on 92% of these. This is a perfect example of event caching performing as desired.
How do I increase the Max Cache Size?
The event cache storage parameters will need to be added in the web.xml configuration file. This can be found: <your_yellowfin>/appserver/webapps/ROOT/WEB-INF/web.xml
Add the following lines under the MIStartup servlet, save, and then restart your Yellowfin instance:
<init-param> <param-name>EventCacheSize</param-name> <param-value>500000</param-value> </init-param> <init-param> <param-name> EventCacheMaxDays</param-name> <param-value>30</param-value> </init-param>
It is important to ensure that the white space alignment of this matches the alignment of the rest of the servlet. The final result should look similar to the screenshot below: