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

Perf/eth getlogs with compact encoding #5569

Merged
merged 10 commits into from
Apr 19, 2023
Merged

Conversation

asdacap
Copy link
Contributor

@asdacap asdacap commented Apr 14, 2023

  • Optimize eth_getLogs on case where it have filter such as CL deposit scans.
  • Skip bloom generation entirely on decoding refstruct. LogFinder skips bloom check if encoder does not support bloom decoding.
    • Surprisingly on CL workload this is faster than even with encoded flat bloom.
  • Delay recovery until the receipt match filter. 30% of receipt does not match, so this save block loading by that much.
  • Improve max req per second (on same benchmark as before) from 2900 to 5700. Max io increase from 650MBps to 1200MBps. 95p latency down from 68ms to 41ms. 50p from 30ms to 13ms.

Types of changes

What types of changes does your code introduce?

  • Optimization

Testing

Requires testing

  • Yes
  • No

If yes, did you write tests?

  • Yes
  • No

@asdacap asdacap merged commit e848081 into master Apr 19, 2023
@asdacap asdacap deleted the perf/compact-refstruct-decoder branch April 19, 2023 09:14
MarekM25 added a commit that referenced this pull request Apr 26, 2023
This reverts commit e848081.

# Conflicts:
#	src/Nethermind/Nethermind.Facade/Filters/LogFinder.cs
#	src/Nethermind/Nethermind.Serialization.Rlp/Rlp.cs
@MarekM25 MarekM25 mentioned this pull request Apr 26, 2023
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants