Skip to content

Conversation

@eserilev
Copy link
Member

@eserilev eserilev commented Sep 18, 2025

  • Introduced a high priority rayon thread pool which uses ~80% of cpu, or at least 3 threads.
  • Created a spawn_blocking_handle_with_rayon fn inside TaskExecutor.
  • Data column reconstruction now runs within the new scoped high priority rayon pool.
  • Moved RayonManager reference to TaskExecutor

It isn't straightforward to convert the full Reconstruction work event from an async to a blocking task. This approach is a temporary stopgap until we are able to fully separate async tasks from compute heavy tasks.

jimmygchen and others added 27 commits August 23, 2025 01:43
@jimmygchen jimmygchen added waiting-on-author The reviewer has suggested changes and awaits thier implementation. and removed ready-for-review The code is ready for review labels Sep 23, 2025
Copy link
Member

@jimmygchen jimmygchen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @eserilev I think your suggested approach looks good and i don't see any issue with it.

@jimmygchen jimmygchen added v8.0.0-rc.0 Q3 2025 release for Fusaka on Holesky and removed v8.0.0 Q4 2025 Fusaka Mainnet Release labels Sep 23, 2025
@jimmygchen
Copy link
Member

Updating this to v8.0.0-rc.0 as I think it's important to have this in the testnet release, so reconstruction doesn't impact supernode block processing and attesting.

@eserilev eserilev added ready-for-review The code is ready for review and removed waiting-on-author The reviewer has suggested changes and awaits thier implementation. labels Sep 23, 2025
Copy link
Member

@jimmygchen jimmygchen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good, thanks! Will wait for another reviewer and some testing and then merge this.

I think it might be worth clarifying on the below functions, i.e. the difference isnt just blocking /async, we'd use the 2nd one of if we want to block the async thread to await for the return values (maybe fn naming + describe when to use each?)

  • spawn_blocking_with_rayon
  • spawn_rayon_async

@eserilev
Copy link
Member Author

eserilev commented Sep 23, 2025

Reconstruction inside the scoped high prio rayon pool (while setting reconstruction delay to 0)
tracing

tracing

@eserilev
Copy link
Member Author

When using the global rayon pool and setting reconstruction delay to 0

tracing tracing

@eserilev
Copy link
Member Author

In the scoped high prio rayon pool with reconstruction delay set to 0

over a one hour period

tree-hash-cache 90% of these were under 3ms
tracing

blobs_to_data_column_sidecars more than 90% were under 30ms
tracing

Copy link
Member

@jimmygchen jimmygchen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice numbers 👏 pretty good improvements there, shows that the scoped rayon impl is quite effective.

@jimmygchen jimmygchen added ready-for-merge This PR is ready to merge. and removed ready-for-review The code is ready for review labels Sep 24, 2025
mergify bot added a commit that referenced this pull request Sep 24, 2025
@mergify
Copy link

mergify bot commented Sep 24, 2025

This pull request has been removed from the queue for the following reason: checks failed.

The merge conditions cannot be satisfied due to failing checks:

You can check the last failing draft PR here: #8107.

You may have to fix your CI before adding the pull request to the queue again.
If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio requeue comment.

mergify bot added a commit that referenced this pull request Sep 24, 2025
@mergify mergify bot merged commit af27402 into sigp:unstable Sep 24, 2025
37 checks passed
lmnzx pushed a commit to lmnzx/lighthouse that referenced this pull request Nov 4, 2025
Co-Authored-By: Jimmy Chen <[email protected]>

Co-Authored-By: Eitan Seri- Levi <[email protected]>

Co-Authored-By: Eitan Seri-Levi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

beacon-processor Glorious beacon processor, guardian against chaos yet chaotic itself optimization Something to make Lighthouse run more efficiently. ready-for-merge This PR is ready to merge. v8.0.0-rc.0 Q3 2025 release for Fusaka on Holesky

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants