Cache Service Guide Preview
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 and error pipelines must be referenced dynamically (Expression Language enabled) | |
| Accounts | Must be referenced dynamically (Expression Language enabled) | |
| Expression libraries | Must be referenced dynamically (Expression Language enabled) | |
| 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
Asset Updates
When an account or pipeline is updated, the control plane pushes these updates to the JCCs 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 will be invalidated and will not remain in the cache.
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
Limitations
References to Assets need to be specified with concrete paths. If a path to an asset is not concrete, the Asset isn't cached.