Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces a new SQLite-based caching mechanism for Nextflow, enabling an alternative to the default cache store. Key changes include adding a new
SQLiteCacheStore
class, modifying the cache factory to support multiple cache providers, and adding test coverage for the new SQLite implementation.New SQLite-based caching mechanism:
SQLiteCacheStore
implementation: Added a new classSQLiteCacheStore
that provides an SQLite-based implementation of theCacheStore
interface. This includes methods for managing cache entries, creating tables, handling database connections, and ensuring concurrency safety. (modules/nextflow/src/main/groovy/nextflow/cache/sqlite/SQLiteCacheStore.groovy
)Test coverage for
SQLiteCacheStore
: Added comprehensive unit tests forSQLiteCacheStore
to validate its functionality, including handling cache entries, managing indexes, and ensuring consistency and concurrency. (modules/nextflow/src/test/groovy/nextflow/cache/sqlite/SQLiteCacheStoreTest.groovy
)Cache factory enhancements:
Dynamic cache provider selection: Updated the
DefaultCacheFactory
to dynamically select the cache provider (sqlite
or default) based on theNXF_CACHE_PROVIDER
environment variable. Added logging to indicate the selected cache provider. (modules/nextflow/src/main/groovy/nextflow/cache/DefaultCacheFactory.groovy
)Logging support: Added the
@Slf4j
annotation toDefaultCacheFactory
to enable logging for debugging and operational insights. (modules/nextflow/src/main/groovy/nextflow/cache/DefaultCacheFactory.groovy
)Dependency updates:
org.xerial:sqlite-jdbc:3.46.1.3
to the project dependencies to support SQLite database operations. (modules/nextflow/build.gradle
)