stateless

package
v0.0.0-...-a52a6fd Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2020 License: Apache-2.0, MIT, Apache-2.0, + 1 more Imports: 15 Imported by: 0

Documentation

Overview

Package stateless implements a PinTracker component for IPFS Cluster, which aims to reduce the memory footprint when handling really large cluster states.

Index

Constants

View Source
const (
	DefaultMaxPinQueueSize = 1000000
	DefaultConcurrentPins  = 10
)

Default values for this Config.

Variables

View Source
var (
	// ErrFullQueue is the error used when pin or unpin operation channel is full.
	ErrFullQueue = errors.New("pin/unpin operation queue is full. Try increasing max_pin_queue_size")
)

Functions

This section is empty.

Types

type Config

type Config struct {
	config.Saver

	// If higher, they will automatically marked with an error.
	MaxPinQueueSize int
	// ConcurrentPins specifies how many pin requests can be sent to the ipfs
	// daemon in parallel. If the pinning method is "refs", it might increase
	// speed. Unpin requests are always processed one by one.
	ConcurrentPins int
}

Config allows to initialize a Monitor and customize some parameters.

func (*Config) ApplyEnvVars

func (cfg *Config) ApplyEnvVars() error

ApplyEnvVars fills in any Config fields found as environment variables.

func (*Config) ConfigKey

func (cfg *Config) ConfigKey() string

ConfigKey provides a human-friendly identifier for this type of Config.

func (*Config) Default

func (cfg *Config) Default() error

Default sets the fields of this Config to sensible values.

func (*Config) LoadJSON

func (cfg *Config) LoadJSON(raw []byte) error

LoadJSON sets the fields of this Config to the values defined by the JSON representation of it, as generated by ToJSON.

func (*Config) ToDisplayJSON

func (cfg *Config) ToDisplayJSON() ([]byte, error)

ToDisplayJSON returns JSON config as a string.

func (*Config) ToJSON

func (cfg *Config) ToJSON() ([]byte, error)

ToJSON generates a human-friendly JSON representation of this Config.

func (*Config) Validate

func (cfg *Config) Validate() error

Validate checks that the fields of this Config have working values, at least in appearance.

type Tracker

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

Tracker uses the optracker.OperationTracker to manage transitioning shared ipfs-cluster state (Pins) to the local IPFS node.

func New

func New(cfg *Config, pid peer.ID, peerName string, getState func(ctx context.Context) (state.ReadOnly, error)) *Tracker

New creates a new StatelessPinTracker.

func (*Tracker) OpContext

func (spt *Tracker) OpContext(ctx context.Context, c cid.Cid) context.Context

OpContext exports the internal optracker's OpContext method. For testing purposes only.

func (*Tracker) Recover

func (spt *Tracker) Recover(ctx context.Context, c cid.Cid) (*api.PinInfo, error)

Recover will trigger pinning or unpinning for items in PinError or UnpinError states.

func (*Tracker) RecoverAll

func (spt *Tracker) RecoverAll(ctx context.Context) ([]*api.PinInfo, error)

RecoverAll attempts to recover all items tracked by this peer.

func (*Tracker) SetClient

func (spt *Tracker) SetClient(c *rpc.Client)

SetClient makes the StatelessPinTracker ready to perform RPC requests to other components.

func (*Tracker) Shutdown

func (spt *Tracker) Shutdown(ctx context.Context) error

Shutdown finishes the services provided by the StatelessPinTracker and cancels any active context.

func (*Tracker) Status

func (spt *Tracker) Status(ctx context.Context, c cid.Cid) *api.PinInfo

Status returns information for a Cid pinned to the local IPFS node.

func (*Tracker) StatusAll

func (spt *Tracker) StatusAll(ctx context.Context) []*api.PinInfo

StatusAll returns information for all Cids pinned to the local IPFS node.

func (*Tracker) Sync

func (spt *Tracker) Sync(ctx context.Context, c cid.Cid) (*api.PinInfo, error)

Sync returns the updated local status for the given Cid.

func (*Tracker) SyncAll

func (spt *Tracker) SyncAll(ctx context.Context) ([]*api.PinInfo, error)

SyncAll verifies that the statuses of all tracked Cids (from the shared state) match the one reported by the IPFS daemon. If not, they will be transitioned to PinError or UnpinError.

SyncAll returns the list of local status for all tracked Cids which were updated or have errors. Cids in error states can be recovered with Recover(). An error is returned if we are unable to contact the IPFS daemon.

func (*Tracker) Track

func (spt *Tracker) Track(ctx context.Context, c *api.Pin) error

Track tells the StatelessPinTracker to start managing a Cid, possibly triggering Pin operations on the IPFS daemon.

func (*Tracker) Untrack

func (spt *Tracker) Untrack(ctx context.Context, c cid.Cid) error

Untrack tells the StatelessPinTracker to stop managing a Cid. If the Cid is pinned locally, it will be unpinned.

Jump to

Keyboard shortcuts

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