NoisePage is a relational database management system (DBMS) designed from the ground up for autonomous deployment. It uses integrated machine learning components to control its configuration, optimization, and tuning. The system will support automated physical database design (e.g., indexes, materialized views, sharding), knob configuration tuning, SQL tuning, and hardware capacity/scaling. Our research focuses on building the system components that support such self-driving operation with little to no human guidance. We seek to create a system that not only able to optimize the current workload, but also to predict future workload trends and prepare itself accordingly.

The goal of the NoisePage project is to build a self-driving DBMS that will continue to operate on its own long after you are dead.

Our plan is for NoisePage to support the most common database tuning techniques without requiring humans to determine the right way and proper time to deploy them. It will also enable new optimizations that are important for modern high-performance DBMSs, but which are not possible today because the complexity of managing these systems has surpassed human experts' abilities.

This project is developed by students in the Carnegie Mellon Database Research Group. Additional information about the DBMS's architecture is covered in CMU 15-721 - Advanced Database Systems and 15-799 - Special Topics: Self-Driving Databases courses.

key features

Postgres compatible wire-protocol, SQL, and catalogs.
Apache Arrow compatible columnar storage.
Concurrency Control
Lock-free multi-version concurrency control.
Query Completion
Just-in-time query compilation using the LLVM.
Vectorized execution using relaxed-operator fusion (ROF).
Integrated machine learning components to support autonomous optimizations.
Bw Tree
Lock-free Bw-Tree indexes.
Open Source
100% Open-Source (MIT License)