Skip to content

Requirements: Ubuntu and similar distros

Kinan Dak Albab edited this page Apr 26, 2023 · 2 revisions

If you do not wish to use the docker container. You can install our requirements yourself using your favorite package manager. We built k9db on ubuntu 20 and 22, but similar systems should also work.

Core requirements:

  1. GCC-11 (e.g. apt-get install gcc-11 g++-11).
  2. openjdk-11 (e.g. apt-get install openjdk-11-jdk).
  3. rustc and cargo 1.56.0.
  4. bazel-4.0.0 https://docs.bazel.build/versions/4.0.0/install.html.
  5. libffi-dev, libssl-dev, zlib1g-dev, libncurses5-dev.
  6. cargo-raze (e.g. cargo install cargo-raze).
  7. A MySQL command line client to connect and interact with k9db after running it. We recommend using mariadb-client-10.6.

After installing these requirements, ensure that they are the default binaries on your system.

You will need to run cargo raze once to fetch the rust dependencies from cargo and turn them to bazel dependencies.

mkdir -p /tmp/cargo-raze/doesnt/exist/  # may be needed for some versions of raze.
cd <K9DB_DIR>/k9db/proxy && cargo raze
cd <K9DB_DIR>/experiments/lobsters && cargo raze
cd <K9DB_DIR>/experiments/ownCloud && cargo raze
cd <K9DB_DIR>/experiments/vote && cargo raze

The following are not required to build or run K9DB. But they may be required to run some of our experiments from the paper including the baselines.

  1. MariaDB server with MyRocks (mariadb-server-10.6 mariadb-plugin-rocksdb).
  2. MariaDB C++ connector (libmariadb3 libmariadb-dev).
  3. flex, bison, libevent-dev.

After installing MariaDB server, you will need to configure it once to load the MyRocks extension. You can do so using:

mariadb -u root
> # Now connected to mariadb server.
> CREATE USER 'k9db'@'%' IDENTIFIED BY 'password';
> GRANT ALL PRIVILEGES ON *.* TO 'k9db'@'%' IDENTIFIED BY 'password';
> FLUSH PRIVILEGES;
> INSTALL SONAME 'ha_rocksdb';