Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable bitswap to handle more requests #8233

Closed
aschmahmann opened this issue Jun 30, 2021 · 2 comments
Closed

Enable bitswap to handle more requests #8233

aschmahmann opened this issue Jun 30, 2021 · 2 comments
Assignees
Labels
effort/weeks Estimated to take multiple weeks kind/enhancement A net-new feature or improvement to an existing feature P1 High: Likely tackled by core team if no one steps up
Milestone

Comments

@aschmahmann
Copy link
Contributor

At the moment go-bitswap has fixed worker count limits for areas where we expect resource limits such as the reading from the blockstore, packaging up messages and responding to peers.

We should either make the worker limits configurable from the config file, or allow them to dynamically shrink/grow to meet network demands.

Proposed steps for now are:

  • Make each of go-bitswaps worker counts passable as options
  • Expose metrics in prometheus for tracking the size of the backlog for each of the workers to help users figure out if they should be increasing their worker counts
  • Make a section in the config file for setting internal/unstable parameters of components
    • Proposed: Internal.Bitswap.*
    • Document how a user might use the prometheus metrics to decide to increase their worker counts
@aschmahmann aschmahmann added kind/enhancement A net-new feature or improvement to an existing feature P1 High: Likely tackled by core team if no one steps up effort/weeks Estimated to take multiple weeks labels Jun 30, 2021
@aschmahmann aschmahmann added this to the go-ipfs 0.10 milestone Jun 30, 2021
@aschmahmann
Copy link
Contributor Author

aschmahmann commented Jul 9, 2021

We currently have some hacked together branches that cover a bunch of the work here, but they need to be transitioned into something usable in go-ipfs master.

Next steps (in order):

  • Add config file support for go-bitswap configurability changes (let's do this first)
  • Expose metrics for tracking which queues are backed up and some docs related to the config options (i.e. a "how to tune" section)
  • Test with the existing peertaskqueue changes (we'll be able to test later)
    • Ideally these would be testground tests, but doing tests on some production nodes and some local nodes to gauge performance should do an ok job as well

@aschmahmann
Copy link
Contributor Author

closed by #8268

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
effort/weeks Estimated to take multiple weeks kind/enhancement A net-new feature or improvement to an existing feature P1 High: Likely tackled by core team if no one steps up
Projects
No open projects
Archived in project
Development

No branches or pull requests

3 participants