common

package
v0.44.0-rc.2 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2024 License: GPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoSpace = logicerr.New("no free space")

ErrNoSpace MUST be returned when there is no space to put an object on the device.

View Source
var ErrReadOnly = logicerr.New("opened as read-only")

ErrReadOnly MUST be returned for modifying operations when the storage was opened in readonly mode.

Functions

This section is empty.

Types

type ConcurrentWorkersLimiter added in v0.38.0

type ConcurrentWorkersLimiter interface {
	AcquireWorkSlot(ctx context.Context) error
	ReleaseWorkSlot()
}

type DeletePrm

type DeletePrm struct {
	Address   oid.Address
	StorageID []byte
	Size      uint64
}

DeletePrm groups the parameters of Delete operation.

type DeleteRes

type DeleteRes struct{}

DeleteRes groups the resulting values of Delete operation.

type ExistsPrm

type ExistsPrm struct {
	Address   oid.Address
	StorageID []byte
}

ExistsPrm groups the parameters of Exists operation.

type ExistsRes

type ExistsRes struct {
	Exists bool
}

ExistsRes groups the resulting values of Exists operation.

type GetPrm

type GetPrm struct {
	Address   oid.Address
	StorageID []byte
	Raw       bool
}

type GetRangePrm

type GetRangePrm struct {
	Address   oid.Address
	Range     objectSDK.Range
	StorageID []byte
}

type GetRangeRes

type GetRangeRes struct {
	Data []byte
}

type GetRes

type GetRes struct {
	Object  *objectSDK.Object
	RawData []byte
}

type IteratePrm

type IteratePrm struct {
	Handler      IterationHandler
	IgnoreErrors bool
}

IteratePrm groups the parameters of Iterate operation.

type IterateRes

type IterateRes struct{}

IterateRes groups the resulting values of Iterate operation.

type IterationElement

type IterationElement struct {
	ObjectData []byte
	Address    oid.Address
	StorageID  []byte
}

IterationElement represents a unit of elements through which Iterate operation passes.

type IterationHandler

type IterationHandler func(IterationElement) error

IterationHandler is a generic processor of IterationElement.

type MetaStorage added in v0.38.0

type MetaStorage interface {
	UpdateStorageID(ctx context.Context, addr oid.Address, storageID []byte) error
}

type PutPrm

type PutPrm struct {
	Address      oid.Address
	Object       *objectSDK.Object
	RawData      []byte
	DontCompress bool
}

PutPrm groups the parameters of Put operation.

type PutRes

type PutRes struct {
	StorageID []byte
}

PutRes groups the resulting values of Put operation.

type RebuildPrm added in v0.38.0

type RebuildPrm struct {
	MetaStorage   MetaStorage
	WorkerLimiter ConcurrentWorkersLimiter
	FillPercent   int
}

type RebuildRes added in v0.38.0

type RebuildRes struct {
	ObjectsMoved uint64
	FilesRemoved uint64
}

type Storage

type Storage interface {
	Open(mode mode.ComponentMode) error
	Init() error
	Close() error

	Type() string
	Path() string
	ObjectsCount(ctx context.Context) (uint64, error)

	SetCompressor(cc *compression.Config)
	Compressor() *compression.Config

	// SetReportErrorFunc allows to provide a function to be called on disk errors.
	// This function MUST be called before Open.
	SetReportErrorFunc(f func(string, error))
	SetParentID(parentID string)

	Get(context.Context, GetPrm) (GetRes, error)
	GetRange(context.Context, GetRangePrm) (GetRangeRes, error)
	Exists(context.Context, ExistsPrm) (ExistsRes, error)
	Put(context.Context, PutPrm) (PutRes, error)
	Delete(context.Context, DeletePrm) (DeleteRes, error)
	Iterate(context.Context, IteratePrm) (IterateRes, error)
	Rebuild(context.Context, RebuildPrm) (RebuildRes, error)
}

Storage represents key-value object storage. It is used as a building block for a blobstor of a shard.

Jump to

Keyboard shortcuts

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