Documentation ¶
Index ¶
- Variables
- func FFIExec(opts ...ffiwrapper.FFIWrapperOpt) func(l *LocalWorker) (storiface.Storage, error)
- func LowestUtilizationWS(sh *Scheduler, queueLen int, acceptableWindows [][]int, windows []SchedWindow) int
- func RandomWS(sh *Scheduler, queueLen int, acceptableWindows [][]int, windows []SchedWindow) int
- func SpreadTasksWS(queued bool) ...
- func SpreadWS(queued bool) ...
- func WithPriority(ctx context.Context, priority int) context.Context
- type ActiveResources
- func (a *ActiveResources) Add(schedID uuid.UUID, tt sealtasks.SealTaskType, wr storiface.WorkerResources, ...) float64
- func (a *ActiveResources) CanHandleRequest(schedID uuid.UUID, tt sealtasks.SealTaskType, needRes storiface.Resources, ...) bool
- func (a *ActiveResources) Free(schedID uuid.UUID, tt sealtasks.SealTaskType, wr storiface.WorkerResources, ...)
- type Assigner
- type AssignerCommon
- type Call
- type CallState
- type EnvFunc
- type ExecutorFunc
- type FaultTracker
- type LocalWorker
- func (l *LocalWorker) AddPiece(ctx context.Context, sector storiface.SectorRef, epcs []abi.UnpaddedPieceSize, ...) (storiface.CallID, error)
- func (l *LocalWorker) Close() error
- func (l *LocalWorker) DataCid(ctx context.Context, pieceSize abi.UnpaddedPieceSize, pieceData storiface.Data) (storiface.CallID, error)
- func (l *LocalWorker) Done() <-chan struct{}
- func (l *LocalWorker) DownloadSectorData(ctx context.Context, sector storiface.SectorRef, finalized bool, ...) (storiface.CallID, error)
- func (l *LocalWorker) Fetch(ctx context.Context, sector storiface.SectorRef, ...) (storiface.CallID, error)
- func (l *LocalWorker) FinalizeReplicaUpdate(ctx context.Context, sector storiface.SectorRef) (storiface.CallID, error)
- func (l *LocalWorker) FinalizeSector(ctx context.Context, sector storiface.SectorRef) (storiface.CallID, error)
- func (l *LocalWorker) GenerateSectorKeyFromData(ctx context.Context, sector storiface.SectorRef, commD cid.Cid) (storiface.CallID, error)
- func (l *LocalWorker) GenerateWindowPoSt(ctx context.Context, ppt abi.RegisteredPoStProof, mid abi.ActorID, ...) (storiface.WindowPoStResult, error)
- func (l *LocalWorker) GenerateWindowPoStAdv(ctx context.Context, ppt abi.RegisteredPoStProof, mid abi.ActorID, ...) (storiface.WindowPoStResult, error)
- func (l *LocalWorker) GenerateWinningPoSt(ctx context.Context, ppt abi.RegisteredPoStProof, mid abi.ActorID, ...) ([]proof.PoStProof, error)
- func (l *LocalWorker) Info(context.Context) (storiface.WorkerInfo, error)
- func (l *LocalWorker) MoveStorage(ctx context.Context, sector storiface.SectorRef, ...) (storiface.CallID, error)
- func (l *LocalWorker) NewSector(ctx context.Context, sector storiface.SectorRef) error
- func (l *LocalWorker) Paths(ctx context.Context) ([]storiface.StoragePath, error)
- func (l *LocalWorker) ProveReplicaUpdate1(ctx context.Context, sector storiface.SectorRef, ...) (storiface.CallID, error)
- func (l *LocalWorker) ProveReplicaUpdate2(ctx context.Context, sector storiface.SectorRef, ...) (storiface.CallID, error)
- func (l *LocalWorker) ReleaseUnsealed(ctx context.Context, sector storiface.SectorRef, ...) (storiface.CallID, error)
- func (l *LocalWorker) Remove(ctx context.Context, sector abi.SectorID) error
- func (l *LocalWorker) ReplicaUpdate(ctx context.Context, sector storiface.SectorRef, pieces []abi.PieceInfo) (storiface.CallID, error)
- func (l *LocalWorker) SealCommit1(ctx context.Context, sector storiface.SectorRef, ticket abi.SealRandomness, ...) (storiface.CallID, error)
- func (l *LocalWorker) SealCommit2(ctx context.Context, sector storiface.SectorRef, ...) (storiface.CallID, error)
- func (l *LocalWorker) SealPreCommit1(ctx context.Context, sector storiface.SectorRef, ticket abi.SealRandomness, ...) (storiface.CallID, error)
- func (l *LocalWorker) SealPreCommit2(ctx context.Context, sector storiface.SectorRef, ...) (storiface.CallID, error)
- func (l *LocalWorker) Session(ctx context.Context) (uuid.UUID, error)
- func (l *LocalWorker) TaskDisable(ctx context.Context, tt sealtasks.TaskType) error
- func (l *LocalWorker) TaskEnable(ctx context.Context, tt sealtasks.TaskType) error
- func (l *LocalWorker) TaskTypes(context.Context) (map[sealtasks.TaskType]struct{}, error)
- func (l *LocalWorker) UnsealPiece(ctx context.Context, sector storiface.SectorRef, ...) (storiface.CallID, error)
- func (l *LocalWorker) WaitQuiet()
- type Manager
- func (m *Manager) Abort(ctx context.Context, call storiface.CallID) error
- func (m *Manager) AddLocalStorage(ctx context.Context, path string) error
- func (m *Manager) AddPiece(ctx context.Context, sector storiface.SectorRef, ...) (abi.PieceInfo, error)
- func (m *Manager) AddWorker(ctx context.Context, w Worker) error
- func (m *Manager) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storiface.SectorRef, ...) (map[abi.SectorID]string, error)
- func (m *Manager) Close(ctx context.Context) error
- func (m *Manager) DataCid(ctx context.Context, pieceSize abi.UnpaddedPieceSize, pieceData storiface.Data) (abi.PieceInfo, error)
- func (m *Manager) DetachLocalStorage(ctx context.Context, path string) error
- func (m *Manager) DownloadSectorData(ctx context.Context, sector storiface.SectorRef, finalized bool, ...) error
- func (m *Manager) FinalizeReplicaUpdate(ctx context.Context, sector storiface.SectorRef) error
- func (m *Manager) FinalizeSector(ctx context.Context, sector storiface.SectorRef) error
- func (m *Manager) FsStat(ctx context.Context, id storiface.ID) (fsutil.FsStat, error)
- func (m *Manager) GenerateSectorKeyFromData(ctx context.Context, sector storiface.SectorRef, commD cid.Cid) error
- func (m *Manager) GenerateWindowPoSt(ctx context.Context, minerID abi.ActorID, ...) (proof []proof.PoStProof, skipped []abi.SectorID, err error)
- func (m *Manager) GenerateWindowPoStWithVanilla(ctx context.Context, proofType abi.RegisteredPoStProof, minerID abi.ActorID, ...) (proof.PoStProof, error)
- func (m *Manager) GenerateWinningPoSt(ctx context.Context, minerID abi.ActorID, ...) ([]proof.PoStProof, error)
- func (m *Manager) GenerateWinningPoStWithVanilla(ctx context.Context, proofType abi.RegisteredPoStProof, minerID abi.ActorID, ...) ([]proof.PoStProof, error)
- func (m *Manager) NewSector(ctx context.Context, sector storiface.SectorRef) error
- func (m *Manager) ProveReplicaUpdate1(ctx context.Context, sector storiface.SectorRef, ...) (out storiface.ReplicaVanillaProofs, err error)
- func (m *Manager) ProveReplicaUpdate2(ctx context.Context, sector storiface.SectorRef, ...) (out storiface.ReplicaUpdateProof, err error)
- func (m *Manager) RedeclareLocalStorage(ctx context.Context, id *storiface.ID, dropMissing bool) error
- func (m *Manager) ReleaseReplicaUpgrade(ctx context.Context, sector storiface.SectorRef) error
- func (m *Manager) ReleaseSectorKey(ctx context.Context, sector storiface.SectorRef) error
- func (m *Manager) ReleaseUnsealed(ctx context.Context, sector storiface.SectorRef, ...) error
- func (m *Manager) Remove(ctx context.Context, sector storiface.SectorRef) error
- func (m *Manager) RemoveSchedRequest(ctx context.Context, schedId uuid.UUID) error
- func (m *Manager) ReplicaUpdate(ctx context.Context, sector storiface.SectorRef, pieces []abi.PieceInfo) (out storiface.ReplicaUpdateOut, err error)
- func (m *Manager) ReturnAddPiece(ctx context.Context, callID storiface.CallID, pi abi.PieceInfo, ...) error
- func (m *Manager) ReturnDataCid(ctx context.Context, callID storiface.CallID, pi abi.PieceInfo, ...) error
- func (m *Manager) ReturnDownloadSector(ctx context.Context, callID storiface.CallID, err *storiface.CallError) error
- func (m *Manager) ReturnFetch(ctx context.Context, callID storiface.CallID, err *storiface.CallError) error
- func (m *Manager) ReturnFinalizeReplicaUpdate(ctx context.Context, callID storiface.CallID, err *storiface.CallError) error
- func (m *Manager) ReturnFinalizeSector(ctx context.Context, callID storiface.CallID, err *storiface.CallError) error
- func (m *Manager) ReturnGenerateSectorKeyFromData(ctx context.Context, callID storiface.CallID, err *storiface.CallError) error
- func (m *Manager) ReturnMoveStorage(ctx context.Context, callID storiface.CallID, err *storiface.CallError) error
- func (m *Manager) ReturnProveReplicaUpdate1(ctx context.Context, callID storiface.CallID, ...) error
- func (m *Manager) ReturnProveReplicaUpdate2(ctx context.Context, callID storiface.CallID, ...) error
- func (m *Manager) ReturnReadPiece(ctx context.Context, callID storiface.CallID, ok bool, ...) error
- func (m *Manager) ReturnReleaseUnsealed(ctx context.Context, callID storiface.CallID, err *storiface.CallError) error
- func (m *Manager) ReturnReplicaUpdate(ctx context.Context, callID storiface.CallID, out storiface.ReplicaUpdateOut, ...) error
- func (m *Manager) ReturnSealCommit1(ctx context.Context, callID storiface.CallID, out storiface.Commit1Out, ...) error
- func (m *Manager) ReturnSealCommit2(ctx context.Context, callID storiface.CallID, proof storiface.Proof, ...) error
- func (m *Manager) ReturnSealPreCommit1(ctx context.Context, callID storiface.CallID, p1o storiface.PreCommit1Out, ...) error
- func (m *Manager) ReturnSealPreCommit2(ctx context.Context, callID storiface.CallID, sealed storiface.SectorCids, ...) error
- func (m *Manager) ReturnUnsealPiece(ctx context.Context, callID storiface.CallID, err *storiface.CallError) error
- func (m *Manager) SchedDiag(ctx context.Context, doSched bool) (interface{}, error)
- func (m *Manager) SealCommit1(ctx context.Context, sector storiface.SectorRef, ticket abi.SealRandomness, ...) (out storiface.Commit1Out, err error)
- func (m *Manager) SealCommit2(ctx context.Context, sector storiface.SectorRef, ...) (out storiface.Proof, err error)
- func (m *Manager) SealPreCommit1(ctx context.Context, sector storiface.SectorRef, ticket abi.SealRandomness, ...) (out storiface.PreCommit1Out, err error)
- func (m *Manager) SealPreCommit2(ctx context.Context, sector storiface.SectorRef, ...) (out storiface.SectorCids, err error)
- func (m *Manager) SectorsUnsealPiece(ctx context.Context, sector storiface.SectorRef, ...) error
- func (m *Manager) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (m *Manager) StorageLocal(ctx context.Context) (map[storiface.ID]string, error)
- func (m *Manager) WorkerJobs() map[uuid.UUID][]storiface.WorkerJob
- func (m *Manager) WorkerStats(ctx context.Context) map[uuid.UUID]storiface.WorkerStats
- type ManagerStateStore
- type ManyBytes
- type PieceProvider
- type PrepareAction
- type RequestQueue
- type ReturnType
- type SchedDiagInfo
- type SchedDiagRequestInfo
- type SchedWindow
- type SchedWindowRequest
- type SchedWorker
- type Scheduler
- func (sh *Scheduler) Close(ctx context.Context) error
- func (sh *Scheduler) Info(ctx context.Context) (interface{}, error)
- func (sh *Scheduler) RemoveRequest(ctx context.Context, schedId uuid.UUID) error
- func (sh *Scheduler) Schedule(ctx context.Context, sector storiface.SectorRef, taskType sealtasks.TaskType, ...) error
- type SectorManager
- type StorageAuth
- type Unsealer
- type WindowSelector
- type WorkID
- type WorkState
- type WorkStatus
- type Worker
- type WorkerAction
- type WorkerConfig
- type WorkerHandle
- type WorkerRequest
- type WorkerSelector
- type WorkerStateStore
Constants ¶
This section is empty.
Variables ¶
var ClosedWorkerID = uuid.UUID{}
var DefaultSchedPriority = 0
var ErrNoWorkers = errors.New("no suitable workers found")
var InitWait = 3 * time.Second
var MaxPieceReaderBurnBytes int64 = 1 << 20 // 1M
For small read skips, it's faster to "burn" some bytes than to setup new sector reader. Assuming 1ms stream seek latency, and 1G/s stream rate, we're willing to discard up to 1 MiB.
var MinRandomReadSize = int64(4 << 10)
var ReadBuf = 128 * (127 * 8) // unpadded(128k)
var SchedPriorityKey schedPrioCtxKey
var (
SchedWindows = 2
)
var SelectorTimeout = 5 * time.Second
Functions ¶
func FFIExec ¶ added in v1.25.2
func FFIExec(opts ...ffiwrapper.FFIWrapperOpt) func(l *LocalWorker) (storiface.Storage, error)
func LowestUtilizationWS ¶
func LowestUtilizationWS(sh *Scheduler, queueLen int, acceptableWindows [][]int, windows []SchedWindow) int
func RandomWS ¶ added in v1.23.0
func RandomWS(sh *Scheduler, queueLen int, acceptableWindows [][]int, windows []SchedWindow) int
func SpreadTasksWS ¶ added in v1.23.0
Types ¶
type ActiveResources ¶
type ActiveResources struct {
// contains filtered or unexported fields
}
func NewActiveResources ¶
func NewActiveResources(tc *taskCounter) *ActiveResources
func (*ActiveResources) Add ¶
func (a *ActiveResources) Add(schedID uuid.UUID, tt sealtasks.SealTaskType, wr storiface.WorkerResources, r storiface.Resources) float64
Add task resources to ActiveResources and return utilization difference
func (*ActiveResources) CanHandleRequest ¶
func (a *ActiveResources) CanHandleRequest(schedID uuid.UUID, tt sealtasks.SealTaskType, needRes storiface.Resources, wid storiface.WorkerID, caller string, info storiface.WorkerInfo) bool
CanHandleRequest evaluates if the worker has enough available resources to handle the request.
func (*ActiveResources) Free ¶
func (a *ActiveResources) Free(schedID uuid.UUID, tt sealtasks.SealTaskType, wr storiface.WorkerResources, r storiface.Resources)
type Assigner ¶
type Assigner interface {
TrySched(sh *Scheduler)
}
func NewLowestUtilizationAssigner ¶
func NewLowestUtilizationAssigner() Assigner
func NewRandomAssigner ¶ added in v1.23.0
func NewRandomAssigner() Assigner
func NewSpreadAssigner ¶
func NewSpreadTasksAssigner ¶ added in v1.23.0
type AssignerCommon ¶
type AssignerCommon struct {
WindowSel WindowSelector
}
AssignerCommon is a task assigner with customizable parts
func (*AssignerCommon) TrySched ¶
func (a *AssignerCommon) TrySched(sh *Scheduler)
type Call ¶
type Call struct { ID storiface.CallID RetType ReturnType State CallState Result *ManyBytes // json bytes }
type ExecutorFunc ¶
type ExecutorFunc func(w *LocalWorker) (storiface.Storage, error)
type FaultTracker ¶
type FaultTracker interface {
CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storiface.SectorRef, rg storiface.RGetter) (map[abi.SectorID]string, error)
}
FaultTracker TODO: Track things more actively
type LocalWorker ¶
type LocalWorker struct {
// contains filtered or unexported fields
}
func NewLocalWorker ¶
func NewLocalWorker(wcfg WorkerConfig, store paths.Store, local *paths.Local, sindex paths.SectorIndex, ret storiface.WorkerReturn, cst *statestore.StateStore) *LocalWorker
func NewLocalWorkerWithExecutor ¶ added in v1.25.2
func NewLocalWorkerWithExecutor(executor ExecutorFunc, wcfg WorkerConfig, envLookup EnvFunc, store paths.Store, local *paths.Local, sindex paths.SectorIndex, ret storiface.WorkerReturn, cst *statestore.StateStore) *LocalWorker
func (*LocalWorker) AddPiece ¶
func (l *LocalWorker) AddPiece(ctx context.Context, sector storiface.SectorRef, epcs []abi.UnpaddedPieceSize, sz abi.UnpaddedPieceSize, r io.Reader) (storiface.CallID, error)
func (*LocalWorker) Close ¶
func (l *LocalWorker) Close() error
func (*LocalWorker) DataCid ¶
func (l *LocalWorker) DataCid(ctx context.Context, pieceSize abi.UnpaddedPieceSize, pieceData storiface.Data) (storiface.CallID, error)
func (*LocalWorker) Done ¶ added in v1.17.1
func (l *LocalWorker) Done() <-chan struct{}
func (*LocalWorker) DownloadSectorData ¶ added in v1.17.2
func (l *LocalWorker) DownloadSectorData(ctx context.Context, sector storiface.SectorRef, finalized bool, src map[storiface.SectorFileType]storiface.SectorLocation) (storiface.CallID, error)
func (*LocalWorker) Fetch ¶
func (l *LocalWorker) Fetch(ctx context.Context, sector storiface.SectorRef, fileType storiface.SectorFileType, ptype storiface.PathType, am storiface.AcquireMode) (storiface.CallID, error)
func (*LocalWorker) FinalizeReplicaUpdate ¶
func (*LocalWorker) FinalizeSector ¶
func (*LocalWorker) GenerateSectorKeyFromData ¶
func (*LocalWorker) GenerateWindowPoSt ¶
func (l *LocalWorker) GenerateWindowPoSt(ctx context.Context, ppt abi.RegisteredPoStProof, mid abi.ActorID, sectors []storiface.PostSectorChallenge, partitionIdx int, randomness abi.PoStRandomness) (storiface.WindowPoStResult, error)
func (*LocalWorker) GenerateWindowPoStAdv ¶ added in v1.25.2
func (l *LocalWorker) GenerateWindowPoStAdv(ctx context.Context, ppt abi.RegisteredPoStProof, mid abi.ActorID, sectors []storiface.PostSectorChallenge, partitionIdx int, randomness abi.PoStRandomness, allowSkip bool) (storiface.WindowPoStResult, error)
func (*LocalWorker) GenerateWinningPoSt ¶
func (l *LocalWorker) GenerateWinningPoSt(ctx context.Context, ppt abi.RegisteredPoStProof, mid abi.ActorID, sectors []storiface.PostSectorChallenge, randomness abi.PoStRandomness) ([]proof.PoStProof, error)
func (*LocalWorker) Info ¶
func (l *LocalWorker) Info(context.Context) (storiface.WorkerInfo, error)
func (*LocalWorker) MoveStorage ¶
func (l *LocalWorker) MoveStorage(ctx context.Context, sector storiface.SectorRef, types storiface.SectorFileType) (storiface.CallID, error)
func (*LocalWorker) Paths ¶
func (l *LocalWorker) Paths(ctx context.Context) ([]storiface.StoragePath, error)
func (*LocalWorker) ProveReplicaUpdate1 ¶
func (*LocalWorker) ProveReplicaUpdate2 ¶
func (l *LocalWorker) ProveReplicaUpdate2(ctx context.Context, sector storiface.SectorRef, sectorKey, newSealed, newUnsealed cid.Cid, vanillaProofs storiface.ReplicaVanillaProofs) (storiface.CallID, error)
func (*LocalWorker) ReleaseUnsealed ¶
func (*LocalWorker) ReplicaUpdate ¶
func (*LocalWorker) SealCommit1 ¶
func (l *LocalWorker) SealCommit1(ctx context.Context, sector storiface.SectorRef, ticket abi.SealRandomness, seed abi.InteractiveSealRandomness, pieces []abi.PieceInfo, cids storiface.SectorCids) (storiface.CallID, error)
func (*LocalWorker) SealCommit2 ¶
func (l *LocalWorker) SealCommit2(ctx context.Context, sector storiface.SectorRef, phase1Out storiface.Commit1Out) (storiface.CallID, error)
func (*LocalWorker) SealPreCommit1 ¶
func (*LocalWorker) SealPreCommit2 ¶
func (l *LocalWorker) SealPreCommit2(ctx context.Context, sector storiface.SectorRef, phase1Out storiface.PreCommit1Out) (storiface.CallID, error)
func (*LocalWorker) TaskDisable ¶
func (*LocalWorker) TaskEnable ¶
func (*LocalWorker) UnsealPiece ¶
func (l *LocalWorker) UnsealPiece(ctx context.Context, sector storiface.SectorRef, index storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize, randomness abi.SealRandomness, cid cid.Cid) (storiface.CallID, error)
func (*LocalWorker) WaitQuiet ¶
func (l *LocalWorker) WaitQuiet()
WaitQuiet blocks as long as there are tasks running
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func New ¶
func New(ctx context.Context, lstor *paths.Local, stor paths.Store, ls paths.LocalStorage, si paths.SectorIndex, sc config.SealerConfig, pc config.ProvingConfig, wss WorkerStateStore, mss ManagerStateStore) (*Manager, error)
func (*Manager) AddLocalStorage ¶
func (*Manager) CheckProvable ¶
func (m *Manager) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storiface.SectorRef, rg storiface.RGetter) (map[abi.SectorID]string, error)
CheckProvable returns unprovable sectors
func (*Manager) DetachLocalStorage ¶ added in v1.17.1
func (*Manager) DownloadSectorData ¶ added in v1.17.2
func (*Manager) FinalizeReplicaUpdate ¶
func (*Manager) FinalizeSector ¶
func (*Manager) GenerateSectorKeyFromData ¶
func (*Manager) GenerateWindowPoSt ¶
func (*Manager) GenerateWindowPoStWithVanilla ¶
func (*Manager) GenerateWinningPoSt ¶
func (*Manager) GenerateWinningPoStWithVanilla ¶
func (*Manager) ProveReplicaUpdate1 ¶
func (*Manager) ProveReplicaUpdate2 ¶
func (m *Manager) ProveReplicaUpdate2(ctx context.Context, sector storiface.SectorRef, sectorKey, newSealed, newUnsealed cid.Cid, vanillaProofs storiface.ReplicaVanillaProofs) (out storiface.ReplicaUpdateProof, err error)
func (*Manager) RedeclareLocalStorage ¶ added in v1.17.1
func (*Manager) ReleaseReplicaUpgrade ¶
func (*Manager) ReleaseSectorKey ¶
func (*Manager) ReleaseUnsealed ¶
func (*Manager) RemoveSchedRequest ¶ added in v1.17.1
func (*Manager) ReplicaUpdate ¶
func (*Manager) ReturnAddPiece ¶
func (*Manager) ReturnDataCid ¶
func (*Manager) ReturnDownloadSector ¶ added in v1.17.2
func (*Manager) ReturnFetch ¶
func (*Manager) ReturnFinalizeReplicaUpdate ¶
func (*Manager) ReturnFinalizeSector ¶
func (*Manager) ReturnGenerateSectorKeyFromData ¶
func (*Manager) ReturnMoveStorage ¶
func (*Manager) ReturnProveReplicaUpdate1 ¶
func (*Manager) ReturnProveReplicaUpdate2 ¶
func (*Manager) ReturnReadPiece ¶
func (*Manager) ReturnReleaseUnsealed ¶
func (*Manager) ReturnReplicaUpdate ¶
func (*Manager) ReturnSealCommit1 ¶
func (*Manager) ReturnSealCommit2 ¶
func (*Manager) ReturnSealPreCommit1 ¶
func (*Manager) ReturnSealPreCommit2 ¶
func (*Manager) ReturnUnsealPiece ¶
func (*Manager) SealCommit1 ¶
func (m *Manager) SealCommit1(ctx context.Context, sector storiface.SectorRef, ticket abi.SealRandomness, seed abi.InteractiveSealRandomness, pieces []abi.PieceInfo, cids storiface.SectorCids) (out storiface.Commit1Out, err error)
func (*Manager) SealCommit2 ¶
func (*Manager) SealPreCommit1 ¶
func (*Manager) SealPreCommit2 ¶
func (m *Manager) SealPreCommit2(ctx context.Context, sector storiface.SectorRef, phase1Out storiface.PreCommit1Out) (out storiface.SectorCids, err error)
func (*Manager) SectorsUnsealPiece ¶
func (m *Manager) SectorsUnsealPiece(ctx context.Context, sector storiface.SectorRef, offset storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize, ticket abi.SealRandomness, unsealed *cid.Cid) error
SectorsUnsealPiece will Unseal the Sealed sector file for the given sector. It will schedule the Unsealing task on a worker that either already has the sealed sector files or has space in one of it's sealing scratch spaces to store them after fetching them from another worker. If the chosen worker already has the Unsealed sector file, we will NOT Unseal the sealed sector file again.
func (*Manager) StorageLocal ¶
func (*Manager) WorkerStats ¶
type ManagerStateStore ¶
type ManagerStateStore *statestore.StateStore
type PieceProvider ¶
type PieceProvider interface { // ReadPiece is used to read an Unsealed piece at the given offset and of the given size from a Sector // pieceOffset + pieceSize specify piece bounds for unsealing (note: with SDR the entire sector will be unsealed by // default in most cases, but this might matter with future PoRep) // startOffset is added to the pieceOffset to get the starting reader offset. // The number of bytes that can be read is pieceSize-startOffset ReadPiece(ctx context.Context, sector storiface.SectorRef, pieceOffset storiface.UnpaddedByteIndex, pieceSize abi.UnpaddedPieceSize, ticket abi.SealRandomness, unsealed cid.Cid) (storiface.Reader, bool, error) IsUnsealed(ctx context.Context, sector storiface.SectorRef, offset storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize) (bool, error) }
func NewPieceProvider ¶
func NewPieceProvider(storage *paths.Remote, index paths.SectorIndex, uns Unsealer) PieceProvider
type PrepareAction ¶ added in v1.23.0
type PrepareAction struct { Action WorkerAction PrepType sealtasks.TaskType }
type RequestQueue ¶
type RequestQueue []*WorkerRequest
func (RequestQueue) Len ¶
func (q RequestQueue) Len() int
func (RequestQueue) Less ¶
func (q RequestQueue) Less(i, j int) bool
func (*RequestQueue) Push ¶
func (q *RequestQueue) Push(x *WorkerRequest)
func (*RequestQueue) Remove ¶
func (q *RequestQueue) Remove(i int) *WorkerRequest
func (RequestQueue) Swap ¶
func (q RequestQueue) Swap(i, j int)
type ReturnType ¶
type ReturnType string
const ( DataCid ReturnType = "DataCid" AddPiece ReturnType = "AddPiece" SealPreCommit1 ReturnType = "SealPreCommit1" SealPreCommit2 ReturnType = "SealPreCommit2" SealCommit1 ReturnType = "SealCommit1" SealCommit2 ReturnType = "SealCommit2" FinalizeSector ReturnType = "FinalizeSector" FinalizeReplicaUpdate ReturnType = "FinalizeReplicaUpdate" ReplicaUpdate ReturnType = "ReplicaUpdate" ProveReplicaUpdate1 ReturnType = "ProveReplicaUpdate1" ProveReplicaUpdate2 ReturnType = "ProveReplicaUpdate2" GenerateSectorKey ReturnType = "GenerateSectorKey" ReleaseUnsealed ReturnType = "ReleaseUnsealed" MoveStorage ReturnType = "MoveStorage" UnsealPiece ReturnType = "UnsealPiece" DownloadSector ReturnType = "DownloadSector" Fetch ReturnType = "Fetch" )
type SchedDiagInfo ¶
type SchedDiagInfo struct { Requests []SchedDiagRequestInfo OpenWindows []string }
type SchedDiagRequestInfo ¶
type SchedWindow ¶
type SchedWindow struct { Allocated ActiveResources Todo []*WorkerRequest }
type SchedWindowRequest ¶
type SchedWindowRequest struct { Worker storiface.WorkerID Done chan *SchedWindow }
type SchedWorker ¶ added in v1.20.0
type Scheduler ¶
type Scheduler struct { Workers map[storiface.WorkerID]*WorkerHandle // owned by the sh.runSched goroutine SchedQueue *RequestQueue OpenWindows []*SchedWindowRequest // contains filtered or unexported fields }
func (*Scheduler) RemoveRequest ¶ added in v1.17.1
func (*Scheduler) Schedule ¶
func (sh *Scheduler) Schedule(ctx context.Context, sector storiface.SectorRef, taskType sealtasks.TaskType, sel WorkerSelector, prepare PrepareAction, work WorkerAction) error
type SectorManager ¶
type SectorManager interface { storiface.Sealer storiface.ProverPoSt storiface.WorkerReturn FaultTracker }
type StorageAuth ¶
type Unsealer ¶
type Unsealer interface { // SectorsUnsealPiece will Unseal a Sealed sector file for the given sector. SectorsUnsealPiece(ctx context.Context, sector storiface.SectorRef, offset storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize, randomness abi.SealRandomness, commd *cid.Cid) error }
type WindowSelector ¶
type WindowSelector func(sh *Scheduler, queueLen int, acceptableWindows [][]int, windows []SchedWindow) int
type WorkState ¶
type WorkStatus ¶
type WorkStatus string
type Worker ¶
type Worker interface { storiface.WorkerCalls TaskTypes(context.Context) (map[sealtasks.TaskType]struct{}, error) // Returns paths accessible to the worker Paths(context.Context) ([]storiface.StoragePath, error) Info(context.Context) (storiface.WorkerInfo, error) Session(context.Context) (uuid.UUID, error) Close() error // TODO: do we need this? }
type WorkerConfig ¶
type WorkerConfig struct { TaskTypes []sealtasks.TaskType NoSwap bool // os.Hostname if not set Name string // IgnoreResourceFiltering enables task distribution to happen on this // worker regardless of its currently available resources. Used in testing // with the local worker. IgnoreResourceFiltering bool MaxParallelChallengeReads int // 0 = no limit ChallengeReadTimeout time.Duration // 0 = no timeout }
type WorkerHandle ¶
type WorkerHandle struct { Info storiface.WorkerInfo Enabled bool // contains filtered or unexported fields }
func (*WorkerHandle) TaskCount ¶ added in v1.23.0
func (wh *WorkerHandle) TaskCount(tt *sealtasks.SealTaskType) int
func (*WorkerHandle) TaskCounts ¶ added in v1.23.0
func (wh *WorkerHandle) TaskCounts() int
func (*WorkerHandle) Utilization ¶
func (wh *WorkerHandle) Utilization() float64
type WorkerRequest ¶
type WorkerRequest struct { Sector storiface.SectorRef TaskType sealtasks.TaskType Priority int // larger values more important Sel WorkerSelector SchedId uuid.UUID IndexHeap int Ctx context.Context // contains filtered or unexported fields }
func (*WorkerRequest) PrepSealTask ¶ added in v1.23.0
func (r *WorkerRequest) PrepSealTask() sealtasks.SealTaskType
func (*WorkerRequest) SealTask ¶
func (r *WorkerRequest) SealTask() sealtasks.SealTaskType
type WorkerSelector ¶
type WorkerSelector interface { // Ok is true if worker is acceptable for performing a task. // If any worker is preferred for a task, other workers won't be considered for that task. Ok(ctx context.Context, task sealtasks.TaskType, spt abi.RegisteredSealProof, a SchedWorker) (ok, preferred bool, err error) Cmp(ctx context.Context, task sealtasks.TaskType, a, b SchedWorker) (bool, error) // true if a is preferred over b }
type WorkerStateStore ¶
type WorkerStateStore *statestore.StateStore
Source Files ¶
- cbor_gen.go
- cgroups_linux.go
- faults.go
- manager.go
- manager_calltracker.go
- manager_post.go
- piece_provider.go
- piece_reader.go
- request_queue.go
- roprov.go
- sched.go
- sched_assigner_common.go
- sched_assigner_darts.go
- sched_assigner_spread.go
- sched_assigner_spread_tasks.go
- sched_assigner_utilization.go
- sched_post.go
- sched_resources.go
- sched_worker.go
- sched_worker_cache.go
- selector_alloc.go
- selector_existing.go
- selector_move.go
- selector_task.go
- stats.go
- worker_calltracker.go
- worker_local.go
- worker_tracked.go