Cache Service Guide
The Cache Service is a platform-based feature set at the environment (Org) level that provides caching capabilities at the data plane layer for dynamically referenced accounts, as well as pipelines and expression libraries referenced in pipelines. Since pipeline validations and executions can be slow due to information that needs to be fetched for pipeline prepare, the Cache Service optimizes the fetch mechanism by decreasing the dependency on the control plane for such operations.
Benefits
- Avoid bottlenecks during asset loading at execution time.
- Reduce time for pipeline initialization.
- Improved performance when resolving the noted asset types during pipeline execution.
Support matrix
| Asset | Support | Notes |
|---|---|---|
| Groundplexes | None | |
| Cloudplexes | None | |
| Pipelines | Child pipelines and error pipelines must be referenced via the Expression Language | |
| Accounts | Must be referenced via the Expression Language | |
| Expression libraries | Must be referenced via the Expression Language | |
| Tasks | Support is planned in a future release |
Feature Enablement
The Cache Service feature requires setting an Environment-level feature flag.
com.snaplogic.cc.cache.CacheClientProvider.CACHE_SERVICE_ENABLED
- To enable, set the feature flag to
true. - To disable, set the feature flag to
false.
We recommend that you enable this feature flag in your development environments before production environments. Consult your CSM about enabling the feature for your environment (Org).
Usage Guidelines
Since the Cache Service feature is in Preview mode, the following is subject to change. Consult your CSM if you have questions about these guidelines.
Cache Configurations
- Default TTL (Time to Live): 96 hours
- Max File Size: 10 MB
You can update these configurations via the Snaplex global properties.
- Global TTL for all caches (in hours):
jcc.cache_expiry=96 - Single item max size caps (per asset in MB):
jcc.cache.file.max_mb=10
Eviction Rules
The oldest cached asset will be evicted if the limit is reached. The following lists the limit by asset type.
- Files: 1000
- Accounts: 5000
- Pipelines: 2500
Asset References
We recommend that all pipeline references are dynamic, enabled with the Expression Language, to take advantage of the Cache Service.
All paths must be exact. If an asset cannot be found via the exact path (whether selected from the drop down or typed in), the asset fallback mechanism searches for the referenced asset. The platform searches for the asset first in the project shared directory, then second in the global shared folder. If an identically named asset exists in these locations, the pipeline executes using the reference. In this case, the asset will not be cached.
Asset Updates
When an account or pipeline is updated, the control plane pushes these updates to the JCC nodes so that the JCC gets the updated asset and the cache is undisturbed.
Note: This is currently available for accounts and will be available for pipelines in the February release.- When a project or Project space is updated, all downstream assets become invalid and do not remain in the cache.