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

SingleStore does not recommend using both variables at the same time, only one or the other.

Details related to the blob cache are found in the information schema tables mv_cached_blobs and mv_blob_cache_events.

Last modified: March 8, 2024

Was this article helpful?