nimbus-eth1/nimbus
Jacek Sieka 81e75622cf
storage: store root id together with vid, for better locality of refe… (#2449)
The state and account MPT:s currenty share key space in the database
based on that vertex id:s are assigned essentially randomly, which means
that when two adjacent slot values from the same contract are accessed,
they might reside at large distance from each other.

Here, we prefix each vertex id by its root causing them to be sorted
together thus bringing all data belonging to a particular contract
closer together - the same effect also happens for the main state MPT
whose nodes now end up clustered together more tightly.

In the future, the prefix given to the storage keys can also be used to
perform range operations such as reading all the storage at once and/or
deleting an account with a batch operation.

Notably, parts of the API already supported this rooting concept while
parts didn't - this PR makes the API consistent by always working with a
root+vid.
2024-07-04 15:46:52 +02:00
..
beacon Bump web3/kzg4844/nimbus-eth2 and related fixes (#2446) 2024-07-04 05:41:32 +00:00
common Simplify txpool baseFeeGet (#2416) 2024-06-27 12:54:36 +07:00
core Bump web3/kzg4844/nimbus-eth2 and related fixes (#2446) 2024-07-04 05:41:32 +00:00
db storage: store root id together with vid, for better locality of refe… (#2449) 2024-07-04 15:46:52 +02:00
evm Remove unused StructLog (#2447) 2024-07-04 19:23:53 +07:00
graphql Use simpler schema when writing transactions, receipts, and withdrawals (#2420) 2024-06-29 12:43:17 +07:00
rpc Use simpler schema when writing transactions, receipts, and withdrawals (#2420) 2024-06-29 12:43:17 +07:00
stateless Cleanup stateless and block witness code. (#2295) 2024-06-08 15:05:00 +07:00
sync use Nim 2.0.6 (#2384) 2024-06-19 01:27:54 +00:00
transaction Cache code and invalid jump destination tables (fixes #2268) (#2404) 2024-06-21 09:44:10 +02:00
utils Cache code and invalid jump destination tables (fixes #2268) (#2404) 2024-06-21 09:44:10 +02:00
TODO-TRACER.md Aristo uses pre classified tree types (#2385) 2024-06-18 11:14:02 +00:00
common.nim implement better hardfork management 2022-12-02 13:51:42 +07:00
compile_info.nim Remove EVM indirect imports and unused EVM errors (#2370) 2024-06-17 09:56:39 +02:00
config.nim metrics: enable during import (#2401) 2024-06-20 19:06:58 +02:00
constants.nim Bump nim-eth, nim-web3, nimbus-eth2 (#2344) 2024-06-14 14:31:08 +07:00
errors.nim Remove EVM indirect imports and unused EVM errors (#2370) 2024-06-17 09:56:39 +02:00
launcher.nim Add check copyright year linter to CI 2023-11-01 10:41:20 +07:00
makefile Snap sync fix trie interpolation fringe condition (#1457) 2023-02-01 18:56:06 +00:00
nim.cfg import: read from era files (#2254) 2024-05-31 09:13:56 +02:00
nimbus.nim metrics: enable during import (#2401) 2024-06-20 19:06:58 +02:00
nimbus_desc.nim rm full sync (#2324) 2024-06-08 07:41:44 +07:00
nimbus_import.nim avoid closure environment for mpt methods (#2408) 2024-06-24 07:56:41 +02:00
no-tracer.nim Coredb maintenance (#2398) 2024-06-19 14:13:12 +00:00
rpc.nim Aristo uses pre classified tree types (#2385) 2024-06-18 11:14:02 +00:00
transaction.nim Remove EVM indirect imports and unused EVM errors (#2370) 2024-06-17 09:56:39 +02:00
version.nim Add startup banner (#2354) 2024-06-14 10:08:44 +02:00