The chainstate caches are currently re-balanced on startup even in the non-assumeutxo case, leading to the database being needlessly re-opened and its cache re-allocated.
Similar to InitCoinsCache
and m_coinstip_cache_size_bytes
, the m_coinsdb_cache_size_bytes
should be set in InitCoinsDB
.
Together with only conservatively setting the cache values when a assumeutxo chainstate is present, this allows for skipping the cache re-balance during initialization in the normal non-assumeutxo case.
Before:
02024-10-09T21:22:17Z Checking all blk files are present...
12024-10-09T21:22:17Z Initializing chainstate Chainstate [ibd] @ height -1 (null)
22024-10-09T21:22:17Z Opening LevelDB in /home/drgrid/.bitcoin/signet/chainstate
32024-10-09T21:22:17Z Opened LevelDB successfully
42024-10-09T21:22:17Z Using obfuscation key for /home/drgrid/.bitcoin/signet/chainstate: b0a6f4e95fd05c92
52024-10-09T21:22:17Z Loaded best chain: hashBestChain=0000000e119967d4937dad58456885ae43fb1761db686947e2f8e168c9a39a4f height=216852 date=2024-10-09T21:06:16Z progress=0.999989
62024-10-09T21:22:17Z Opening LevelDB in /home/drgrid/.bitcoin/signet/chainstate
72024-10-09T21:22:17Z Opened LevelDB successfully
82024-10-09T21:22:17Z Using obfuscation key for /home/drgrid/.bitcoin/signet/chainstate: b0a6f4e95fd05c92
92024-10-09T21:22:17Z [Chainstate [ibd] @ height 216852 (0000000e119967d4937dad58456885ae43fb1761db686947e2f8e168c9a39a4f)] resized coinsdb cache to 8.0 MiB
102024-10-09T21:22:17Z [Chainstate [ibd] @ height 216852 (0000000e119967d4937dad58456885ae43fb1761db686947e2f8e168c9a39a4f)] resized coinstip cache to 440.0 MiB
112024-10-09T21:22:17Z init message: Verifying blocks…
After:
02024-10-09T21:21:37Z Checking all blk files are present...
12024-10-09T21:21:37Z Initializing chainstate Chainstate [ibd] @ height -1 (null)
22024-10-09T21:21:37Z Opening LevelDB in /home/drgrid/.bitcoin/signet/chainstate
32024-10-09T21:21:37Z Opened LevelDB successfully
42024-10-09T21:21:37Z Using obfuscation key for /home/drgrid/.bitcoin/signet/chainstate: b0a6f4e95fd05c92
52024-10-09T21:21:37Z Loaded best chain: hashBestChain=0000012c12b48011a7d9150ce96ed6a44bbf32b09eeecaff4a667789dda2a566 height=216850 date=2024-10-09T20:37:05Z progress=0.999971
62024-10-09T21:21:37Z init message: Verifying blocks…
The change may also be verified by looking at the feature_assumeutxo.py
functional test debug logs.