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:
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.