Skip to content

Hacker0912/quickstep-datalog

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apache Quickstep (RecStep Backend)

The repo is forked from the original Quickstep github repo. The code has been specificically modified to serve as the backend of RecStep, a state-of-the-art Datalog engine built on top of an in-memory relational database system (namely Quickstep).

Set-up Instructions

NOTE: The following set-up steps have been specifically tested on Ubuntu 18.04.1 LTS. And thus we recommend using Ubuntu 18.04.1 LTS as your testbed OS if you want to play with RecStep. It should also be feasible to set-up the RecStep backend on Ubuntu of other versions (e.g., 14.04, 16.04), but it may take a little bit more extra efforts as configuring the corresponding dependencies as required in Ubuntu of different versions might be slighly different.

1. Checkout the code:

git clone https://github.com/Hacker0912/quickstep-datalog
cd quickstep-datalog

2. Checkout the datalog branch:

git checkout recstep

Before conituning the set-up, we need to first check/resolve the dependency issues if there are any. You may have already installed the needed dependencies (e.g., tools, packages, libraries, etc), but we still provide the explicit instructions of installing the important dependencies just for convenience and easiness. We also recommend sticking strictly to the versions of these dependencies as we specified to avoid unnecessary headaches caused by possible incompatibility issues of different versions.

3. Check/Resolve potential dependency issues: Download the package lists from the repositories, updating to get information on the newest versions of packages and dependencies.

sudo apt-get update -y  

3.2. Install clang-5.0 and clang++-5.0 and set the environment variables for later use:

sudo apt-get install -y clang-5.0
sudo apt-get install -y clang++-5.0
export CXX=/usr/bin/clang++-5.0
export CC=/usr/bin/clang-5.0

Note: clang and clang++ of higher versions are also likely to work.

3.3. Install CMake 3.10.2 and check the version after:

sudo apt-get install -y cmake
cmake --version

Note: Cmake of higher versions is also likely to work.

3.4. Install GRPC from the corresponding Github Repo:

  • Check out the repo:
    git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc

Note: (curl -L https://grpc.io/release) at the time of testing returns value v1.28.1

  • Go to the code directory, and then compile and install grpc
    cd grpc 
    git submodule update --init 
    sudo make -j<N>  
    sudo make install 

Note: you may replace <N> with the number of cores on the machine

  • Install the protobuf
    cd third_party/protobuf 
    sudo make install

After confirming that we are good with all the dependencies, we can then continue to compile and build Quickstep from the source code.

4. Go back to the quickstep-datalog directory:

cd ../../../

5. Initialize & Checkout the dependencies:

git submodule init
git submodule update

6. Download additional third-party dependencies and apply patches:

cd third_party && ./download_and_patch_prerequisites.sh && cd ../

7. Compile and build

cd build
cmake -D CMAKE_C_COMPILER=$CC CMAKE_CXX_COMPILER=$CXX CMAKE_BUILD_TYPE=Release -D ENABLE_NETWORK_CLI=True ..
make -j<N> quickstep_cli_shell quickstep_client

Note: you may replace <N> with the number of cores on the machine

About

Mirror of Apache Quickstep Incubator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 92.4%
  • CMake 6.7%
  • Other 0.9%