Setting the Blob Cache

The blob cache is a disk cache of data in a remote object store.

Its size is controlled by the following engine variables:

When the disk space on the disk it’s mounted on starts getting filled up and stored files/objects need more space, the blob cache starts shrinking itself. The blob cache can shrink down to 70% of its maximum size.  Anything that uses disk space (logs, trace logs, plancache, audit logs) even things outside the engine can steal space from the blob cache.

Changing maximum_blob_cache_size_percent changes maximum_blob_cache_size_mb but then you can reset maximum_blob_cache_size_mb again. Essentially, maximum_blob_cache_size_mb is the 'source of truth' and maximum_blob_cache_size_percent can be 'out of date' if you reset maximum_blob_cache_size_mb after setting maximum_blob_cache_size_percent. However, on a restart, maximum_blob_cache_size_percent will take priority and set maximum_blob_cache_size_mb to the corresponding value.

Example:

//Assume you are using a 1 TB disk and
maximum_blob_cache_size_mb = 800GB  // for example
maximum_blob_cache_size_percent = 0
maximum blob cache size = 800GB
SET maximum_blob_cache_size_percent = 0.50;
//Now
maximum_blob_cache_size_mb = 500GB
maximum_blob_cache_size_percent = 0.50
maximum blob cache size = 500GB
SET maximum_blob_cache_size_mb = 800GB;
maximum_blob_cache_size_mb = 800GB
maximum_blob_cache_size_percent = 0.50
maximum blob cache size = 800GB
// On restarting the node
maximum_blob_cache_size_mb = 500GB
maximum_blob_cache_size_percent = 0.50
maximum blob cache size = 500GB

It is recommended not to use both variables at the same time, only one or the other.

Last modified: October 24, 2023

Was this article helpful?