• This repository has been archived on 20/Feb/2023
  • Stars
    star
    1,735
  • Rank 26,204 (Top 0.6 %)
  • Language
    C++
  • License
    MIT License
  • Created almost 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Self-Driving Database Management System from Carnegie Mellon University
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. 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

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!

More Repositories

1

bustub

The BusTub Relational Database Management System (Educational)
C++
3,755
star
2

peloton

The Self-Driving Database Management System
C++
2,026
star
3

ottertune

The automatic DBMS configuration tool
Python
1,202
star
4

15445-bootcamp

A basic introduction to coding in modern C++.
C++
601
star
5

dbdb.io

The On-line Database of Databases
Python
465
star
6

benchbase

Multi-DBMS SQL Benchmarking Framework via JDBC
Java
400
star
7

optd

CMU-DB's Cascades optimizer framework
Rust
324
star
8

mongodb-d4

Automatic MongoDB database designer
Python
54
star
9

cmdbac

CMDBAC - Carnegie Mellon Database Application Catalog
Python
35
star
10

libfixeypointy

Fixed-Point Decimal Library from Carnegie Mellon University
C++
32
star
11

noisepage-stats

DBMS Performance & Correctness Testing Framework
Python
30
star
12

peloton-design

Peloton Design Docs
27
star
13

peloton-test

SQL Testing Framework for the Peloton DBMS
Java
20
star
14

pgextmgrext

A Postgres Extension to Manage Extensions! (As well as some random stuff)
Rust
13
star
15

15721-s24-cache1

15-721 Spring 2024 - Cache #1
Rust
12
star
16

noisepage-pilot

Because "pilot" was a better name than "brain"
Jupyter Notebook
8
star
17

dbgym

Python
7
star
18

15721-s24-scheduler1

15-721 Spring 2024 - Scheduler #1
Rust
5
star
19

noisepage-control

NoisePage Autonomous Control Plane Infrastructure
4
star
20

terrier-dashboard

JavaScript
4
star
21

noisepage-forecast

Python
4
star
22

pgext-analyzer

PostgreSQL Extensions Analyzer
C++
2
star
23

15721-s24-cache2

15-721 Spring 2024 - Cache #2
Rust
1
star
24

15721-s24-catalog2

15-721 Spring 2024 - Catalog #2
Rust
1
star
25

benchpress

Benchpress Demo (SIGMOD 2015)
JavaScript
1
star
26

noisepage-testfiles

Test Files & Data Sets for NoisePage DBMS Project
TSQL
1
star
27

15721-s24-scheduler2

Rust
1
star