Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var V1MultitenancyMigration = Migration{ UseTxn: false, Run: func(ds datastoreReaderWriter) error { cidOwners, err := v0CidOwners(ds) if err != nil { return fmt.Errorf("getting cid owners: %s", err) } log.Infof("Starting job logger migration...") if err := migrateJobLogger(ds, cidOwners); err != nil { return fmt.Errorf("migrating job logger: %s", err) } log.Infof("Job logger migration finished") log.Infof("Starting storage info migration...") if err := migrateStorageInfo(ds, cidOwners); err != nil { return fmt.Errorf("migrating storage info: %s", err) } log.Infof("Storage info migration finished") log.Infof("Starting trackstore migration...") if err := migrateTrackstore(ds, cidOwners); err != nil { return fmt.Errorf("migrating trackstore: %s", err) } log.Infof("Trackstore migration finished") log.Infof("Starting started deals migration...") if err := migrateStartedDeals(ds); err != nil { return fmt.Errorf("migrating trackstore: %s", err) } log.Infof("Started deals migration finished") log.Infof("Starting pinstore filling migration...") if err := pinstoreFilling(ds, cidOwners); err != nil { return fmt.Errorf("filling pinstore: %s", err) } log.Infof("Pinstore filling migration finished") return nil }, }
V1MultitenancyMigration contains the logic to upgrade a datastore from version 0 to version 1. Transactionality is disabled since is a big migration.
View Source
var V2StorageInfoDealIDs = Migration{ UseTxn: false, Run: func(ds datastoreReaderWriter) error { propDealIDMap, err := v2GenProposalCidToDealID(ds) if err != nil { return fmt.Errorf("getting cid owners: %s", err) } log.Infof("Starting DealID filling...") if err := v2MigrationDealIDFilling(ds, propDealIDMap); err != nil { return fmt.Errorf("migrating job logger: %s", err) } log.Infof("DealID filling migration finished") return nil }, }
V2StorageInfoDealIDs contains the logic to upgrade a datastore from version 1 to version 2. Transactionality is disabled since is a big migration.
View Source
var V3StorageJobsIndexMigration = Migration{ UseTxn: true, Run: func(ds datastoreReaderWriter) error { q := query.Query{Prefix: "/ffs/scheduler/sjstore/job"} res, err := ds.Query(q) if err != nil { return fmt.Errorf("querying sjstore jobs: %s", err) } defer func() { _ = res.Close() }() for r := range res.Next() { if r.Error != nil { return fmt.Errorf("iterating results: %s", r.Error) } var job storageJob if err := json.Unmarshal(r.Value, &job); err != nil { return fmt.Errorf("unmarshaling job: %s", err) } apiidKey := datastore.NewKey("/ffs/scheduler/sjstore/apiid").ChildString(job.APIID).ChildString(job.Cid.String()).ChildString(fmt.Sprintf("%d", job.CreatedAt)) cidKey := datastore.NewKey("/ffs/scheduler/sjstore/cid").ChildString(job.Cid.String()).ChildString(job.APIID).ChildString(fmt.Sprintf("%d", job.CreatedAt)) if err := ds.Put(apiidKey, []byte(job.ID)); err != nil { return fmt.Errorf("putting apiid index record in datastore: %s", err) } if err := ds.Put(cidKey, []byte(job.ID)); err != nil { return fmt.Errorf("putting cid index record in datastore: %s", err) } } return nil }, }
V3StorageJobsIndexMigration contains the logic to upgrade a datastore from version 2 to version 3.
Functions ¶
This section is empty.
Types ¶
type Migration ¶
Migration runs a vA->v(A+1) migration. UseTxn indicates if this migration should be run in a transaction.
type Migrator ¶
type Migrator struct {
// contains filtered or unexported fields
}
Migrator ensures a datastore goes through all the needed Migrations to upgrade its current version to the latest version.
Click to show internal directories.
Click to hide internal directories.