func NewCachedBlobStatter(cache distribution.BlobDescriptorService, backend distribution.BlobDescriptorService) distribution.BlobDescriptorService
NewCachedBlobStatter creates a new statter which prefers a cache and falls back to a backend.
func NewCachedBlobStatterWithMetrics(cache distribution.BlobDescriptorService, backend distribution.BlobDescriptorService, tracker MetricsTracker) distribution.BlobStatter
NewCachedBlobStatterWithMetrics creates a new statter which prefers a cache and falls back to a backend. Hits and misses will send to the tracker.
func ValidateDescriptor(desc distribution.Descriptor) error
ValidateDescriptor provides a helper function to ensure that caches have common criteria for admitting descriptors.
BlobDescriptorCacheProvider provides repository scoped BlobDescriptorService cache instances and a global descriptor cache.
type BlobDescriptorCacheProvider interface { distribution.BlobDescriptorService RepositoryScoped(repo string) (distribution.BlobDescriptorService, error) }
Logger can be provided on the MetricsTracker to log errors.
Usually, this is just a proxy to dcontext.GetLogger.
type Logger interface { Errorf(format string, args ...interface{}) }
Metrics is used to hold metric counters related to the number of times a cache was hit or missed.
type Metrics struct { Requests uint64 Hits uint64 Misses uint64 }
MetricsTracker represents a metric tracker which simply counts the number of hits and misses.
type MetricsTracker interface { Hit() Miss() Metrics() Metrics Logger(context.Context) Logger }
Name | Synopsis |
---|---|
.. | |
cachecheck | |
memory | |
redis |