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.

Concurrency Control

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

Transactions generate redo records in thread-local memory.

Data Model

Relational

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.

Isolation Levels

Snapshot Isolation

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.

Query Execution

Vectorized Model

Query Interface

SQL

Storage Architecture

In-Memory

Storage Format

Apache Arrow

Storage Organization

Heaps

Stored Procedures

Supported

System Architecture

Shared-Everything

People Also Viewed

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

Twitter

@NoisePageDB

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

People Also Viewed