CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages File Reference
#include "cvmfs_config.h"
#include "cache_posix.h"
Include dependency graph for

Go to the source code of this file.


class  anonymous_namespace{}::CallGuard





Macro Definition Documentation


This file is part of the CernVM File System.

The cache module maintains the local file cache. Files are staged into the cache by Fetch(). The cache stores files with a name according to their content hash.

The procedure is

  1. Look in the catalog for content hash
  2. If it is in local cache: return file descriptor
  3. Otherwise download, store in cache and return fd

Each running CVMFS instance has to have a separate cache directory. The local cache directory (directories 00..ff) can be accessed in parallel to a running CVMFS, i.e. files can be deleted for instance anytime. However, this will confuse the cache database managed by the lru module.

Files are created in txn directory first. At the very latest point they are renamed into their "real" content hash names atomically by rename(). This concept is taken over from GROW-FS.

Identical URLs won't be concurrently downloaded. The first thread performs the download and informs the other, waiting threads on pipes.

Definition at line 27 of file