Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com>
fix merge error Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com>
This commit is contained in:
parent
137f494619
commit
1fc94e33b2
57
extern/sector-storage/stores/index.go
vendored
57
extern/sector-storage/stores/index.go
vendored
@ -7,7 +7,6 @@ import (
|
|||||||
"net/url"
|
"net/url"
|
||||||
gopath "path"
|
gopath "path"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -26,62 +25,6 @@ import (
|
|||||||
var HeartbeatInterval = 10 * time.Second
|
var HeartbeatInterval = 10 * time.Second
|
||||||
var SkippedHeartbeatThresh = HeartbeatInterval * 5
|
var SkippedHeartbeatThresh = HeartbeatInterval * 5
|
||||||
|
|
||||||
// ID identifies sector storage by UUID. One sector storage should map to one
|
|
||||||
// filesystem, local or networked / shared by multiple machines
|
|
||||||
type ID string
|
|
||||||
|
|
||||||
const IDSep = "."
|
|
||||||
|
|
||||||
type IDList []ID
|
|
||||||
|
|
||||||
func (il IDList) String() string {
|
|
||||||
l := make([]string, len(il))
|
|
||||||
for i, id := range il {
|
|
||||||
l[i] = string(id)
|
|
||||||
}
|
|
||||||
return strings.Join(l, IDSep)
|
|
||||||
}
|
|
||||||
|
|
||||||
func ParseIDList(s string) IDList {
|
|
||||||
strs := strings.Split(s, IDSep)
|
|
||||||
out := make([]ID, len(strs))
|
|
||||||
for i, str := range strs {
|
|
||||||
out[i] = ID(str)
|
|
||||||
}
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
type Group = string
|
|
||||||
|
|
||||||
type StorageInfo struct {
|
|
||||||
ID ID
|
|
||||||
URLs []string // TODO: Support non-http transports
|
|
||||||
Weight uint64
|
|
||||||
MaxStorage uint64
|
|
||||||
|
|
||||||
CanSeal bool
|
|
||||||
CanStore bool
|
|
||||||
|
|
||||||
Groups []Group
|
|
||||||
AllowTo []Group
|
|
||||||
}
|
|
||||||
|
|
||||||
type HealthReport struct {
|
|
||||||
Stat fsutil.FsStat
|
|
||||||
Err string
|
|
||||||
}
|
|
||||||
|
|
||||||
type SectorStorageInfo struct {
|
|
||||||
ID ID
|
|
||||||
URLs []string // TODO: Support non-http transports
|
|
||||||
Weight uint64
|
|
||||||
|
|
||||||
CanSeal bool
|
|
||||||
CanStore bool
|
|
||||||
|
|
||||||
Primary bool
|
|
||||||
}
|
|
||||||
|
|
||||||
//go:generate go run github.com/golang/mock/mockgen -destination=mocks/index.go -package=mocks . SectorIndex
|
//go:generate go run github.com/golang/mock/mockgen -destination=mocks/index.go -package=mocks . SectorIndex
|
||||||
|
|
||||||
type SectorIndex interface { // part of storage-miner api
|
type SectorIndex interface { // part of storage-miner api
|
||||||
|
2
extern/storage-sealing/sealing.go
vendored
2
extern/storage-sealing/sealing.go
vendored
@ -108,8 +108,6 @@ type Sealing struct {
|
|||||||
assignedPieces map[abi.SectorID][]cid.Cid
|
assignedPieces map[abi.SectorID][]cid.Cid
|
||||||
nextDealSector *abi.SectorNumber // used to prevent a race where we could create a new sector more than once
|
nextDealSector *abi.SectorNumber // used to prevent a race where we could create a new sector more than once
|
||||||
|
|
||||||
upgradeLk sync.Mutex
|
|
||||||
toUpgrade map[abi.SectorNumber]struct{}
|
|
||||||
available map[abi.SectorID]struct{}
|
available map[abi.SectorID]struct{}
|
||||||
|
|
||||||
notifee SectorStateNotifee
|
notifee SectorStateNotifee
|
||||||
|
60
extern/storage-sealing/upgrade_queue.go
vendored
60
extern/storage-sealing/upgrade_queue.go
vendored
@ -6,9 +6,6 @@ import (
|
|||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
|
||||||
market7 "github.com/filecoin-project/specs-actors/v7/actors/builtin/market"
|
market7 "github.com/filecoin-project/specs-actors/v7/actors/builtin/market"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -59,60 +56,3 @@ func (m *Sealing) sectorActive(ctx context.Context, tok TipSetToken, sector abi.
|
|||||||
|
|
||||||
return active.IsSet(uint64(sector))
|
return active.IsSet(uint64(sector))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Sealing) tryUpgradeSector(ctx context.Context, params *miner.SectorPreCommitInfo) big.Int {
|
|
||||||
if len(params.DealIDs) == 0 {
|
|
||||||
return big.Zero()
|
|
||||||
}
|
|
||||||
replace := m.maybeUpgradableSector()
|
|
||||||
if replace != nil {
|
|
||||||
loc, err := m.Api.StateSectorPartition(ctx, m.maddr, *replace, nil)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("error calling StateSectorPartition for replaced sector: %+v", err)
|
|
||||||
return big.Zero()
|
|
||||||
}
|
|
||||||
|
|
||||||
params.ReplaceCapacity = true
|
|
||||||
params.ReplaceSectorNumber = *replace
|
|
||||||
params.ReplaceSectorDeadline = loc.Deadline
|
|
||||||
params.ReplaceSectorPartition = loc.Partition
|
|
||||||
|
|
||||||
log.Infof("replacing sector %d with %d", *replace, params.SectorNumber)
|
|
||||||
|
|
||||||
ri, err := m.Api.StateSectorGetInfo(ctx, m.maddr, *replace, nil)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("error calling StateSectorGetInfo for replaced sector: %+v", err)
|
|
||||||
return big.Zero()
|
|
||||||
}
|
|
||||||
if ri == nil {
|
|
||||||
log.Errorf("couldn't find sector info for sector to replace: %+v", replace)
|
|
||||||
return big.Zero()
|
|
||||||
}
|
|
||||||
|
|
||||||
if params.Expiration < ri.Expiration {
|
|
||||||
// TODO: Some limit on this
|
|
||||||
params.Expiration = ri.Expiration
|
|
||||||
}
|
|
||||||
|
|
||||||
return ri.InitialPledge
|
|
||||||
}
|
|
||||||
|
|
||||||
return big.Zero()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Sealing) maybeUpgradableSector() *abi.SectorNumber {
|
|
||||||
m.upgradeLk.Lock()
|
|
||||||
defer m.upgradeLk.Unlock()
|
|
||||||
for number := range m.toUpgrade {
|
|
||||||
// TODO: checks to match actor constraints
|
|
||||||
|
|
||||||
// this one looks good
|
|
||||||
/*if checks */
|
|
||||||
{
|
|
||||||
delete(m.toUpgrade, number)
|
|
||||||
return &number
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user