This function is refreshing the queries within the workbooks themselves that are connected to a scheduled refresh task. The purpose of it is to improve load times for workbooks and thus result in a better user experience.
As you mentioned the default is 2.0 with the calculation being (# of Views in past 7 days) / (# of Refreshes in next 7 days)
View 1: 20 views in last 7 days but will be refreshed every day: 20 / 7 = 2.86: Workbook will be refreshed
View 2: 200 Views in last 7 days, refreshed every hour: 200 / (24*7) = 1.075: Workbook will not be refreshed
View 3: 10 views in last 7 days, refreshed once a week: 10 / 1 = 10: Workbook will be refreshed
If you have this enabled but are experiencing CPU and memory impacts than you can consider lowering the threshold or changing the overall caching option on the server side. You can also look at the Background Tasks for Non Extracts and see the "Warming up external query cache" to see when the warming up cache is running.
I am also attaching a workbook from Mark Wu that we have utilized to help configure our warming cache settings. Here is the Document he wrote for the 10.3 release that has some good information on the PDF as well: Tableau 10.3 and 10.4 new feature demo for admins
What version of Server are you on? If you are still using tabadmin you can use
"tabadmin get backgrounder.externalquerycachewarmup.enabled" to see the status or use the "tabadmin config -o C:/output.txt" to get all the config settings.
We are still testing out TSM so I am not sure of the same command, probably something like "tsm configuration get backgrounder.externalquerycachewarmup.enabled" or something similar.
You need to check 'Pre-Compute workbooks viewed recently' at each site to see the task of "Warming up external query cache on..."
We are using Tableau Server 2018.2 on Linux.
Using the command: tsm configuration get -k backgrounder.externalquerycachewarmup.enabled
I get true.
To clarify your point earlier, this cache warmup should only work for data sources/queries that live inside workbooks and not workbooks with published data sources?
This is what Mark is referring to on the Settings Tab:
For your clarification question, this should work for any workbook that connects to data extracts. If you have an extract off of a published data source then this would also be true, but not if it connects via Live connection to the published data source. The workbooks that do not fit this criteria are also still cached via the Server data-access caching option. tsm data-access caching list
...I actually do not know. I would not recommend it though
Technically, setting the cache to "Always" is the equivalent of putting the cache reuse timeout to 0 or otherwise refreshing the data each time a user navigates to the page. The warmup would be refreshing the cache after the scheduled extract refreshes. If the workbook was already cached and a user went to it, it may already know that the cache is up to date and allow better UI, but it also may just refresh again. I believe the data-access cache is stored within the VizQL and the warmup is on the cache server side so I wonder if that will make a difference.
Our Org recently moved from Tableau Server 10.5.1 to 2018.2.3 and we noticed a few times in the morning now we get these errors:
External query cache warmup job
com.tableausoftware.nativeapi.dll.TableauException: Some workbook views failed external query cache warmup.Please see the logs for more information.
It's only been a few days, so we are still monitoring it. When we upgraded Dev and QA we didn't see this issue.
But those environments have less extracts and activity.
I will agree with Andrew Bickert :
- not recommend to set tsm data-access caching to always while tsm configuration get -k backgrounder.externalquerycachewarmup.enabled is true.
What I recommend is all the followings:
- set tsm data-access caching to Low (or specific value - my server has 1440 minutes - yes 24 hrs before I can see the render time reduction due to cache)
- Keep backgrounder.externalquerycachewarmup.enabled (default value). Can be verified using tsm configuration get -k backgrounder.externalquerycachewarmup.enabled
- tsm configuration set backgrounder.externalquerycachewarmup.view_threshold to 1 (or keep current default 2). Use the attached workbook to figure out what is the best value for your server based on workload pattern.
Read my recent blog @ http://enterprisetableau.com/cache/
In previous versions like v9 -10 there were these settings:
And I noted what they were in the past, do these still exist or play in the data-access cache setting calc?
I downloaded the Config cache warming threshold workbook and attached it to my Prod Postgres DB.
Now I am looking at it to figure what setting I must do.
But the problem we had in the past on a single node server with various types of data-sources and workbooks some huge and some tiny and refreshed often.
It was difficult to find a solution that fits all sites, workbooks or data-sources.
Jeffrey, I am glad that the workbook helps. I agree with you that it is hard to find one setting fits all use case due to the fact that Tableau whole server has only one cache policy. Image that this challenge will only go bigger when you have 5-6 or more nodes (means more diff use cases).
Good news is that this is a way. Please read my recent post http://enterprisetableau.com/cache/