Skip to content

Improve decision making when deleting files exceeding the cache file limit #1266

@alterNERDtive

Description

@alterNERDtive

Feature description

In an environment with multiple instances of Foundry across more than one major version, it should be possible to retain e.g. the latest v12 and the latest v13 version, no matter how many versions “newer” than the latest v12 have been downloaded in the meantime.

I am not entirely sure how that can be implemented without ending up with stale old major versions. Maybe whenever a cached file is used the container should touch the access time, and the file deletion logic could go off that. Or maybe you have a better idea.

Motivation

I run a Foundry container for D&D 5e on v13, and containers for (currently) Lancer and Mothership on v12. I have the cache limit set to 5.

It just so happens that I currently have 4 version of v13 cached (and a single v12):

foundryvtt-12.343.zip
foundryvtt-13.344.zip
foundryvtt-13.345.zip
foundryvtt-13.346.zip
foundryvtt-13.347.zip

13.348 is due to release, and currently that will lead to 12.343 being dropped from the cache. The next time I restart one of the v12 containers, it will have to be re-downloaded.

Rinse and repeat after every v13 update, as long as any container still uses v12.

Example

  • the download cache size has been exceeded
  • instead of dropping the “oldest” version by file name, some other logic is used to drop the least recently used instead

Pitch

One of the major reasons to use a docker container for Foundry is running multiple instances in parallel. One of the, if not the main reason to run multiple instances of Foundry is different major version requirements for different game systems (in this case: v13 for D&D 5e, v12 for Lancer / Mothership).

Preventing dropping “old” versions of Foundry that are actually still in use and preventing unnecessary re-downloads sounds like a good idea to me.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions