-
Notifications
You must be signed in to change notification settings - Fork 811
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
Blobdb for static data #5475
Blobdb for static data #5475
Conversation
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
|
return variables.get(key.toByteArray()).map(Bytes::wrap); | ||
} | ||
|
||
public static class Updater implements VariablesStorage.Updater { |
Check notice
Code scanning / CodeQL
Class has same name as super class
f944e0b
to
93d5496
Compare
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
93d5496
to
9d8aaec
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So far so good. Have you considered re-using the DataStoreModule from evmtool? We might be able to pull that up into Besu, and use that to provide VariablesStorage to anything that needs it, via BesuComponent.
# Conflicts: # plugin-api/build.gradle
a1e1a2a
to
03e4cd1
Compare
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
# Conflicts: # plugin-api/build.gradle
# Conflicts: # plugin-api/build.gradle
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
# Conflicts: # ethereum/core/src/test-support/java/org/hyperledger/besu/ethereum/core/VariablesStorageHelper.java
Not analyzed that part, and given my little knowledge of that part, I will check with you what is necessary for that. |
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
the diff from 5471 looks good to me. I am not sure why the failing unit and acceptance tests. |
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
# Conflicts: # CHANGELOG.md
unnecessary stubbing, fixed |
Adding some metrics on this PR Sync and block block processing timingsWe can also see the difference in block import time, especially from some block number where the node running this PR has a much better block import time. Block processing (post sync) We can notice also the same performance regarding Forkchoice update (FCU) System metricsBlock import time is better because with BlobDB there is less compaction and thus less write amplification. Without PR #5475 With PR #5475 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚢
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
PR description
This PR is built on top of #5471, so check it first.
To only show the diff against #5471
This PR introduces optimizations for RocksDB column families that contain static data, i.e. key value entries that are never changed, but only added, like an append log storage, the best example is the blockchain storage, that benefit if BlobDB is used for them, since the write amplification is highly reduced, with the result of faster initial sync and less wear out of SSD.
Enabling BlobDB for a column family does not make the db incompatible with a previous version of Besu, however before downgrading Besu you need to run the subcommand
storage revert-variables
to revert changes done in PR #5471Preliminary test shows that checkpoint sync is faster with BlobDB enabled, more tests are ongoing, and will share the results later.
Fixed Issue(s)
fixes #4607