Invalidation automatique du cache #51
Reference in New Issue
Block a user
No description provided.
Delete Branch "auto-cache-clear"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
Cette PR extrait les détails d’implémentation des serveurs admin et proxy afin d’utiliser des interfaces pour les
store.*Repository
et lelock.Locker
.Elle introduit également un mécanisme d’observabilité sur les dépôts Redis afin d’invalider automatiquement les caches lorsque des proxies ou des layers changent.
Par ailleurs, un signal
SIGUSR2
est désormais pris en charge pour vider l’ensemble des caches.Contexte
init.go
).SIGUSR2
était reçu, mais aucune notification n’était déclenchée lorsqu’un layer ou un proxy était modifié via l’API.Problème
Solution apportée
Injection d’interfaces
ProxyRepository
etLayerRepository
, ainsi que leLocker
, sont désormais injectés via lesOptionFunc
des serveursadmin
etproxy
.initRedisClient
,initLayerRepository
,initProxyRepository
ont été retirées des serveurs.Observabilité des repository
store/observable.go
définissant l’interfaceObservable
.layer_observable.go
etproxy_observable.go
).proxy
s’abonnent aux notifications et effacent les caches appropriés.Invalidation du cache
proxy
exposeClearProxyCache
etClearLayerCache
.SIGUSR2
est toujours pris en charge pour vider l’ensemble des caches.WIP: refactor: remove redis direct references from proxy/admin serversto Invalidation automatique du cache