athens icon indicating copy to clipboard operation
athens copied to clipboard

Document our various caching and persistence levels

Open carolynvs opened this issue 6 years ago • 1 comments

"7 layer burrito of the athens cache"

  • go cli on a worker caches to the filesystem in the GOPATH/pkg/mod
  • in-memory storage
  • filesystem storage
  • redis storage
  • mongo storage
  • the go cli on the client end

What is the lifecycle for each layer? If I restart the proxy, what do I expect to see when the cache is full vs. empty? We will see different behavior depending on how it's run (i.e. in a container with ephemeral storage, or on a host with just a single worker, where the go cli disk cache comes into play).

This will help operators (and the curious) know when the caches come into play and what they should expect on cache misses, or where to monitor for storage concerns.

carolynvs avatar Aug 20 '18 17:08 carolynvs

There are two caches that we should definitely document:

  • The local cache at $GOPATH/pkg/mod
  • The not-a-cache in Athens (i.e. the database)

And we should mention that you will only be hitting Athens for dependencies if it's not already in your local cache

arschles avatar Dec 06 '18 19:12 arschles