Skip to content

Self-Driving Database Management System from Carnegie Mellon University

License

Notifications You must be signed in to change notification settings

arvindsaik/noisepage

 
 

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

Releases

No releases published

Packages

No packages published

Languages

  • C++ 84.0%
  • Java 10.8%
  • Python 3.1%
  • Smarty 0.9%
  • CMake 0.8%
  • C 0.2%
  • Other 0.2%