-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
Check that the sync stream is actually batching work #1167
Comments
Locally, I added a test to the I configured the test with 20 observed heights and the following importer params:
The output is as follows:
From this test it appears that there is some sequential processing and that the buffers become lopsided first towards headers, and then towards transactions:
The maximum values here correspond with the arguments provided for the maximum values in the import config. It appears that it first saturates the buffer with the maximum number of headers, then it saturates the buffer with the maximum number of transactions. This behaviour is consistent whenever I run the test, and with any configuration of maximum headers and maximum transactions. |
Related issues: - #1167 This PR adds benchmarking for block synchronization. Benchmarks simulate the import by using mock services that introduce artificial delays. Benchmarks are provisioned by reusing existing test types and mock ports. This PR refactors the existing back pressure tests to extract its test structures so that they can be reused in benchmarks. In a follow up PR, I will be refactoring the block import to use a single buffer and asynchronous tasks to perform header downloads. --------- Co-authored-by: Brandon Kite <brandonkite92@gmail.com>
Related issues: - Closes #1167 --------- Co-authored-by: Brandon Kite <brandonkite92@gmail.com> Co-authored-by: xgreenx <xgreenx9999@gmail.com>
Related issues: - FuelLabs/fuel-core#1167 This PR adds benchmarking for block synchronization. Benchmarks simulate the import by using mock services that introduce artificial delays. Benchmarks are provisioned by reusing existing test types and mock ports. This PR refactors the existing back pressure tests to extract its test structures so that they can be reused in benchmarks. In a follow up PR, I will be refactoring the block import to use a single buffer and asynchronous tasks to perform header downloads. --------- Co-authored-by: Brandon Kite <brandonkite92@gmail.com>
Related issues: - Closes FuelLabs/fuel-core#1167 --------- Co-authored-by: Brandon Kite <brandonkite92@gmail.com> Co-authored-by: xgreenx <xgreenx9999@gmail.com>
While we are executing blocks, we don't request new headers. It means that our flow is: Request 10 headers separately -> request transaction for each available header -> execute 10 blocks -> repeat. It is all done sequentially.
Instead, we should start to request new headers immediately after block execution.
The text was updated successfully, but these errors were encountered: