LingoDB is a new analytical database system that blurs the lines between databases and compilers.
We provide a Dockerfile that can be used to build and experiment with LingoDB. For a simple build, just execute this command in the repository. Note that no submodules need to be checked out.
make build-docker
If you just want to see results for the TPC-H queries just run this command. Note that docker comes with a slight runtime overhead (passing --privileged
helps a bit).
make reproduce
- Ensure you have a machine with sufficient compute power and space (16 GiB RAM, >16 GiB disk space, preferably many cores).
- Initialize submodules:
git submodule update --init --recursive
- Install (system) dependencies:
- Ubuntu:
libjemalloc-dev libboost-dev libboost-filesystem-dev libboost-system-dev libboost-regex-dev python-dev autoconf flex bison
- Fedora:
autoconf cmake ninja jemalloc-devel boost-devel boost-filesystem boost-system python3-devel flex bison lcov
- Ubuntu:
- Setup a Python virtual environment and install dependencies:
python3 -m venv venv . venv/bin/activate pip install -r torch-mlir/requirements.txt pip install requests Cython moz_sql_parser numpy pandas pyarrow
- Build dependencies:
make dependencies
(this builds LLVM/MLIR/Clang, Arrow and PyArrow) - Build & test:
make run-test
(this compiles in debug mode; incremental builds are supported) - Run TPC-H (SF=1) benchmarks:
make run-benchmark
(this generates TPC-H data and compiles in release mode; incremental builds are supported)