migration

package
v0.14.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2024 License: Apache-2.0, MIT Imports: 14 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ActorHeadKey

func ActorHeadKey(addr address.Address, head cid.Cid) string

func ExpirationsAmtKey

func ExpirationsAmtKey(expirationsAmt cid.Cid) string

func MarketPrevDealProposalsInKey added in v0.13.1

func MarketPrevDealProposalsInKey(m address.Address) string

func MarketPrevDealStatesInKey added in v0.13.1

func MarketPrevDealStatesInKey(m address.Address) string

func MarketPrevDealStatesOutKey added in v0.13.1

func MarketPrevDealStatesOutKey(m address.Address) string

func MarketPrevProviderSectorsOutKey added in v0.13.1

func MarketPrevProviderSectorsOutKey(m address.Address) string

func MinerPrevSectorsInKey

func MinerPrevSectorsInKey(m address.Address) string

func MinerPrevSectorsOutKey

func MinerPrevSectorsOutKey(m address.Address) string

func PartitionsAmtKey

func PartitionsAmtKey(partitionsAmt cid.Cid) string

func RunMigration added in v0.11.0

func RunMigration(ctx context.Context, cfg Config, cache MigrationCache, store cbor.IpldStore, log Logger, actorsIn *builtin.ActorTree, migrations map[cid.Cid]ActorMigration) (*builtin.ActorTree, error)

func SectorsAmtKey

func SectorsAmtKey(sectorsAmt cid.Cid) string

Types

type ActorMigration

type ActorMigration interface {
	// MigrateState Loads an actor's state from an input store and writes new state to an output store.
	// Returns the new state head CID.
	MigrateState(ctx context.Context, store cbor.IpldStore, input ActorMigrationInput) (result *ActorMigrationResult, err error)
	MigratedCodeCID() cid.Cid

	// Deferred returns true if this migration should be run after all non-deferred migrations have completed.
	Deferred() bool
}

func CachedMigration

func CachedMigration(cache MigrationCache, m ActorMigration) ActorMigration

type ActorMigrationInput

type ActorMigrationInput struct {
	Address address.Address // actor's address
	Head    cid.Cid
	Cache   MigrationCache // cache of existing cid -> cid migrations for this actor
}

type ActorMigrationResult

type ActorMigrationResult struct {
	NewCodeCID cid.Cid
	NewHead    cid.Cid
}

type CachedMigrator

type CachedMigrator struct {
	ActorMigration
	// contains filtered or unexported fields
}

Migrator that uses cached transformation if it exists

func (CachedMigrator) Deferred added in v0.13.1

func (c CachedMigrator) Deferred() bool

func (CachedMigrator) MigrateState

type CodeMigrator

type CodeMigrator struct {
	OutCodeCID cid.Cid
}

Migrator which preserves the head CID and provides a fixed result code CID.

func (CodeMigrator) Deferred added in v0.13.1

func (n CodeMigrator) Deferred() bool

func (CodeMigrator) MigrateState

func (CodeMigrator) MigratedCodeCID

func (n CodeMigrator) MigratedCodeCID() cid.Cid

type Config

type Config struct {
	// Number of migration worker goroutines to run.
	// More workers enables higher CPU utilization doing migration computations (including state encoding)
	MaxWorkers uint
	// Capacity of the queue of jobs available to workers (zero for unbuffered).
	// A queue length of hundreds to thousands improves throughput at the cost of memory.
	JobQueueSize uint
	// Capacity of the queue receiving migration results from workers, for persisting (zero for unbuffered).
	// A queue length of tens to hundreds improves throughput at the cost of memory.
	ResultQueueSize uint
	// Time between progress logs to emit.
	// Zero (the default) results in no progress logs.
	ProgressLogPeriod time.Duration
	// The epoch at which the upgrade will run.
	UpgradeEpoch abi.ChainEpoch
}

Config parameterizes a state tree migration

type Logger

type Logger interface {
	// This is the same logging interface provided by the Runtime
	Log(level rt.LogLevel, msg string, args ...interface{})
}

type MemMigrationCache

type MemMigrationCache struct {
	MigrationMap sync.Map
}

func NewMemMigrationCache

func NewMemMigrationCache() *MemMigrationCache

func (*MemMigrationCache) Clone

func (*MemMigrationCache) Load

func (m *MemMigrationCache) Load(key string, loadFunc func() (cid.Cid, error)) (cid.Cid, error)

func (*MemMigrationCache) Read

func (m *MemMigrationCache) Read(key string) (bool, cid.Cid, error)

func (*MemMigrationCache) Update

func (m *MemMigrationCache) Update(other *MemMigrationCache)

func (*MemMigrationCache) Write

func (m *MemMigrationCache) Write(key string, c cid.Cid) error

type MigrationCache

type MigrationCache interface {
	Write(key string, newCid cid.Cid) error
	Read(key string) (bool, cid.Cid, error)
	Load(key string, loadFunc func() (cid.Cid, error)) (cid.Cid, error)
}

MigrationCache stores and loads cached data. Its implementation must be thread-safe

Jump to

Keyboard shortcuts

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