limited

package
v0.14.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 10, 2023 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package limited implements the blobserver interface which limits the size of the underlying blobserver.Storage

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LRUEvictPolicy

func LRUEvictPolicy(size int) lruPolicy

LRUEvictPolicy returns a simple LRU based eviction policy.

Types

type EvictPolicy

type EvictPolicy interface {
	// Add returns what has been evicted.
	Get(key string)
	Put(key string) (evicted string)
	Remove(key string)
}

EvictPolicy represents a cache eviction policy

type Storage

type Storage struct {
	// contains filtered or unexported fields
}

Storage is a size limited storage.

func NewStorage

func NewStorage(storage blobserver.Storage, size int) Storage

NewStorage wraps the given storage, evicting using LRU.

func NewStorageEvict

func NewStorageEvict(storage blobserver.Storage, evictPolicy EvictPolicy) Storage

NewStorageEvict wraps the given storage, evicting using the given eviction policy.

Only the new elements added to the underlying storage is limited!

func (Storage) Close

func (sto Storage) Close() error

func (Storage) EnumerateBlobs

func (sto Storage) EnumerateBlobs(ctx context.Context, dest chan<- blob.SizedRef, after string, limit int) error

func (Storage) Fetch

func (sto Storage) Fetch(ctx context.Context, br blob.Ref) (io.ReadCloser, uint32, error)

func (Storage) ReceiveBlob

func (sto Storage) ReceiveBlob(ctx context.Context, br blob.Ref, source io.Reader) (blob.SizedRef, error)

func (Storage) RemoveBlobs

func (sto Storage) RemoveBlobs(ctx context.Context, blobs []blob.Ref) error

func (Storage) ResetStorageGeneration

func (sto Storage) ResetStorageGeneration() error

func (Storage) StatBlobs

func (sto Storage) StatBlobs(ctx context.Context, blobs []blob.Ref, fn func(blob.SizedRef) error) error

func (Storage) StorageGeneration

func (sto Storage) StorageGeneration() (initTime time.Time, random string, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL