nimbus-eth1/nimbus/db/kvt
Jordan Hrycaj 6d132811ba
Core db update providing additional results code interface (#1776)
* Split `core_db/base.nim` into several sources

* Rename `core_db/legacy.nim` => `core_db/legacy_db.nim`

* Update `CoreDb` API, dual methods returning `Result[]` or plain value

detail:
  Plain value methods implemet the legacy API, they defect on error results

* Redesign `CoreDB` direct backend access

why:
  Made the `backend` directive integral part of the API

* Discontinue providing unused or otherwise available functions

details:
+ setTransactionID() removed, not used and not easily replicable in Aristo
+ maybeGet() removed, available via direct backend access
+ newPhk() removed, never used & was experimental anyway

* Update/reorg backend API

why:
+ Added error print function `$$()`
+ General descriptor completion (and optional validation) via `bless()`

* Update `Aristo`/`Kvt` exception handling

why:
  Avoid `CatchableError` exceptions, rather pass them as error code where
  appropriate.

* More `CoreDB` compliant `Aristo` and `Kvt` methods

details:
+ Providing functions like `contains()`, `getVtxRc()` (returns `Result[]`).
+ Additional error code: `NotImplemented`

* Rewrite/reorg of Aristo DB constructor

why:
  Previously used global object `DefaultQidLayoutRef` as default
  initialiser. This object was created at compile time which lead to
  non-gc safe functions.

* Update nimbus/db/core_db/legacy_db.nim

Co-authored-by: Kim De Mey <kim.demey@gmail.com>

* Update nimbus/db/aristo/aristo_transcode.nim

Co-authored-by: Kim De Mey <kim.demey@gmail.com>

* Update nimbus/db/core_db/legacy_db.nim

Co-authored-by: Kim De Mey <kim.demey@gmail.com>

---------

Co-authored-by: Kim De Mey <kim.demey@gmail.com>
2023-09-26 10:21:13 +01:00
..
kvt_desc Core db aristo and kvt updates preparing for integration (#1760) 2023-09-18 21:20:28 +01:00
kvt_init Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
kvt_walk Core db aristo and kvt updates preparing for integration (#1760) 2023-09-18 21:20:28 +01:00
kvt_constants.nim Simple stupid key-value table companion for Aristo DB (#1746) 2023-09-12 19:44:45 +01:00
kvt_desc.nim Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
kvt_init.nim Simple stupid key-value table companion for Aristo DB (#1746) 2023-09-12 19:44:45 +01:00
kvt_persistent.nim Simple stupid key-value table companion for Aristo DB (#1746) 2023-09-12 19:44:45 +01:00
kvt_tx.nim Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
kvt_utils.nim Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
kvt_walk.nim Simple stupid key-value table companion for Aristo DB (#1746) 2023-09-12 19:44:45 +01:00