policer

package
v0.49.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Network added in v0.36.0

type Network interface {
	// IsLocalNodeInNetmap checks whether the local node belongs to the current
	// network map. If it is impossible to check this fact, IsLocalNodeInNetmap
	// returns false.
	IsLocalNodeInNetmap() bool
	// GetNodesForObject returns descriptors of storage nodes matching storage
	// policy of the referenced object for now. Nodes are identified by their public
	// keys and can be repeated in different lists. First len(repRules) lists relate
	// to replication, the rest len(ecRules) - to EC.
	//
	// repRules specifies replication rules: the number (N) of primary object
	// holders for each list (L) so:
	//  - size of each L >= N;
	//  - first N nodes of each L are primary data holders while others (if any)
	//    are backup.
	//
	// ecRules specifies erasure coding rules for all objects in the container: each
	// object is split into [iec.Rule.DataPartNum] data and [iec.Rule.ParityPartNum]
	// parity parts. Each i-th part most expected to be located on SN described by
	// i-th list element. In general, list len is a multiple of CBF, and the part is
	// expected on N with index M*i, M in [0,CBF). Then part is expected on SN
	// for i+1-th part and so on.
	//
	// GetNodesForObject callers do not change resulting slices and their elements.
	//
	// Returns [apistatus.ErrContainerNotFound] if requested container is missing in
	// the network.
	GetNodesForObject(oid.Address) (nodeLists [][]netmapsdk.NodeInfo, repRules []uint, ecRules []iec.Rule, err error)
	// IsLocalNodePublicKey checks whether given binary-encoded public key is
	// assigned in the network map to a local storage node running [Policer].
	IsLocalNodePublicKey([]byte) bool
}

Network provides information about the NeoFS network to Policer for work.

type Option

type Option func(*cfg)

Option is an option for Policer constructor.

func WithHeadTimeout

func WithHeadTimeout(v time.Duration) Option

WithHeadTimeout returns option to set Head timeout of Policer.

func WithLocalStorage

func WithLocalStorage(v *engine.StorageEngine) Option

WithLocalStorage returns option to set local object storage of Policer.

func WithLogger

func WithLogger(v *zap.Logger) Option

WithLogger returns option to set Logger of Policer.

func WithMaxCapacity added in v0.27.0

func WithMaxCapacity(capacity uint32) Option

WithMaxCapacity returns option to set max capacity that can be set to the pool.

func WithNetwork added in v0.36.0

func WithNetwork(n Network) Option

WithNetwork provides Network component.

func WithNodeLoader added in v0.27.0

func WithNodeLoader(l nodeLoader) Option

WithNodeLoader returns option to set NeoFS node load source.

func WithObjectBatchSize added in v0.39.0

func WithObjectBatchSize(s uint32) Option

WithObjectBatchSize returns option to set maximum objects read from the Storage at once.

func WithPool added in v0.27.0

func WithPool(p *ants.Pool) Option

WithPool returns option to set pool for policy and replication operations.

func WithRemoteHeader

func WithRemoteHeader(v *headsvc.RemoteHeader) Option

WithRemoteHeader returns option to set object header receiver of Policer.

func WithReplicationCooldown added in v0.39.0

func WithReplicationCooldown(d time.Duration) Option

WithReplicationCooldown returns option to set replication cooldown: the Policer will not submit more than one task per a provided time duration.

func WithReplicator

func WithReplicator(v *replicator.Replicator) Option

WithReplicator returns option to set object replicator of Policer.

type Policer

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

Policer represents the utility that verifies compliance with the object storage policy.

func New

func New(opts ...Option) *Policer

New creates, initializes and returns Policer instance.

func (*Policer) Reload added in v0.39.0

func (p *Policer) Reload(opts ...Option)

Reload allows runtime reconfiguration for the following parameters: - WithHeadTimeout; - [WithObjectCacheTime]; - WithReplicationCooldown; - WithMaxCapacity; - WithObjectBatchSize; - [WithObjectCacheSize].

func (*Policer) Run

func (p *Policer) Run(ctx context.Context)

Jump to

Keyboard shortcuts

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