Built-in cache warming in Qlik Sense - first impressions

Client-managed Qlik Sense 2024-May adds built-in cache warming. This post takes a quick first look at this feature, comparing it to the Butler CW tool that does the same thing, but as a standalone tool.

Built-in cache warming in Qlik Sense - first impressions
Client-managed Qlik Sense now has (basic) built-in cache warming.

When Qlik yesterday announced the 2024-May version of client-managed Qlik Sense, a small but interesting new feature saw daylight: Preloading of apps, also know as "cache warming".

💡
tl;dr

- The cache warming introduced in client-managed Qlik Sense May 2024 is a very good first version, but doesn't go all the way.
- Specifically, no support for pre-loading/pre-calculating UI objects such as charts, tables etc.
- Good that it is possible to (optionally) specify which servers apps should be preloaded onto.
- Not possible to start preload tasks manually in the QMC.

Once upon a time in Sweden...

Back in 2016 Qlik Sense was still a fairly new product.

The features and visual appearance of Sense anno 2016 were vastly different from those of today's Sense version, the product has had an amazing journey when looking at what it does today.

One challenge from 2016 remains though: The need to proactively force important Sense apps into the Qlik associative engine running on the Sense server, i.e. cache warming.

Butler CW was created around 2016 as a solution to this problem.
It simply takes a list of apps and loads them into the Sense server at regular intervals.

Butler CW

Cache warming for Qlik Sense

Download and documentation

For each app you can specify things such as

  • How often the app will be loaded into the Sense server.
  • If charts, tables etc should be pre-calculated too. This can improve the end-user experience significantly for some apps.

All in all, Butler CW has over the years proven to be a simple and reliable, yet quite useful little tool.

Sense's own cache warming - first impressions

Built-in cache warming (or "preloading of apps", as Qlik calls the feature) was introduced in the May 2024 release of client-managed Qlik Sense.

That's awesome - it's of course much preferred to have features like this included in the main product.

Looking in the QMC there is now a new kind of reload task called "Preload".
After clicking the "+ Preload task" button to create a new task we have something like this:

Three kinds of tasks associated with a Sense app.

Opening the preload task we have the usual sections found in other task types (i.e. name, enabled/disabled, triggers, tags, custom properties etc), with an important addition: a new "Preload" section:

Good that it's possible to specify which nodes the app should be preloaded onto.

If you don't add any specific nodes in this section the regular load balancing and scheduler rules will determine which server/node the app is loaded into.

That's all good - but it doesn't work

I happily set a trigger to preload the app in 5 minutes time, but it failed.

Some confused poking around in the QMC followed, until I found a new checkbox in the Nodes section. Under the "Scheduler priorities" heading there is a new setting that must be enabled:

Don't forget to enable preloads for each Sense node where it should be allowed.

With that fixed the preload happened as expected a few minutes later.

Manual override

Maybe a small thing, but looking at other kinds of tasks associated with apps (reload tasks, distribution tasks) these can be manually started from the QMC.

It seems that the start button is always disabled for preload tasks though. Maybe there is some smart thinking behind this, or it's a bug. Time will tell.

Not possible to manually start preload task in the QMC?