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

Refactor/eth66 #4758

Merged
merged 6 commits into from
Oct 22, 2022
Merged

Refactor/eth66 #4758

merged 6 commits into from
Oct 22, 2022

Conversation

asdacap
Copy link
Contributor

@asdacap asdacap commented Oct 13, 2022

Resolves #4714

  • Conform to eth66.

Changes:

  • Add request/response mapping.

Types of changes

What types of changes does your code introduce?
Put an x in the boxes that apply

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Update
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Other (please describe):

Testing

Requires testing

  • Yes
  • No

In case you checked yes, did you write tests??

  • Yes
  • No

Comments about testing , should you have some (optional)

  • 4 smoke test run can sync.

Further comments (optional)

If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

Copy link
Contributor

@marcindsobczak marcindsobczak left a comment

Choose a reason for hiding this comment

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

Wow, you are so fast!

I think we need benchmark to compare it before and after changes. Any ideas who can help us? Maybe @kamilchodola ?

Copy link
Member

@LukaszRozmej LukaszRozmej left a comment

Choose a reason for hiding this comment

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

How does it stack up comparing with previous version? Any improvements (doesn't have to be total time, but time in this area or memory)

@LukaszRozmej
Copy link
Member

The main question still is: Is this beneficial in any way, because it looks like it we already have request->response mapping through CompletionSource, so what benefits this brings us?

@asdacap
Copy link
Contributor Author

asdacap commented Oct 19, 2022

I think for now its largely for conformance reason. Maybe one day of the client would response out of order for performance reason, eg, some block is on cache some not. If that happen sync might break.

@asdacap
Copy link
Contributor Author

asdacap commented Oct 19, 2022

Finally got some runs to complete. Before vs after (EPYC cpu):

  • Lighthouse 4 hours 40 minute (7713) vs 22 hours 10 minute (7501).
  • Lodestar 20 hours 20 minute (7501) vs 3 hours 55 minute (7713).
  • Prysm 7 hours 40 minute (7542) vs 15 hours 20 minute (7501).
  • Teku 14 hours 30 minute (7501) vs 9 hours 55 minute (7542).

In conclusion, I have terrible luck. None of the four pair have the same CPU. At least they all can sync.

@asdacap asdacap marked this pull request as ready for review October 19, 2022 13:18
@asdacap
Copy link
Contributor Author

asdacap commented Oct 20, 2022

Another runs. Before vs after:

  • Lighthouse 4 hours 30 minute vs 4 hours
  • Lodestar 3 hours 40 minute (EPYC 7642) vs 3 hours 40 minute.
  • Prysm 3 hours 30 minute vs 3 hours 40 minute.
  • Teku 3 hours 40 minute vs 6 hours (EPYC 7542).
    Everything else is EPYC 7713.

@asdacap asdacap merged commit 959487d into master Oct 22, 2022
@asdacap asdacap deleted the refactor/eth66 branch October 22, 2022 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Drop MessageQueues, start pairing requests and responds by requestId
3 participants