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.