NoisePage

NoisePage is an in-memory relational DBMS designed to support self-driving (i.e., autonomous) operation. It is developed by the Carnegie Mellon Database Group.

History

The CMU Database Group abandoned the Peloton project in 2018 and started building NoisePage from scratch.

Storage Organization

Heaps

Concurrency Control

Multi-version Concurrency Control (MVCC) Optimistic Concurrency Control (OCC)

Transactions generate redo records in thread-local memory.

Indexes

B+Tree Hash Table

NoisePage started with the Bw-Tree index from the Peloton project. In 2021, the Bw-Tree was replaced by a B+Tree as the default index data structure.

Stored Procedures

Supported

Isolation Levels

Snapshot Isolation

Query Execution

Vectorized Model

System Architecture

Shared-Everything

Storage Format

Apache Arrow

Query Interface

SQL

Data Model

Relational

Storage Architecture

In-Memory

Parallel Execution

Intra-Operator (Horizontal)

Query Compilation

Code Generation JIT Compilation Stored Procedure Compilation

NoisePage transforms query plans into a database-centric DSL called TPL ("terrier programming language"). The DBMS then compiles the TPL program into bytecodes that it can either interpret with its own VM or compile into machine code with LLVM.

NoisePage Logo
Website

https://noise.page/

Source Code

https://github.com/cmu-db/noisepage

Tech Docs

https://github.com/cmu-db/noisepage/tree/master/docs

Developer

Carnegie Mellon University

Country of Origin

US

Start Year

2018

Former Name

Peloton

Project Type

Academic, Open Source

Written in

C++

Inspired By

HyPer

Compatible With

PostgreSQL

Operating Systems

Linux, OS X

Licenses

MIT