Skip to content

Self-Driving Database Management System from Carnegie Mellon University

License

Notifications You must be signed in to change notification settings

JackZheng12/noisepage

This branch is 169 commits behind cmu-db/noisepage:master.

Folders and files

NameName
Last commit message
Last commit date
Nov 10, 2020
Oct 24, 2020
Nov 20, 2020
Oct 30, 2020
Oct 28, 2020
Nov 12, 2020
Oct 23, 2020
Nov 19, 2020
Nov 20, 2020
Nov 20, 2020
Oct 23, 2020
Nov 20, 2020
Jul 24, 2018
Sep 17, 2019
Jul 8, 2020
Jul 31, 2018
Nov 12, 2020
Jul 16, 2020
Nov 9, 2020
Oct 28, 2020
Nov 18, 2020
Nov 5, 2020
Jul 9, 2018
Oct 24, 2020

Repository files navigation

NoisePage Logo

Jenkins Status codecov

NoisePage is a relational database management system developed by the Carnegie Mellon Database Group. The research goal of the NoisePage project is to develop high-performance system components that support autonomous operation and optimization as a first-class design principle.

Key Features

  • Integrated machine learning components to forecast, model, and plan the system's behavior.
  • Postgres compatible wire-protocol, SQL, and catalogs.
  • Apache Arrow compatible in-memory columnar storage.
  • Lock-free multi-version concurrency control.
  • Just-in-time query compilation using the LLVM.
  • Vectorized execution using relaxed-operator fusion (ROF).
  • 100% Open-Source (MIT License)

Quickstart

The NoisePage project is built and tested on Ubuntu 20.04 or macOS 10.14+. No other environments are officially supported.

git clone https://github.com/cmu-db/noisepage.git
cd noisepage
sudo ./script/installation/packages.sh
mkdir build
cd build
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DNOISEPAGE_USE_JEMALLOC=ON -DNOISEPAGE_UNITY_BUILD=ON ..
ninja noisepage
./bin/noisepage

If you are on a Mac, you may need to add this to your .zshrc:

export PATH="/usr/local/opt/llvm@8/bin:$PATH"
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/libpqxx/lib/
export CC=/usr/local/Cellar/llvm@8/8.0.1_3/bin/clang
export CXX=/usr/local/Cellar/llvm@8/8.0.1_3/bin/clang++
export LLVM_DIR=/usr/local/Cellar/llvm@8/8.0.1_3
export ASAN_OPTIONS=detect_container_overflow=0

You can now connect to NoisePage over the Postgres client psql.

psql -h localhost -U noisepage -p 15721

Additional Notes:

  • If you have less than 16 GB of RAM, use -DNOISEPAGE_UNITY_BUILD=OFF in the cmake commands above.
  • If you know what you're doing, install the prerequisite packages from ./script/installation/packages.sh manually.

For Developers

Please see the docs.

Contributing

If you are a current student at CMU,

Contributions from non-CMU students are also welcome!

About

Self-Driving Database Management System from Carnegie Mellon University

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 84.4%
  • Java 10.7%
  • Python 2.8%
  • Smarty 0.9%
  • CMake 0.8%
  • C 0.2%
  • Other 0.2%