Skip to content
This repository has been archived by the owner on Apr 16, 2020. It is now read-only.

Improve bitswap performance #85

Open
dirkmc opened this issue Aug 1, 2019 · 10 comments
Open

Improve bitswap performance #85

dirkmc opened this issue Aug 1, 2019 · 10 comments

Comments

@dirkmc
Copy link

dirkmc commented Aug 1, 2019

In particular we'd like to focus on improving bitswap performance for

  • one node retrieving a large amount of data from several nodes who already have it
  • one node retrieving a segment of data from several nodes who have different parts of it
  • a group of nodes retrieving data from several far-away nodes who already have it
@dirkmc
Copy link
Author

dirkmc commented Aug 1, 2019

I created an issue in go-bitswap to explain the current implementation of bitswap sessions, as a first step towards understanding where improvements can be made.

@dirkmc
Copy link
Author

dirkmc commented Aug 2, 2019

I created an issue in go-bitswap to highlight some issues with latency measurement, and proposals to address them

@dirkmc
Copy link
Author

dirkmc commented Aug 2, 2019

I created an issue in go-bitswap to highlight some issues with session request sharding, and explore parameters for a solution.

@dirkmc
Copy link
Author

dirkmc commented Aug 2, 2019

I created an issue in go-bitswap to discuss randomizing want list requests.

@dirkmc
Copy link
Author

dirkmc commented Aug 8, 2019

I created a PR in go-bitswap to improve handling of response messages: it processes messages as a batch instead of one-by-one, which improves session request splitting.

@dirkmc
Copy link
Author

dirkmc commented Aug 16, 2019

This week

@dirkmc
Copy link
Author

dirkmc commented Aug 26, 2019

Last week

@dirkmc
Copy link
Author

dirkmc commented Sep 3, 2019

Last week

@dirkmc
Copy link
Author

dirkmc commented Sep 5, 2019

FYI I was working on improving the Bitswap benchmarks by making small modifications to the PoC, but it was too haphazard and buggy, so I'm going to do a proper refactor first.

@dirkmc
Copy link
Author

dirkmc commented Sep 23, 2019

With the latest changes the PoC seems stable, so I'm looking into improving performance.

I created an issue to discuss how we can improve the performance of bitswap's engine (ie the part of bitswap that receives wants and sends out blocks).
I've implemented Proposals 1 - 4, which address ordering wants and grouping them by block size.
Next I will implement proposal 5, which adds parallelism.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant