Forum

This content is now out of date.

Visit Our Community

Report Caching Parameters

We set Yellowfin cache in web.xml as follows:


ReportCacheSize
20


ReportCacheMaxAge
86400000


Q1:if run report over ReportCacheSize cached data goes where? FIFO manner?

Q2:can we set ReportCacheMaxAge one week or one month .. log term?
is this bad setting?

Q3:we want to caching views and reports automatically with scheduling is
this possible?

Q4:is ReportCacheSize depends on what resources? RAM? Java HeapSize? How
to extent cache ability?
1) ReportCacheSize actually specifies the number of reports which will be cached, not the amount of space for reports that are being cached. When the cache fills up the oldest report is removed for new reports to be put in, so it?s FIFO in that regard.

2) It?s probably not a good idea to set up long-term caching. Another approach which would be better is going into the category control and under "report version control" selecting "keep archived report result sets" and then setting a long delete period.

3) This is possible if you?re using the above approach to storing data. If you have set up a category to keep archived result sets you can schedule the archiving of reports within that category. This can be done when the report is being saved by changing settings under "how should report data be refreshed?". More information on this can be found on pages 28 and 81 of the users guide.

4) The JVM heap size is relevant to how much data can be cached, but as the ReportCacheSize specifies the number of reports that can be cached instead of the amount of space available for caching there?s no "direct" correlation between ReportCacheSize and the amount of space available for caching. If you use the approach from the answers to questions two and three you won?t have to worry about extending the amount of memory available for long term caching.
The Yellowfin cache is a mechanism Yellowfin uses for storing result sets in memory. If a user runs a report twice, the cached result set may be used rather than going back to the database to retrieve the data a second time. This reduces the time needed to run the report, but increases the amount of memory required. This can be an effective way of minimising the amount of work the database does, but means that you may not be seeing up-to-date data (if you are reporting off an operational system).

Each View in Yellowfin has a "Default Cache Period" which specifies how long a result set may be stored in the cache. By default this is set to zero, which effectively disables caching.

There are also some system-wide settings that affect the cache. These are:
ReportCacheSize - the maximum number of report results that can be stored in the cache at any given time. Default value = 20.
ReportCacheMaxAge - the maximum age (in milliseconds) that a report may be stored in the cache. Default value = 86400000 (24 hours). The actual cache time for a result set it the smaller of the ReportCacheMaxAge, and the Default Cache Period on the report?s view.
These settings are stored in the file YellowfinappserverwebappsROOTWEB-INFweb.xml :


ReportCacheSize
20


ReportCacheMaxAge
86400000


If you update these values you will need to restart Yellowfin for them to take effect.
Once we have set up a "Default Cache Period" on a view - is there a way to force a refresh instead of waiting till this period has elapsed e.g. we find an overnight job has not built a table correctly and after fixing the problem we want everyone to see the corrected data ?

thanks
Robin