nimbus-eth1/nimbus/db/core_db
Jacek Sieka d39c589ec3
lru cache updates (#2590)
* replace rocksdb row cache with larger rdb lru caches - these serve the
same purpose but are more efficient because they skips serialization,
locking and rocksdb layering
* don't append fresh items to cache - this has the effect of evicting
the existing items and replacing them with low-value entries that might
never be read - during write-heavy periods of processing, the
newly-added entries were evicted during the store loop
* allow tuning rdb lru size at runtime
* add (hidden) option to print lru stats at exit (replacing the
compile-time flag)

pre:
```
INF 2024-09-03 15:07:01.136+02:00 Imported blocks
blockNumber=20012001 blocks=12000 importedSlot=9216851 txs=1837042
mgas=181911.265 bps=11.675 tps=1870.397 mgps=176.819 avgBps=10.288
avgTps=1574.889 avgMGps=155.952 elapsed=19m26s458ms
```

post:
```
INF 2024-09-03 13:54:26.730+02:00 Imported blocks
blockNumber=20012001 blocks=12000 importedSlot=9216851 txs=1837042
mgas=181911.265 bps=11.637 tps=1864.384 mgps=176.250 avgBps=11.202
avgTps=1714.920 avgMGps=169.818 elapsed=17m51s211ms
```

9%:ish import perf improvement on similar mem usage :)
2024-09-05 11:18:32 +02:00
..
backend lru cache updates (#2590) 2024-09-05 11:18:32 +02:00
base Coredb and sync maintenance update (#2583) 2024-08-30 11:18:36 +00:00
README.md Core db reorg (#2444) 2024-07-03 15:50:27 +00:00
TODO.md Core db reorg (#2444) 2024-07-03 15:50:27 +00:00
base.nim Coredb fix kvt save only fringe condition (#2592) 2024-09-04 13:48:38 +00:00
base_iterators.nim Separate config for core db and ledger (#2479) 2024-07-12 13:12:25 +00:00
base_iterators_persistent.nim Separate config for core db and ledger (#2479) 2024-07-12 13:12:25 +00:00
core_apps.nim Wiring ForkedChainRef to other components (#2423) 2024-09-04 09:54:54 +00:00
memory_only.nim Separate config for core db and ledger (#2479) 2024-07-12 13:12:25 +00:00
persistent.nim Coeredb related clean up and maint fixes (#2360) 2024-06-14 11:19:48 +00:00

README.md

Core database

Layout of CoreDb descriptor objects

Objects dependence:

    CoreDbRef                           -- Base descriptor
     | | |
     | | +--- CoreDbCtxRef              -- Context descriptor
     | |       | | | |
     | |       | | | +--- CoreDbKvtRef  -- Key-value table
     | |       | | |
     | |       | | +----- CoreDbMptRef  -- Generic MPT
     | |       | |
     | |       | +------- CoreDbAccRef  -- Accounts database
     | |       |
	 | |       +--------- CoreDbTxRef   -- Transaction handle
     | |
     | +----- CoreDbCtxRef
     |         : : : :
     |
     +------- CoreDbCtxRef
               : : : :