writecachebbolt

package
v0.37.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2023 License: GPL-3.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrBigObject is returned when object is too big to be placed in cache.
	ErrBigObject = errors.New("too big object")
	// ErrOutOfSpace is returned when there is no space left to put a new object.
	ErrOutOfSpace = errors.New("no space left in the write cache")
)
View Source
var ErrNoDefaultBucket = errors.New("no default bucket")

ErrNoDefaultBucket is returned by IterateDB when default bucket for objects is missing.

Functions

func Get

func Get(db *bbolt.DB, key []byte) ([]byte, error)

Get fetches object from the underlying database. Key should be a stringified address.

Returns an error of type apistatus.ObjectNotFound if the requested object is missing in db.

func IterateDB

func IterateDB(db *bbolt.DB, f func(oid.Address) error) error

IterateDB iterates over all objects stored in bbolt.DB instance and passes them to f until error return. It is assumed that db is an underlying database of some WriteCache instance.

Returns ErrNoDefaultBucket if there is no default bucket in db.

DB must not be nil and should be opened.

func New

func New(opts ...Option) writecache.Cache

New creates new writecache instance.

func OpenDB

func OpenDB(p string, ro bool, openFile func(string, int, fs.FileMode) (*os.File, error)) (*bbolt.DB, error)

OpenDB opens BoltDB instance for write-cache. Opens in read-only mode if ro is true.

Types

type Option

type Option func(*options)

Option represents write-cache configuration option.

func WithBlobstor

func WithBlobstor(bs writecache.MainStorage) Option

WithBlobstor sets main object storage.

func WithFlushWorkersCount

func WithFlushWorkersCount(c int) Option

func WithLogger

func WithLogger(log *logger.Logger) Option

WithLogger sets logger.

func WithMaxBatchDelay

func WithMaxBatchDelay(d time.Duration) Option

WithMaxBatchDelay sets max batch delay for the small object database.

func WithMaxBatchSize

func WithMaxBatchSize(sz int) Option

WithMaxBatchSize sets max batch size for the small object database.

func WithMaxCacheSize

func WithMaxCacheSize(sz uint64) Option

WithMaxCacheSize sets maximum write-cache size in bytes.

func WithMaxObjectSize

func WithMaxObjectSize(sz uint64) Option

WithMaxObjectSize sets maximum object size to be stored in write-cache.

func WithMetabase

func WithMetabase(db writecache.Metabase) Option

WithMetabase sets metabase.

func WithMetrics

func WithMetrics(metrics writecache.Metrics) Option

WithMetrics sets metrics implementation.

func WithNoSync

func WithNoSync(noSync bool) Option

WithNoSync sets an option to allow returning to caller on PUT before write is persisted. Note, that we use this flag for FSTree only and DO NOT use it for a bolt DB because we cannot yet properly handle the corrupted database during the startup. This SHOULD NOT be relied upon and may be changed in future.

func WithOpenFile

func WithOpenFile(f func(string, int, fs.FileMode) (*os.File, error)) Option

WithOpenFile sets the OpenFile function to use internally by bolt. Useful for hermetic testing.

func WithPath

func WithPath(path string) Option

WithPath sets path to writecache db.

func WithReportErrorFunc

func WithReportErrorFunc(f func(string, error)) Option

WithReportErrorFunc sets error reporting function.

func WithSmallObjectSize

func WithSmallObjectSize(sz uint64) Option

WithSmallObjectSize sets maximum object size to be stored in write-cache.

Jump to

Keyboard shortcuts

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