...

Package cache

import "github.com/docker/distribution/registry/storage/cache"
Overview
Index
Subdirectories

Overview ▾

Package cache provides facilities to speed up access to the storage backend.

func NewCachedBlobStatter

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

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

func ValidateDescriptor(desc distribution.Descriptor) error

ValidateDescriptor provides a helper function to ensure that caches have common criteria for admitting descriptors.

type BlobDescriptorCacheProvider

BlobDescriptorCacheProvider provides repository scoped BlobDescriptorService cache instances and a global descriptor cache.

type BlobDescriptorCacheProvider interface {
    distribution.BlobDescriptorService

    RepositoryScoped(repo string) (distribution.BlobDescriptorService, error)
}

type Logger

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{})
}

type Metrics

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
}

type MetricsTracker

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
}

Subdirectories

Name Synopsis
..
cachecheck
memory
redis