Usage in JULEA

When the build finishes you'll find a libobject_betree.so in the target directory, either under Release or Debug depending on your build (Debug is default, so check there when you are unsure).

With the built library, we can switch to JULEA to integrate our results into their configuration. If you have not setup JULEA have a look at their documentation. Continue their documentation until you configure JULEA with julea-config, then this documentation will use a modified procedure.

Configure JULEA

For JULEA to use betree_storage_stack as its backend (for object storage) we have to set the appropriate flags for julea-config. The example below uses the user instance of haura as used in bectl documentation.

julea-config --user \
  --object-servers="$(hostname)" --kv-servers="$(hostname)" --db-servers="$(hostname)" \
  --object-backend=betree --object-path="$HOME/.config/haura.json" \
  --kv-backend=lmdb --kv-path="/tmp/julea-$(id -u)/lmdb" \
  --db-backend=sqlite --db-path="/tmp/julea-$(id -u)/sqlite"

Prepare the library

JULEA can't find the library in its current position as it is located in the build directory of Haura. For debugging purposes we can simply copy the produced libobject_haura.so to the JULEA backend directory.

TODO


How JULEA loads backend and where is still work in progress and likely to change in the future. This documentation holds for the current progress that has been made but only in the Debug build of JULEA.

To copy the library to JULEA with the loaded JULEA environment run:

# The change between underscore and hyphen is not a typo but a mismatch
# between allowed names in cargo and expected names in JULEA.
$ cp target/debug/libobject_betree.so $JULEA_BACKEND_PATH/libobject-betree.so

Start JULEA

To start JULEA, navigate back to it's directory and run

$ ./scripts/setup.sh start

To check if everything worked check your logs best with

$ journalctl -e GLIB_DOMAIN=JULEA

On success this should look like this (some details will look different on your machine):

Apr 10 11:46:31 nicomedia julea-server[15742]: Loaded object backend betree.
Apr 10 11:46:32 nicomedia julea-server[15742]: Initialized object backend betree.
Apr 10 11:46:32 nicomedia julea-server[15742]: Loaded kv backend lmdb.
Apr 10 11:46:32 nicomedia julea-server[15742]: Initialized kv backend lmdb.
Apr 10 11:46:32 nicomedia julea-server[15742]: Loaded db backend sqlite.
Apr 10 11:46:32 nicomedia julea-server[15742]: Initialized db backend sqlite.

If everything worked fine so far you can run the JULEA test suite with

$ ./scripts/test.sh

A number of tests are executed then and reports on failures will be generated for you.