Documentation ¶
Index ¶
- Variables
- type Scheduler
- func (s *Scheduler) Cancel(jid ffs.JobID) error
- func (s *Scheduler) Close() error
- func (s *Scheduler) GetCidFromHot(ctx context.Context, c cid.Cid) (io.Reader, error)
- func (s *Scheduler) GetCidInfo(c cid.Cid) (ffs.CidInfo, error)
- func (s *Scheduler) GetJob(jid ffs.JobID) (ffs.StorageJob, error)
- func (s *Scheduler) GetLogsByCid(ctx context.Context, c cid.Cid) ([]ffs.LogEntry, error)
- func (s *Scheduler) GetRetrievalInfo(rid ffs.RetrievalID) (ffs.RetrievalInfo, error)
- func (s *Scheduler) ImportCidInfo(ci ffs.CidInfo) error
- func (s *Scheduler) PushConfig(iid ffs.APIID, c cid.Cid, cfg ffs.StorageConfig) (ffs.JobID, error)
- func (s *Scheduler) PushReplace(iid ffs.APIID, c cid.Cid, cfg ffs.StorageConfig, oldCid cid.Cid) (ffs.JobID, error)
- func (s *Scheduler) StartRetrieval(iid ffs.APIID, rid ffs.RetrievalID, pyCid, piCid cid.Cid, sel string, ...) (ffs.JobID, error)
- func (s *Scheduler) Untrack(c cid.Cid) error
- func (s *Scheduler) WatchJobs(ctx context.Context, c chan<- ffs.StorageJob, iid ffs.APIID) error
- func (s *Scheduler) WatchLogs(ctx context.Context, c chan<- ffs.LogEntry) error
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNotFound is returned when an item isn't found on a Store. ErrNotFound = errors.New("item not found") // RenewalEvalFrequency is the frequency in which renewable StorageConfigs // will be evaluated. RenewalEvalFrequency = time.Hour * 24 // RepairEvalFrequency is the frequency in which repairable StorageConfigs // will be evaluated. RepairEvalFrequency = time.Hour * 24 )
var ( // HardcodedHotTimeout is a temporary override of storage configs // value for AddTimeout. HardcodedHotTimeout = time.Second * 300 )
Functions ¶
This section is empty.
Types ¶
type Scheduler ¶
type Scheduler struct {
// contains filtered or unexported fields
}
Scheduler receives actions to store a Cid in Hot and Cold layers. These actions are created as Jobs which have a lifecycle that can be watched by external actors. This Jobs are executed by delegating the work to the Hot and Cold layers configured for the scheduler.
func New ¶
func New(ds datastore.TxnDatastore, l ffs.JobLogger, hs ffs.HotStorage, cs ffs.ColdStorage) (*Scheduler, error)
New returns a new instance of Scheduler which uses JobStore as its backing repository for state, HotStorage for the hot layer, and ColdStorage for the cold layer.
func (*Scheduler) GetCidFromHot ¶
GetCidFromHot returns an io.Reader of the data from the hot layer.
func (*Scheduler) GetCidInfo ¶
GetCidInfo returns the current storage state of a Cid. Returns ErrNotFound if there isn't information for a Cid.
func (*Scheduler) GetLogsByCid ¶ added in v0.6.0
GetLogsByCid returns history logs of a Cid.
func (*Scheduler) GetRetrievalInfo ¶ added in v0.6.0
func (s *Scheduler) GetRetrievalInfo(rid ffs.RetrievalID) (ffs.RetrievalInfo, error)
GetRetrievalInfo returns the information about an executed retrieval.
func (*Scheduler) ImportCidInfo ¶ added in v0.6.0
ImportCidInfo imports Cid information manually. That's to say, will be CidInfo which wasn't generated by executing a Job, but provided externally.
func (*Scheduler) PushConfig ¶
PushConfig queues the specified StorageConfig to be executed as a new Job. It returns the created JobID for further tracking of its state.
func (*Scheduler) PushReplace ¶
func (s *Scheduler) PushReplace(iid ffs.APIID, c cid.Cid, cfg ffs.StorageConfig, oldCid cid.Cid) (ffs.JobID, error)
PushReplace queues a new StorageConfig to be executed as a new Job, replacing an oldCid that will be untrack in the Scheduler (i.e: deal renewals, repairing).
func (*Scheduler) StartRetrieval ¶ added in v0.6.0
func (s *Scheduler) StartRetrieval(iid ffs.APIID, rid ffs.RetrievalID, pyCid, piCid cid.Cid, sel string, miners []string, walletAddr string, maxPrice uint64) (ffs.JobID, error)
StartRetrieval schedules a new RetrievalJob to execute a Filecoin retrieval.