nimbus-eth1/nimbus/db/aristo/aristo_desc
Jordan Hrycaj ce713d95fc
Aristo lazily delete larger subtrees (#2560)
* Extract sub-tree deletion functions into separate sub-modules

* Move/rename `aristo_desc.accLruSize` => `aristo_constants.ACC_LRU_SIZE`

* Lazily delete sub-trees

why:
  This gives some control of the memory used to keep the deleted vertices
  in the cached layers. For larger sub-trees, keys and vertices might be
  on the persistent backend to a large extend. This would pull an amount
  of extra information from the backend into the cached layer.

  For lazy deleting it is enough to remember sub-trees by a small set of
  (at most 16) sub-roots to be processed when storing persistent data.
  Marking the tree root deleted immediately allows to let most of the code
  base work as before.

* Comments and cosmetics

* No need to import all for `Aristo` here

* Kludge to make `chronicle` usage in sub-modules work with `fluffy`

why:
  That `fluffy` would not run with any logging in `core_deb` is a problem
  I have known for a while. Up to now, logging was only used for debugging.

  With the current `Aristo` PR, there are cases where logging might be
  wanted but this works only if `chronicles` runs without the
  `json[dynamic]` sinks.

  So this should be re-visited.

* More of a kludge
2024-08-14 08:54:44 +00:00
..
desc_backend.nim storage: store root id together with vid, for better locality of refe… (#2449) 2024-07-04 15:46:52 +02:00
desc_error.nim Added portal proof nodes generation functionality (#2539) 2024-08-06 11:29:26 +00:00
desc_identifiers.nim Hash bump 2024-08-08 07:46:35 +02:00
desc_nibbles.nim merge: avoid hike allocations (#2472) 2024-07-11 13:26:46 +02:00
desc_structural.nim Aristo lazily delete larger subtrees (#2560) 2024-08-14 08:54:44 +00:00