Skip to content

Allow for the async registry to go to an external cache #34

Description

@fntlnz

To overcome the fact that most upstream registries would struggle with the amount of requests the information in staticreg would require to (for example, list all tags for all the images on a registry) we implemented an internal cache called Async registry.

This leads to three issues:

  • when restarting staticreg, the cache is cold so the pages are empty. One possible solution is also Health check endpoint #26
  • when starting staticreg on multiple instances they might have different versions of the cache because they create them independently
  • memory usage grows linearly with the amount of tags in the registry and is tied to each staticreg instance

To overcome this, @bebosudo suggested to use an external cache (such as a Redis instance) which I agree.

We could abstract the Async Registry to an interface and implement various backends such as the current one for inmem and one for redis. There are surely libraries that already do this such as Gocache, we can explore that as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions