placement

package
v0.38.9 Latest Latest
Warning

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

Go to latest
Published: Jul 18, 2024 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildObjectPlacement

func BuildObjectPlacement(nm *netmapSDK.NetMap, cnrNodes [][]netmapSDK.NodeInfo, id *oid.ID) ([][]netmapSDK.NodeInfo, error)

func FlattenNodes

func FlattenNodes(ns [][]netmapSDK.NodeInfo) []netmapSDK.NodeInfo

FlattenNodes appends each row to the flat list.

Types

type Builder

type Builder interface {
	// BuildPlacement returns the list of placement vectors
	// for object according to the placement policy.
	//
	// Must return all container nodes if object identifier
	// is nil.
	BuildPlacement(cid.ID, *oid.ID, netmap.PlacementPolicy) ([][]netmap.NodeInfo, error)
}

Builder is an interface of the object placement vector builder.

func NewNetworkMapBuilder

func NewNetworkMapBuilder(nm *netmapSDK.NetMap) Builder

func NewNetworkMapSourceBuilder

func NewNetworkMapSourceBuilder(nmSrc netmap.Source) Builder

type Node

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

Node is a descriptor of storage node with information required for intra-container communication.

func NewNode added in v0.38.0

func NewNode(addresses network.AddressGroup, externalAddresses network.AddressGroup, key []byte) Node

NewNode creates new Node.

func (Node) Addresses

func (x Node) Addresses() network.AddressGroup

Addresses returns group of network addresses.

func (Node) ExternalAddresses

func (x Node) ExternalAddresses() network.AddressGroup

ExternalAddresses returns group of network addresses.

func (Node) PublicKey

func (x Node) PublicKey() []byte

PublicKey returns public key in a binary format. Should not be mutated.

type Option

type Option func(*cfg)

Option represents placement traverser option.

func ForContainer

func ForContainer(cnr container.Container) Option

ForContainer is a traversal container setting option.

func ForObject

func ForObject(id oid.ID) Option

ForObject is a processing object setting option.

func SuccessAfter

func SuccessAfter(v uint32) Option

SuccessAfter is a flat success number setting option.

Option has no effect if the number is not positive.

func UseBuilder

func UseBuilder(b Builder) Option

UseBuilder is a placement builder setting option.

Overlaps UseNetworkMap option.

func WithCopyNumbers added in v0.37.0

func WithCopyNumbers(v []uint32) Option

func WithoutSuccessTracking

func WithoutSuccessTracking() Option

WithoutSuccessTracking disables success tracking in traversal.

type Traverser

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

Traverser represents utility for controlling traversal of object placement vectors.

func NewTraverser

func NewTraverser(opts ...Option) (*Traverser, error)

NewTraverser creates, initializes with options and returns Traverser instance.

func (*Traverser) Next

func (t *Traverser) Next() []Node

Next returns next unprocessed address of the object placement.

Returns nil if no nodes left or traversal operation succeeded.

func (*Traverser) SubmitSuccess

func (t *Traverser) SubmitSuccess()

SubmitSuccess writes single succeeded node operation.

func (*Traverser) Success

func (t *Traverser) Success() bool

Success returns true if traversal operation succeeded.

Jump to

Keyboard shortcuts

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