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
5319: Optimize virtual node cache flush strategy #5568
5319: Optimize virtual node cache flush strategy #5568
Conversation
Signed-off-by: Artem Ananev <artem.ananev@swirldslabs.com>
Signed-off-by: Artem Ananev <artem.ananev@swirldslabs.com>
platform-sdk/swirlds-virtualmap/src/main/java/com/swirlds/virtualmap/VirtualMapSettings.java
Show resolved
Hide resolved
...dk/swirlds-virtualmap/src/main/java/com/swirlds/virtualmap/datasource/VirtualDataSource.java
Outdated
Show resolved
Hide resolved
...irlds-virtualmap/src/main/java/com/swirlds/virtualmap/internal/pipeline/VirtualPipeline.java
Outdated
Show resolved
Hide resolved
...irlds-virtualmap/src/main/java/com/swirlds/virtualmap/internal/pipeline/VirtualPipeline.java
Show resolved
Hide resolved
…overflow during merges Signed-off-by: Artem Ananev <artem.ananev@swirldslabs.com>
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.
👍 from a platform-base
perspective
platform-sdk/swirlds-benchmarks/src/jmh/java/com/swirlds/benchmark/CryptoBench.java
Show resolved
Hide resolved
...irlds-virtualmap/src/main/java/com/swirlds/virtualmap/internal/pipeline/VirtualPipeline.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Artem Ananev <artem.ananev@swirldslabs.com>
Signed-off-by: Artem Ananev <artem.ananev@swirldslabs.com>
Signed-off-by: Artem Ananev <artem.ananev@swirldslabs.com>
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.
The following classes must override getTypicalSerializedSize()
in services:
UniqueTokenMerkleDbValueSerializer
VirtualBlobMerkleDbValueSerializer
OnDiskAccountMerkleDbValueSerializer
IterableContractMerkleDbValueSerializer
@OlegMazurov It can't be done yet, as a part of this PR. In the current version of the platform used by HS, there is no |
I couldn't build |
A follow-up issue is filed to implement |
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.
Approving the hashgraph owned file changes.
Signed-off-by: Artem Ananev <artem.ananev@swirldslabs.com>
22de0d7
Signed-off-by: Artem Ananev <artem.ananev@swirldslabs.com>
Kudos, SonarCloud Quality Gate passed! |
SonarCloud Quality Gate failed. |
Fixes: #5319 Reviewed-by: Ivan Malygin <ivan@swirldslabs.com>, Kelly Greco <kelly@swirldslabs.com>, Oleg Mazurov <oleg.mazurov@swirldslabs.com> Signed-off-by: Artem Ananev <artem.ananev@swirldslabs.com>
The fix for #5319. Summary of changes:
VirtualRoot
, getEstimatedSize(), which is used by virtual pipeline to estimate how much memory a virtual root (mostly, its node cache) consumesVirtualPipeline
is changed to flush based on virtual root size rather than fast copy version. The main hash/merge/flush lifecycle job is simplified a bit. It still handles both explicitly requested to flush copies and copies, which should be flushed because they are too largeTesting:
Fixes: #5319
Signed-off-by: Artem Ananev artem.ananev@swirldslabs.com