-
Notifications
You must be signed in to change notification settings - Fork 72
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
Pass Accepted / Transferred / Published checkpoint counters along to the deal filter #1747
Comments
We are already suffering a slow down with the current data sent and time it takes to run the deal filters. The issue is captured at #1733 |
Proposal of the new format:
|
Before going to a complete change of workflow, and the way dealfilters interface with boost, we should have a look at what exactly takes time. As @cryptowhizzard mentionned, removing the parameter generation seems to be enough. My guess would be that some parameters collected takes too much resources when applied to big storage. Having only values that would not be dependant on machine sizes, but mostly linear should probably be enough to fix the issue. From some quick search on our end, we suspect the This api call in Lotus takes along time to proceed. Calling lotus Example, calling SectorsSummary (almost one second on that miner, could take over 30s on big miners like for cryptowhizzard)
And very fast metrics API, returning the same data (cut to only the matching ones here)
|
Even with the most leaniest dealfilter ( I am only sending the deal parameters , no sector status etc. etc. ) it seems that boost still cannot handle incoming deal requests properly when it is stressed / loaded. Fyi to give context to the thing below: When the duration is above 30 seconds the client ( sender ) of the deal is gone. The client get's "stream reset" errors. 2023-10-19T10:08:38.133+0200 DEBUG boost-net lp2pimpl/net.go:233 handled deal proposal request {"reqlog-uuid": "9a55c269-b8e4-4542-bfdd-214d02943716", "client-peer": "12D3KooWKnDj8qencX3iXAtbChf8UNzsL8GASbR8xgymg4QawEt3", "id": "14d75316-4737-40bc-9ce2-b858e60c55a4", "duration": "1m45.666006766s"} |
@cryptowhizzard Could you try with the additional commit from https://github.com/CIDgravity/boost/tree/dealfilter-timing which should add some timing logs for deal-filter, having getDealFilterParams on one side, and exec on the other side? |
Hi |
I've figured out the slowness on my machine; its 3 serialized calls to a seemingly really slow database, providing funds, sealing and space information; https://github.com/filecoin-project/boost/blob/main/storagemarket/provider_dealfilter.go#L42-L70 These calls can take 3 to 8 seconds, but sometimes (over multiple deals in 1 hour) they are 30 to 70 seconds (which raise another bug which I'll post here too) I've removed them now and will post new times that I'm seeing |
Also see https://filecoinproject.slack.com/archives/C03CKDLEWG1/p1702930422361979 for my bug hunt |
This also took 3 seconds, as did the step |
Here are the DB sizes:
|
Please note that with removing the things from provider dealfilter.go you will be incompatible with CID gravity. It’s on my list to reover some parts build from external sources like Farcaster, after 7 jan 2024. It should not be in Boost anyway in my personal opinion. Boost should make deals and faaaaasssstttttt :) |
Checklist
Ideas
.Boost component
What is the motivation behind this feature request? Is your feature request related to a problem? Please describe.
Provide to storage providers the ability to accept deals based on the current concurrent downloads through the deal filter.
The current info allows to filter based on the sealing pipeline states (AP / PC1 / PC2/ ... ) but when receiving alot of online deals, many concurrent downloads can be started before reaching the miner. The idea is to give miners the ability to take the boost staged deals that will soon reach the sealing pipeline into account.
State of the different deal currently being processed should be taken into account when deciding if we want to accept new deals
Describe the solution you'd like
Boost add these existing info to the dealfilter.
Proposed format :
Describe alternatives you've considered
None
Additional context
We made that development and can propose a PR.
The text was updated successfully, but these errors were encountered: