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

Throttle staging deals on the lotus-miner markets service and reject new deals, until staged deals are added to sectors. #7241

Closed
6 of 15 tasks
nonsense opened this issue Aug 31, 2021 · 5 comments

Comments

@nonsense
Copy link
Member

Checklist

  • This is not a new feature or an enhancement to the Filecoin protocol. If it is, please open an FIP issue.
  • This is not a new feature request. If it is, please file a feature request instead.
  • This is not brainstorming ideas. If you have an idea you'd like to discuss, please open a new discussion on the lotus forum and select the category as Ideas.
  • I have a specific, actionable, and well motivated improvement to propose.

Lotus component

  • lotus daemon - chain sync
  • lotus miner - mining and block production
  • lotus miner/worker - sealing
  • lotus miner - proving(WindowPoSt)
  • lotus miner/market - storage deal
  • lotus miner/market - retrieval deal
  • lotus miner/market - data transfer
  • lotus client
  • lotus JSON-RPC API
  • lotus message management (mpool)
  • Other

Improvement Suggestion

Currently Lotus has no way to throttle incoming storage deals. This results in the deal-staging directory in the markets service repo to become increasingly large without any limits, which results in disk space getting filled to 100% and essentially halting the miner/fullnode.

For example on a small miner configuration, where the sealing area and the full node are hosted on a 2TB SSD, there is room only for a few deals and 1-2 sectors being sealed. However the markets subsystem is accepting and storing/staging too many deals successfully, which fills the SSD very quickly.

Ideally we need a mechanism to specify that we want no more than N deals or M GBs to be in the markets node staging area.

@jennijuju
Copy link
Member

is it possible to do a dt rate limiting configuration by size (like byte/sec) based on network speed + ongoing traffic?

@nonsense
Copy link
Member Author

@jennijuju we considered doing this in Lotus, but decided that it is probably best handled by external to Lotus tools, such as tc and other connection traffic shaping tools.

@nonsense
Copy link
Member Author

@jennijuju I think we should close this issue, because it was created for the stopgap tasks of rejecting deals when the staging are is full.

Designing a better backpressure mechanism, and propagating information from the sealing pipeline to the markets process in order for it to decide better how and when to reject deals is certainly going to be more involved, so this is not something that is feasible in a few days.

@jennijuju
Copy link
Member

Designing a better backpressure mechanism, and propagating information from the sealing pipeline to the markets process in order for it to decide better how and when to reject deals is certainly going to be more involved,

Agree - do we have a ticket for this? If not, can we create one before closing this?

@jennijuju jennijuju added status/won't fix and removed P1 P1: Must be resolved kind/enhancement Kind: Enhancement area/markets/provider area/markets/storage area/markets/retrieval team/ignite Issues and PRs being tracked by Team Ignite at Protocol Labs labels Jan 2, 2022
@jennijuju jennijuju removed this from the v1.13.0 milestone Jan 2, 2022
@jennijuju
Copy link
Member

won't fix in lotus - this should be considered in Boost.

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

No branches or pull requests

2 participants