Caching

Prev Next

ICAP server caching

From Halo version v2.4.12, the ICAP server now includes the capability to cache adapted files for later use, speeding up the process of serving common files that have been previously rebuilt via the Halo CDR process.

The cache is implemented and maintained by the ICAP server (icap-server) and is backed by Halo's file storage mechanism.

Once the cache is full, the oldest items are deleted.

The cache only persists files that have been adapted with a valid response from Halo. This includes rebuilt files, and files that failed to be rebuilt but were analyzed. All other files skip the cache; this includes bypassed, blocked and errored files.

Cache size

The ICAP cache is a fixed size of 1 GB, this size has been selected for ease of maintenance and I/O performance.

Cache deployment

Please follow the relevant deployment instructions for icap-server, which includes the cache. Please note, the cache is automatically emptied when icap-server is upgraded or installed.


Clearing the cache

The cache is automatically emptied when installing or upgrading the ICAP server, but there may be a reason to clear the cache at another time. Please follow the steps below to empty the cache.

Step 1 - Connect to the ICAP server inside the Halo cluster

Using Kubectl, the following command opens a connection to the icap-server-api service in the cdrplatform namespace by forwarding to the exposed port 8080.

kubectl port-forward service/icap-server-api <local-port>:8080 -n cdrplatform

Step 2 - Make a DELETE request on the exposed port

For convenience, the icap-server ships with an API for maintaining the cache. The port that was opened in the last step can now be used to clear the cache.

curl --location --request DELETE 'http://localhost:<local-port>/api/v1/cache'