filecoin-project / venus

Filecoin Full Node Implementation in Go
https://venus.filecoin.io
Other
2.06k stars 459 forks source link

Graphsync fetcher inter-request parallelism #3373

Closed ZenGround0 closed 3 years ago

ZenGround0 commented 5 years ago

Description

It may make sense to request multiple chain heads in parallel instead of blocking on a single mutex in the syncer's HandleNewTipSet function.

For example if one block is only served by a peer that conveniently disconnects during fetching that peer can cause the graphsync system to retry for the entire requestTimeout, preventing the fetching and processing of other blocks.

Acceptance criteria

Risks + pitfalls

Where to begin

Discussion with @frrist @anorth @hannahhoward

anorth commented 5 years ago

I concur we should do something like this.