Right now the expiration is determined by 'default_expiration' via luci-config configuration. Defaults to 30 days.
https://chromium.googlesource.com/infra/luci/luci-py.git/+/master/appengine/isolate/proto/config.proto
There's desire to make this changeable by item so that some items would stay in the cache for longer. Options are:
- Specify an override at 'contains' RPC
- Specify an override at 'upload' RPC
- Add a 'extend_lifetime' RPC
Workaround without service modification:
- Have a service that calls 'contains' on a daily schedule
The 'extend_lifetime' RPC is essentially redundant with calling 'contain' an additional time. The 'upload' RPC is only called on new items, which could mean inconsistent expiration for hot items. This leaves with an override at 'contains' RPC.
The challenge with this is the UX, how a Swarming task or isolate archive would specify that some files need longer expiration? Should output files be kept longer than the input files?
Comment 1 by jkop@chromium.org
, Jun 5 2018