Global Cache

Administrator Guide

Global Cache

Spillbox Global Cache

Reduce WAN Traffic with Localized Cloud File Access

The Spillbox Global Cache feature minimizes WAN traffic by allowing cloud-side NFS servers to access frequently used on-prem files locally. Instead of repeatedly fetching data across the WAN, Spillbox automatically creates and maintains a cloud-resident cache of world-readable files.

When a cloud NFS server requests a file, Spillbox checks the global cache first. If the file is already present, it is served locally from the cloud. Only missing files are fetched from on-prem. This reduces latency, lowers WAN utilization, and significantly improves performance for distributed compute environments.

How the Global Cache Works

The global cache is an NFS server running directly on the Spillbox webserver. When any cloud NFS server requests a world-readable file:

Spillbox checks whether the file exists in the global cache.

If the file is present, it is returned immediately from the cache.

If the file is not present, Spillbox retrieves it from on-prem, stores a copy in the global cache, and then serves it to the requesting cloud server.

This mechanism allows multiple cloud NFS servers to share a common, centralized cache and avoid redundant WAN transfers.

Cloud / Remote Server Requirements

Because the global cache stores a large amount of frequently accessed file data, it must be backed by a sizable storage pool.

The global cache server runs on the Spillbox webserver rather than on an LSF, Slurm, or other batch host. Multiple EBS (or equivalent) disks should be provisioned and combined into a single logical volume. Follow the steps outlined here:

https://repost.aws/knowledge-center/create-lv-on-ebs-partition

After creating the logical volume, mount the filesystem at the directory specified by the global_cache_dir parameter in terraform/etc/spillbox_config. The paths to be cached are listed in global_cache_mount.

If storage usage is lower than the allocated capacity, disks can be removed from the logical volume as needed. Instructions are available here:

https://unix.stackexchange.com/questions/591389/how-to-remove-a-disk-from-an-lvm-partition

Client Configuration

To enable global cache :

Create a configuration file containing:

global_cache = true

Apply the project with:

bash
splrun project apply $SPILLBOX_PROJECT <config_file>

Once enabled, all new projects by other users will automatically leverage the global cache for all supported file requests.

💬 Ask a Question