• This repository has been archived on 27/Sep/2019
  • Stars
    star
    2,031
  • Rank 22,790 (Top 0.5 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created almost 10 years ago
  • Updated over 5 years ago

Reviews

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

Repository Details

The Self-Driving Database Management System

Peloton Logo

GitHub license Version Travis Status Jenkins Status Coverage Status

UPDATE 2019-03-17

The Peloton project is dead. We have abandoned this repository and moved on to build a new DBMS. There are a several engineering techniques and designs that we learned from this first system on how to support autonomous operations that we are doing a much better job at implementing in the second system.

We will not accept pull requests for this repository. We will also not respond to questions or problems that you may have with running with this software.

We will announce the new system later in 2019.

What Is Peloton?

  • A self-driving SQL database management system.
  • Integrated artificial intelligence components that enable autonomous optimization.
  • Native support for byte-addressable non-volatile memory (NVM) storage technology.
  • Lock-free multi-version concurrency control to support real-time analytics.
  • Postgres network-protocol and JDBC compatible.
  • High-performance, lock-free Bw-Tree for indexing.
  • 100% Open-Source (Apache Software License v2.0).

What Problem Does Peloton Solve?

During last two decades, researchers and vendors have built advisory tools to assist database administrators in system tuning and physical design. This work is incomplete because they still require the final decisions on changes in the database, and are reactionary measures that fix problems after they occur.

A new architecture is needed for a truly β€œself-driving” database management system (DBMS) which is designed for autonomous operations. This is different than earlier attempts because all aspects of the system are controlled by an integrated planning component. In addition to optimizing the system for the current workload, it predicts future workload trends which lets the system prepare itself accordingly. This eliminates the requirement of a human to determine the right way, and reduces time taken to deploy the changes, optimizing the DBMS to provide high-performance. Auto-management of these systems has surpassed the abilities of human experts.

Peloton is a relational database management system designed for fully autonomous optimization of hybrid workloads. See the peloton wiki for more information.

Installation

Check out the installation instructions.

Supported Platforms

The Wiki also contains a list of supported platforms.

Development / Contributing

We invite you to help us build the future of self-driving DBMSs. Please look up the contributing guide for details.

Issues

Before reporting a problem, please check how to file an issue guide.

Status

Technology preview: currently unsupported, possibly due to incomplete functionality or unsuitability for production use.

Contributors

See the people page for the full listing of contributors.

License

Copyright (c) 2014-2018 CMU Database Group
Licensed under the Apache License.

More Repositories

1

bustub

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

noisepage

Self-Driving Database Management System from Carnegie Mellon University
C++
1,740
star
3

ottertune

The automatic DBMS configuration tool
Python
1,212
star
4

15445-bootcamp

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

dbdb.io

The On-line Database of Databases
Python
475
star
6

benchbase

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

optd

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

mongodb-d4

Automatic MongoDB database designer
Python
55
star
9

cmdbac

CMDBAC - Carnegie Mellon Database Application Catalog
Python
35
star
10

libfixeypointy

Fixed-Point Decimal Library from Carnegie Mellon University
C++
33
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
15
star
15

dbgym

An end-to-end research vehicle for studying self-driving DBMSs.
Python
12
star
16

15721-s24-cache1

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

noisepage-pilot

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

15721-s24-scheduler1

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

pgext-analyzer

PostgreSQL Extensions Analyzer
C++
5
star
20

noisepage-control

NoisePage Autonomous Control Plane Infrastructure
4
star
21

terrier-dashboard

JavaScript
4
star
22

noisepage-forecast

Python
4
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-catalog1

15-721 Spring 2024 - Catalog #1
HTML
1
star
28

15721-s24-scheduler2

Rust
1
star
29

optd-experimental

Extensible SQL Query Optimizer Service
1
star
30

15721-s24-ee2

15-721 Spring 2024 - Execution Engine #2
Rust
1
star