292: Backfill gaps in the recent past on startup when tracking head. #395
@ -1185,12 +1185,7 @@ func (sds *Service) Backfill() {
|
|||||||
// A gap can be created in this way if there is some problem in statediffing (eg, DB connectivity is lost,
|
// A gap can be created in this way if there is some problem in statediffing (eg, DB connectivity is lost,
|
||||||
// while the chain keeps syncing), if the process is terminated with a statediff in-flight, etc.
|
// while the chain keeps syncing), if the process is terminated with a statediff in-flight, etc.
|
||||||
func (sds *Service) backfillHeadGap(indexerBlockNumber uint64, chainBlockNumber uint64) {
|
func (sds *Service) backfillHeadGap(indexerBlockNumber uint64, chainBlockNumber uint64) {
|
||||||
headGap := chainBlockNumber - indexerBlockNumber
|
var ch = make(chan uint64)
|
||||||
var ch = make(chan uint64, headGap)
|
|
||||||
for bn := indexerBlockNumber; bn <= chainBlockNumber; bn++ {
|
|
||||||
ch <- bn
|
|
||||||
}
|
|
||||||
|
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
for i := uint(0); i < sds.numWorkers; i++ {
|
for i := uint(0); i < sds.numWorkers; i++ {
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
@ -1215,6 +1210,10 @@ func (sds *Service) backfillHeadGap(indexerBlockNumber uint64, chainBlockNumber
|
|||||||
}
|
}
|
||||||
}(i)
|
}(i)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for bn := indexerBlockNumber; bn <= chainBlockNumber; bn++ {
|
||||||
|
ch <- bn
|
||||||
|
}
|
||||||
close(ch)
|
close(ch)
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user