Write-Through Cache

Jefferson Lab's Write-Through Cache system is a front-end disk cache to the tape library system.  It enables a user with appropriate permission to deposit new files into the cache and have those new files migrated into the tape library after a short period of time within which the files can be modified or deleted.  This cache file system serves neither as a backup area for users' home directories nor as a large disk area for code development.  The cache system is intended for large experimental configuration, calibration, and raw data as well as simulation data.  Users are especially discouraged from putting extremely small or rapid changing files into the system.

The write-through cache file system is mounted on all Farm nodes under /cache.  Each experimental hall or large project has a disk area that can be accessed as /cache/<project>.  Each area has a configurable quota and reservation size.  Directories are writable by a user using permissions just like a normal Unix file system (it is in fact a Lustre file system).  A custom process (cacheManager) manages the disk space to ensure the newly created files are migrated to the tape library in a timely fashion and to represent the tape library as a file system to users.

The user-created new files under /cache/<project> are backed up to the tape library under /mss/<project> within a short period of time.  The mapping between a stub file directory /mss and /cache is one to one. Users can fetch any file under /mss/<project> to the write-through cache filesystem using the jcache command.  The default environment includes /site/bin in PATH, but if you have changed this, you may need to specify the command's full path, /site/bin/jcache. Run jcache -h on any ifarm host to get syntax.

CacheManager will automatically delete files based on a least-recently-used (LRU) algorithm when disk space is needed.  Before any file is deleted, the cacheManager makes sure that the file on disk has a copy in the tape library.  If a user wants to replace the copy on tape with the new one on disk, he or she must use jcache tapeRemove to delete the old copy in tape library first, otherwise the new copy on disk will not be saved to the tape library.

Permission and Ownership Settings

The tape library software (JasMine) maintains permission and ownership information for all /mss (stub) directories and files. The permission and ownership settings on all /cache directories and files are the reflections of the settings inside JasMine. More specifically,

Backup policy

Deletion policy

Pin policy