Documentation ¶
Index ¶
- Variables
- func IterateAddresses(ctx context.Context, blz *Blobovnicza, f func(oid.Address) error) error
- type Blobovnicza
- func (b *Blobovnicza) Close(ctx context.Context) error
- func (b *Blobovnicza) Delete(ctx context.Context, prm DeletePrm) (DeleteRes, error)
- func (b *Blobovnicza) DropMoveInfo(ctx context.Context, address oid.Address) error
- func (b *Blobovnicza) Exists(ctx context.Context, addr oid.Address) (bool, error)
- func (b *Blobovnicza) FillPercent() int
- func (b *Blobovnicza) Get(ctx context.Context, prm GetPrm) (GetRes, error)
- func (b *Blobovnicza) Init(ctx context.Context) error
- func (b *Blobovnicza) IsFull() bool
- func (b *Blobovnicza) Iterate(ctx context.Context, prm IteratePrm) (IterateRes, error)
- func (b *Blobovnicza) ListMoveInfo(ctx context.Context) ([]MoveInfo, error)
- func (b *Blobovnicza) ObjectsCount() uint64
- func (b *Blobovnicza) Open(ctx context.Context) error
- func (b *Blobovnicza) Put(ctx context.Context, prm PutPrm) (PutRes, error)
- func (b *Blobovnicza) PutMoveInfo(ctx context.Context, prm MoveInfo) error
- type DeletePrm
- type DeleteRes
- type GetPrm
- type GetRes
- type IteratePrm
- type IterateRes
- type IterationElement
- type IterationHandler
- type Metrics
- type MoveInfo
- type NoopMetrics
- func (m *NoopMetrics) AddOpenBlobovniczaItems(uint64)
- func (m *NoopMetrics) AddOpenBlobovniczaSize(uint64)
- func (m *NoopMetrics) DecOpenBlobovniczaCount()
- func (m *NoopMetrics) IncOpenBlobovniczaCount()
- func (m *NoopMetrics) SubOpenBlobovniczaItems(uint64)
- func (m *NoopMetrics) SubOpenBlobovniczaSize(uint64)
- type Option
- type PutPrm
- type PutRes
Constants ¶
This section is empty.
Variables ¶
var ErrNoSpace = logicerr.New("no space left on device with blobovnicza")
ErrNoSpace returned if blobovnicza failed to perform an operation because of syscall.ENOSPC.
Functions ¶
func IterateAddresses ¶
IterateAddresses is a helper function which iterates over Blobovnicza and passes addresses of the objects to f.
Types ¶
type Blobovnicza ¶
type Blobovnicza struct {
// contains filtered or unexported fields
}
Blobovnicza represents the implementation of FrostFS Blobovnicza.
func New ¶
func New(opts ...Option) *Blobovnicza
New creates and returns a new Blobovnicza instance.
func (*Blobovnicza) Close ¶
func (b *Blobovnicza) Close(ctx context.Context) error
Close releases all internal database resources.
If blobovnicza is already closed, does nothing.
func (*Blobovnicza) Delete ¶
Delete removes an object from Blobovnicza by address.
Returns any error encountered that did not allow to completely delete the object.
Returns an error of type apistatus.ObjectNotFound if the object to be deleted is not in blobovnicza.
Should not be called in read-only configuration.
func (*Blobovnicza) DropMoveInfo ¶ added in v0.38.0
func (*Blobovnicza) FillPercent ¶ added in v0.43.0
func (b *Blobovnicza) FillPercent() int
func (*Blobovnicza) Get ¶
Get reads an object from Blobovnicza by address.
Returns any error encountered that did not allow to completely read the object.
Returns an error of type apistatus.ObjectNotFound if the requested object is not presented in Blobovnicza.
func (*Blobovnicza) Init ¶
func (b *Blobovnicza) Init(ctx context.Context) error
Init initializes internal database structure.
If Blobovnicza is already initialized, no action is taken. Blobovnicza must be open, otherwise an error will return.
func (*Blobovnicza) IsFull ¶ added in v0.37.0
func (b *Blobovnicza) IsFull() bool
func (*Blobovnicza) Iterate ¶
func (b *Blobovnicza) Iterate(ctx context.Context, prm IteratePrm) (IterateRes, error)
Iterate goes through all stored objects, and passes IterationElement to parameterized handler until error return.
Decodes object addresses if DecodeAddresses was called. Don't read object data if WithoutData was called.
Returns handler's errors directly. Returns nil after iterating finish.
Handler should not retain object data. Handler must not be nil.
func (*Blobovnicza) ListMoveInfo ¶ added in v0.38.0
func (b *Blobovnicza) ListMoveInfo(ctx context.Context) ([]MoveInfo, error)
func (*Blobovnicza) ObjectsCount ¶ added in v0.39.0
func (b *Blobovnicza) ObjectsCount() uint64
func (*Blobovnicza) Open ¶
func (b *Blobovnicza) Open(ctx context.Context) error
Open opens an internal database at the configured path with the configured permissions.
If the database file does not exist, it will be created automatically. If blobovnicza is already open, does nothing.
func (*Blobovnicza) Put ¶
Put saves an object in Blobovnicza.
If binary representation of the object is not set, it is calculated via Marshal method.
The size of the object MUST BE less that or equal to the size specified in WithObjectSizeLimit option.
Returns any error encountered that did not allow to completely save the object.
Returns ErrFull if blobovnicza is filled.
Should not be called in read-only configuration.
func (*Blobovnicza) PutMoveInfo ¶ added in v0.38.0
func (b *Blobovnicza) PutMoveInfo(ctx context.Context, prm MoveInfo) error
type DeletePrm ¶
type DeletePrm struct {
// contains filtered or unexported fields
}
DeletePrm groups the parameters of Delete operation.
func (*DeletePrm) SetAddress ¶
SetAddress sets the address of the requested object.
type GetPrm ¶
type GetPrm struct {
// contains filtered or unexported fields
}
GetPrm groups the parameters of Get operation.
func (*GetPrm) SetAddress ¶
SetAddress sets the address of the requested object.
type GetRes ¶
type GetRes struct {
// contains filtered or unexported fields
}
GetRes groups the resulting values of Get operation.
type IteratePrm ¶
type IteratePrm struct {
// contains filtered or unexported fields
}
IteratePrm groups the parameters of Iterate operation.
func (*IteratePrm) DecodeAddresses ¶
func (x *IteratePrm) DecodeAddresses()
DecodeAddresses sets flag to unmarshal object addresses.
func (*IteratePrm) IgnoreErrors ¶
func (x *IteratePrm) IgnoreErrors()
IgnoreErrors makes all errors to be ignored.
func (*IteratePrm) SetHandler ¶
func (x *IteratePrm) SetHandler(h IterationHandler)
SetHandler sets handler to be called iteratively.
func (*IteratePrm) WithoutData ¶
func (x *IteratePrm) WithoutData()
WithoutData sets flag to not read data of the objects.
type IterateRes ¶
type IterateRes struct{}
IterateRes groups the resulting values of Iterate operation.
type IterationElement ¶
type IterationElement struct {
// contains filtered or unexported fields
}
IterationElement represents a unit of elements through which Iterate operation passes.
func (IterationElement) Address ¶
func (x IterationElement) Address() oid.Address
Address returns address of the stored object.
func (IterationElement) ObjectData ¶
func (x IterationElement) ObjectData() []byte
ObjectData returns stored object in a binary representation.
type IterationHandler ¶
type IterationHandler func(IterationElement) error
IterationHandler is a generic processor of IterationElement.
type NoopMetrics ¶ added in v0.37.0
type NoopMetrics struct{}
func (*NoopMetrics) AddOpenBlobovniczaItems ¶ added in v0.37.0
func (m *NoopMetrics) AddOpenBlobovniczaItems(uint64)
func (*NoopMetrics) AddOpenBlobovniczaSize ¶ added in v0.37.0
func (m *NoopMetrics) AddOpenBlobovniczaSize(uint64)
func (*NoopMetrics) DecOpenBlobovniczaCount ¶ added in v0.37.0
func (m *NoopMetrics) DecOpenBlobovniczaCount()
func (*NoopMetrics) IncOpenBlobovniczaCount ¶ added in v0.37.0
func (m *NoopMetrics) IncOpenBlobovniczaCount()
func (*NoopMetrics) SubOpenBlobovniczaItems ¶ added in v0.37.0
func (m *NoopMetrics) SubOpenBlobovniczaItems(uint64)
func (*NoopMetrics) SubOpenBlobovniczaSize ¶ added in v0.37.0
func (m *NoopMetrics) SubOpenBlobovniczaSize(uint64)
type Option ¶
type Option func(*cfg)
Option is an option of Blobovnicza's constructor.
func WithFullSizeLimit ¶
WithFullSizeLimit returns an option to set the maximum sum size of all stored objects.
func WithLogger ¶
WithLogger returns an option to specify Blobovnicza's logger.
func WithMetrics ¶ added in v0.37.0
WithMetrics returns an option to set metrics storage.
func WithObjectSizeLimit ¶
WithObjectSizeLimit returns an option to specify the maximum size of the objects stored in Blobovnicza.
func WithPermissions ¶
WithPermissions returns an option to specify permission bits of Blobovnicza's system path.
func WithReadOnly ¶
WithReadOnly returns an option to open Blobovnicza in read-only mode.
type PutPrm ¶
type PutPrm struct {
// contains filtered or unexported fields
}
PutPrm groups the parameters of Put operation.
func (*PutPrm) SetAddress ¶
SetAddress sets the address of the saving object.
func (*PutPrm) SetMarshaledObject ¶
SetMarshaledObject sets binary representation of the object.