Documentation
¶
Overview ¶
Package writecache implements write-cache for objects.
Write-cache uses file system tree for storing objects.
Flushing from the writecache to the main storage is done in the background.
Index ¶
- Variables
- type Cache
- type Info
- type ObjectStatus
- type Option
- func WithFlushWorkersCount(c int) Option
- func WithLogger(log *zap.Logger) Option
- func WithMaxCacheSize(sz uint64) Option
- func WithMaxFlushBatchCount(c int) Option
- func WithMaxFlushBatchSize(sz uint64) Option
- func WithMaxFlushBatchThreshold(sz uint64) Option
- func WithMetrics(m metricRegister) Option
- func WithNoSync(noSync bool) Option
- func WithPath(path string) Option
- func WithReportErrorFunc(f func(string, error)) Option
- func WithStorage(s common.Storage) Option
Constants ¶
This section is empty.
Variables ¶
var ( // ErrOutOfSpace is returned when there is no space left to put a new object. ErrOutOfSpace = errors.New("no space left in the write cache") )
var ErrReadOnly = logicerr.New("write-cache is in read-only mode")
ErrReadOnly is returned when Put/Write is performed in a read-only mode.
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache interface {
Get(address oid.Address) (*object.Object, error)
// GetBytes reads object from the Cache by address into memory buffer in a
// canonical NeoFS binary format. Returns [apistatus.ObjectNotFound] if object
// is missing.
GetBytes(oid.Address) ([]byte, error)
Head(oid.Address) (*object.Object, error)
// Delete removes object referenced by the given oid.Address from the
// Cache. Returns any error encountered that prevented the object to be
// removed.
//
// Returns apistatus.ObjectNotFound if object is missing in the Cache.
// Returns ErrReadOnly if the Cache is currently in the read-only mode.
Delete(oid.Address) error
Iterate(func(oid.Address, []byte) error, bool) error
Put(oid.Address, *object.Object, []byte) error
SetMode(mode.Mode) error
SetLogger(*zap.Logger)
SetShardIDMetrics(string)
DumpInfo() Info
Flush(bool) error
Init() error
Open(readOnly bool) error
Close() error
ObjectStatus(address oid.Address) (ObjectStatus, error)
}
Cache represents write-cache for objects.
type Info ¶ added in v0.27.2
type Info struct {
// Full path to the write-cache.
Path string
}
Info groups the information about write-cache.
type ObjectStatus ¶ added in v0.39.0
type ObjectStatus struct {
PathFSTree string
}
ObjectStatus represents the status of the object in the Writecache.
type Option ¶
type Option func(*options)
Option represents write-cache configuration option.
func WithFlushWorkersCount ¶
WithFlushWorkersCount sets number of workers to flushing objects in parallel.
func WithMaxCacheSize ¶ added in v0.25.0
WithMaxCacheSize sets maximum write-cache size in bytes.
func WithMaxFlushBatchCount ¶ added in v0.46.0
WithMaxFlushBatchCount sets maximum batch delay to flush small objects.
func WithMaxFlushBatchSize ¶ added in v0.46.0
WithMaxFlushBatchSize sets maximum batch size to flush.
func WithMaxFlushBatchThreshold ¶ added in v0.46.0
WithMaxFlushBatchThreshold sets maximum size of small object to put in batch.
func WithMetrics ¶ added in v0.46.0
func WithMetrics(m metricRegister) Option
WithMetrics sets a metrics register instance for write-cache.
func WithNoSync ¶ added in v0.36.0
WithNoSync sets an option to allow returning to caller on PUT before write is persisted.
func WithReportErrorFunc ¶ added in v0.36.0
WithReportErrorFunc sets error reporting function.
func WithStorage ¶ added in v0.47.0
WithStorage sets main object storage.