Elektra  0.9.3
Bootstrap

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

  1. Thus the default backend 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 mount points, everything is reread twice during bootstrapping.

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)

to upgrade to new system, either: