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
- Variables
- type Config
- type Tracker
- func (spt *Tracker) OpContext(ctx context.Context, c cid.Cid) context.Context
- func (spt *Tracker) Recover(ctx context.Context, c cid.Cid) (*api.PinInfo, error)
- func (spt *Tracker) RecoverAll(ctx context.Context) ([]*api.PinInfo, error)
- func (spt *Tracker) SetClient(c *rpc.Client)
- func (spt *Tracker) Shutdown(ctx context.Context) error
- func (spt *Tracker) Status(ctx context.Context, c cid.Cid) *api.PinInfo
- func (spt *Tracker) StatusAll(ctx context.Context) []*api.PinInfo
- func (spt *Tracker) Sync(ctx context.Context, c cid.Cid) (*api.PinInfo, error)
- func (spt *Tracker) SyncAll(ctx context.Context) ([]*api.PinInfo, error)
- func (spt *Tracker) Track(ctx context.Context, c *api.Pin) error
- func (spt *Tracker) Untrack(ctx context.Context, c cid.Cid) error
Constants ¶
const ( DefaultMaxPinQueueSize = 1000000 DefaultConcurrentPins = 10 )
Default values for this Config.
Variables ¶
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 ¶
ApplyEnvVars fills in any Config fields found as environment variables.
func (*Config) LoadJSON ¶
LoadJSON sets the fields of this Config to the values defined by the JSON representation of it, as generated by ToJSON.
func (*Config) ToDisplayJSON ¶
ToDisplayJSON returns JSON config as a string.
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 ¶
OpContext exports the internal optracker's OpContext method. For testing purposes only.
func (*Tracker) Recover ¶
Recover will trigger pinning or unpinning for items in PinError or UnpinError states.
func (*Tracker) RecoverAll ¶
RecoverAll attempts to recover all items tracked by this peer.
func (*Tracker) SetClient ¶
SetClient makes the StatelessPinTracker ready to perform RPC requests to other components.
func (*Tracker) Shutdown ¶
Shutdown finishes the services provided by the StatelessPinTracker and cancels any active context.
func (*Tracker) StatusAll ¶
StatusAll returns information for all Cids pinned to the local IPFS node.
func (*Tracker) SyncAll ¶
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.