Elektra  0.8.15
Bootstrap

Issue

Currently the default backend (default.ecf) will also be used for bootstrapping. There are two problems with this approach:

  1. Thus the default backend will first will be read with parentKey system/elektra and later with parentKey system, it needs to store absolute paths and thus won't work with the current INI plugin
  2. When system is large without mountpoints, everything is reread twice during bootstrapping.

Constraints

Assumptions

Considered Alternatives

Decision

Split up the concepts of default (default.ecf) and bootstrap (elektra.ecf) backend. During bootstrap only elektra.ecf is read. The default backend reading default.ecf is only relevant as long as no root backend is mounted.

Algorithm:

  1. try to get system/elektra using the file elektra.ecf (KDB_DB_INIT)
  2. if it works, mount the init backend to system/elektra (non-fallback mode)
  3. if it fails (== 0 or == -1), try default.ecf as fallback
  4. if the fallback works (i.e. keys are present in system/elektra), mount the default backend to system/elektra (fallback mode)

Argument

Implications

Related decisions

Notes

to upgrade to new system, either: