-
Notifications
You must be signed in to change notification settings - Fork 57
perf(core): block snapshots with layers #2664
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
Draft
edg-l
wants to merge
45
commits into
main
Choose a base branch
from
edgl_snapshots_v2
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Lines of code reportTotal lines added: Detailed view
|
Benchmark for 93bb4dcClick to view benchmark
|
Benchmark for 42d6956Click to view benchmark
|
Benchmark for a9f99ffClick to view benchmark
|
Benchmark for b7b493fClick to view benchmark
|
Benchmark for bce47f6Click to view benchmark
|
Benchmark for b40e593Click to view benchmark
|
Benchmark for ee8ac59Click to view benchmark
|
Benchmark for c144ed8Click to view benchmark
|
Benchmark Block Execution Results Comparison Against Main
|
Benchmark for 084ba79Click to view benchmark
|
Benchmark for 9cc084fClick to view benchmark
|
Benchmark for 23432e3Click to view benchmark
|
Benchmark for d3a4665Click to view benchmark
|
Benchmark for a4e259aClick to view benchmark
|
Benchmark for e1ecd9dClick to view benchmark
|
Benchmark for de9e830Click to view benchmark
|
Benchmark for 2b9c848Click to view benchmark
|
Benchmark for 6cd17bdClick to view benchmark
|
Benchmark for c90d6c3Click to view benchmark
|
Benchmark for 0b94a3cClick to view benchmark
|
on a ryzen 7900x3d with 64gb |
Benchmark for 6990c8dClick to view benchmark
|
Benchmark for 98eb4e6Click to view benchmark
|
Benchmark for df0afa7Click to view benchmark
|
Benchmark for f4045a2Click to view benchmark
|
Benchmark for 91d0686Click to view benchmark
|
Benchmark for 1df7c68Click to view benchmark
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Adds block snapshots using disk and diff layers. Improving performance by reducing database queries.
Description
Heavily inspired by https://github.com/ethereum/go-ethereum/blob/master/core/state/snapshot/
Uses a base disk layer at block X, adding diff layers as blocks come at X + 1, X + 2, until the cap of max layers is reached, when that happens, flattening of layers is done, moving the bottom disk layer closer to the head block like a moving window.
When one queries for example for the account state at HEAD-4 block. The snapshot tree requests the snapshot at HEAD-4, then using a bloom filter which aggregates all accounts from previous diff layers, we can now if we skip to the disk layer directly or traverse the diff layers. Traversing the diff layers is faster than quering the database.
Closes #1997, however we should open more issues for missing features:
Missing features: