dynamically compute number of workers for parallel chain walk
This commit is contained in:
parent
7c8edf5632
commit
8e01e73de4
@ -694,11 +694,6 @@ func (s *SplitStore) walkChain(ts *types.TipSet, inclState, inclMsgs abi.ChainEp
|
||||
return nil
|
||||
}
|
||||
|
||||
workers := runtime.NumCPU() / 2
|
||||
if workers < 2 {
|
||||
workers = 2
|
||||
}
|
||||
|
||||
for len(toWalk) > 0 {
|
||||
// walking can take a while, so check this with every opportunity
|
||||
if err := s.checkClosing(); err != nil {
|
||||
@ -712,6 +707,11 @@ func (s *SplitStore) walkChain(ts *types.TipSet, inclState, inclMsgs abi.ChainEp
|
||||
walking := toWalk
|
||||
toWalk = nil
|
||||
|
||||
workers := len(walking)
|
||||
if workers > runtime.NumCPU()/2 {
|
||||
workers = runtime.NumCPU() / 2
|
||||
}
|
||||
|
||||
workch := make(chan cid.Cid, len(walking))
|
||||
for _, c := range walking {
|
||||
workch <- c
|
||||
|
Loading…
Reference in New Issue
Block a user