nextflow.cache

The nextflow.cache package implements the cache database of previously executed tasks.

Class Diagram

classDiagram %% %% nextflow.cache %% Session --* CacheDB %% CacheFactory --> CacheDB : createInstance CacheDB --* CacheStore CacheStore <|-- DefaultCacheStore CacheStore <|-- CloudCacheStore class DefaultCacheStore { uniqueId : UUID runName : String baseDir : Path } class CloudCacheStore { uniqueId : UUID runName : String basePath : Path }

Note

Some classes may be excluded from the above diagram for brevity.

Notes

The cache database uses Kryo to serialize and deserialize task data. Each key-value pair in the cache database corresponds to a task. The key is the task hash, and the value consists of (1) the task TraceRecord, (2) the TaskContext, and (3) the task reference count.

The default cache store is backed by LevelDB and is stored in .nextflow/cache/<session-id> relative to the launch directory.

The cloud cache store is backed by remote object storage such as Amazon S3, Azure Blob Storage, and Google Cloud Storage. It stores each task entry as a separate object.