Merge pull request #3380 from filecoin-project/fix/chainwatch/perf
perf(chainwatch): parallelize miner processing
This commit is contained in:
commit
e86f90fe8d
@ -318,7 +318,10 @@ func (p *Processor) storeMinerPreCommitInfo(ctx context.Context, miners []minerA
|
|||||||
return xerrors.Errorf("Failed to prepare miner precommit info statement: %w", err)
|
return xerrors.Errorf("Failed to prepare miner precommit info statement: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
grp, _ := errgroup.WithContext(ctx)
|
||||||
for _, m := range miners {
|
for _, m := range miners {
|
||||||
|
m := m
|
||||||
|
grp.Go(func() error {
|
||||||
minerSectors, err := adt.AsArray(p.ctxStore, m.state.Sectors)
|
minerSectors, err := adt.AsArray(p.ctxStore, m.state.Sectors)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -327,13 +330,12 @@ func (p *Processor) storeMinerPreCommitInfo(ctx context.Context, miners []minerA
|
|||||||
changes, err := p.getMinerPreCommitChanges(ctx, m)
|
changes, err := p.getMinerPreCommitChanges(ctx, m)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if strings.Contains(err.Error(), types.ErrActorNotFound.Error()) {
|
if strings.Contains(err.Error(), types.ErrActorNotFound.Error()) {
|
||||||
continue
|
return nil
|
||||||
} else {
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if changes == nil {
|
if changes == nil {
|
||||||
continue
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
preCommitAdded := make([]uint64, len(changes.Added))
|
preCommitAdded := make([]uint64, len(changes.Added))
|
||||||
@ -412,6 +414,11 @@ func (p *Processor) storeMinerPreCommitInfo(ctx context.Context, miners []minerA
|
|||||||
Event: PreCommitExpired,
|
Event: PreCommitExpired,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if err := grp.Wait(); err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := stmt.Close(); err != nil {
|
if err := stmt.Close(); err != nil {
|
||||||
@ -443,17 +450,19 @@ func (p *Processor) storeMinerSectorInfo(ctx context.Context, miners []minerActo
|
|||||||
return xerrors.Errorf("Failed to prepare miner sector info statement: %w", err)
|
return xerrors.Errorf("Failed to prepare miner sector info statement: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
grp, _ := errgroup.WithContext(ctx)
|
||||||
for _, m := range miners {
|
for _, m := range miners {
|
||||||
|
m := m
|
||||||
|
grp.Go(func() error {
|
||||||
changes, err := p.getMinerSectorChanges(ctx, m)
|
changes, err := p.getMinerSectorChanges(ctx, m)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if strings.Contains(err.Error(), types.ErrActorNotFound.Error()) {
|
if strings.Contains(err.Error(), types.ErrActorNotFound.Error()) {
|
||||||
continue
|
return nil
|
||||||
} else {
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if changes == nil {
|
if changes == nil {
|
||||||
continue
|
return nil
|
||||||
}
|
}
|
||||||
var sectorsAdded []uint64
|
var sectorsAdded []uint64
|
||||||
var ccAdded []uint64
|
var ccAdded []uint64
|
||||||
@ -473,7 +482,7 @@ func (p *Processor) storeMinerSectorInfo(ctx context.Context, miners []minerActo
|
|||||||
added.ExpectedDayReward.String(),
|
added.ExpectedDayReward.String(),
|
||||||
added.ExpectedStoragePledge.String(),
|
added.ExpectedStoragePledge.String(),
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return err
|
log.Errorw("writing miner sector changes statement", "error", err.Error())
|
||||||
}
|
}
|
||||||
if len(added.DealIDs) == 0 {
|
if len(added.DealIDs) == 0 {
|
||||||
ccAdded = append(ccAdded, uint64(added.SectorNumber))
|
ccAdded = append(ccAdded, uint64(added.SectorNumber))
|
||||||
@ -504,6 +513,12 @@ func (p *Processor) storeMinerSectorInfo(ctx context.Context, miners []minerActo
|
|||||||
SectorIDs: extended,
|
SectorIDs: extended,
|
||||||
Event: SectorExtended,
|
Event: SectorExtended,
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := grp.Wait(); err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := stmt.Close(); err != nil {
|
if err := stmt.Close(); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user