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](https://db.cs.cmu.edu).

History

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

Query Interface

SQL

Concurrency Control

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

Transactions generate redo records in thread-local memory.

Isolation Levels

Snapshot Isolation

Query Execution

Vectorized Model

Stored Procedures

Supported

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.

Storage Architecture

In-Memory

Data Model

Relational

System Architecture

Shared-Everything

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.

Storage Organization

Heaps

Parallel Execution

Intra-Operator (Horizontal)

Storage Format

Apache Arrow

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

Former Name

Peloton

Developer

Carnegie Mellon University

Country of Origin

US

Start Year

2018

Project Type

Academic, Open Source

Written in

C++

Inspired By

HyPer

Compatible With

PostgreSQL

Operating Systems

Linux, OS X

Licenses

MIT