-
Notifications
You must be signed in to change notification settings - Fork 7
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
Initial nested cache Context StateDB implementation #33
Conversation
Benchmarks are quite a bit slower -- I assume some of those now hit keeper methods instead of appending to journal/adding a map entry? My guess is some of those benchmarks become a little closer if the time taken in Commit is considered. Could we design a benchmark that snapshots at various depths (maybe 10, 1000, 10000) with some changes at each and calls Commit at end? Be useful to get a better measure of performance penalty of nested cache contexts |
A lot slower at high number of layers with this benchmark: ethermint/x/evm/statedb/benchmark_test.go Lines 39 to 66 in cf42160
Benchmark takes forever to run since the setup with paused bench timer is much longer than the actual timed
|
a184788
to
8644185
Compare
3f86ef4
to
0d45d11
Compare
removed from golangci-lint in v1.49.0
0d45d11
to
9988fb9
Compare
LGTM |
…avl 1.0" This reverts commit b439e9b.
Previous to this change, keeper SetState() only deletes when the len(value) == 0. However, since value in the StateDB is a common.Hash{}, this will always be the HashLength. Deleting the value when the empty hash is set will also ensure specific no-op changes will not be committed, e.g. Creating a state, then deleting it in the same tx will result in no state added.
7b89733
to
29a4996
Compare
Description
This will be later moved to the Kava repo when it's fully de-coupled from x/evm
Benchmarks