Project Showcase

[PRESENTATION] Tile Group Compaction

TileGroup Compaction  ★ Voted Best Project ★

Students: David Gershuni, Matt Butrovich
Repository: https://github.com/cmu-db/peloton/pull/1349

Enable the DBMS's garbage collector to free empty tile groups and reclaim their memory. It is able to merge sparsely occupied tile groups to save memory.

[PRESENTATION] Self-Driving Infrastructure

Self-Driving Infrastructure

Students: Tianyu Li, Justin Wang, Tianyi Chen
Repository: https://github.com/cmu-db/peloton/pull/1346

This project aims at implementing the self-driving infrastructure including a stats collection framework and the mechanism to synchronize the catalog between the Peloton engine and Peloton brain. Some use cases including memory stats, access stats, and query latency etc. are implemented and integrated into the framework.

[PRESENTATION] Query Optimizer & Rewriting

Query Optimization & Rewriting

Students: Guoquan Zhao, Pedro Paredes, Qiuwen Kai
Repository: https://github.com/cmu-db/peloton/pull/1340

Support for outer joins in optimizer side. Addition of cost model oblivious optimizations, namely: constant folding/propagation, transitive predicates propagation and trivial predicate elimination.

[PRESENTATION] Database Compression

Database Compression

Students: Tao Dai, Bohan Zhang, Siyuan Sheng
Repository: https://github.com/cmu-db/peloton/pull/1279

Added dictionary-based compression for tiles in Peloton with support executing SELECT queries directly on compressed data.

[PRESENTATION] Query Optimizer Cost Model

Query Optimizer Cost Model

Students: Gustavo Angulo, Nathan Appelson
Repository: https://github.com/cmu-db/peloton/pull/1344

Our project tackled improving the performance and evaluation of the optimizer and cost model. We built a standalone test framework that allows one to test the performance of the optimizer, and improved the cost model estimate for hash joins to better cost different plans.

[PRESENTATION] Index Tuning with Reinforcement Learning

Index Tuning with Reinforcement Learning

Students: Saatvik Shah, Weichen Li
Repository: https://github.com/cmu-db/peloton/pull/1338

This project works towards two goals: (1) completion of the Tensorflow backend for Peloton with workload forecasting examples and end-to-end testing (2) developing a reinforcement learning framework for online index configuration.

[PRESENTATION] Sequences

Sequences

Students: Bowen Deng, Peixin Sun, Kangyan Zhou
Repository: https://github.com/cmu-db/peloton/pull/1345

This project adds the implementation of Postgres-style sequence to Peloton. It supports nextval and currval functions with session-specific behaviors.

[PRESENTATION]

Schema Changes

Students: Shangjie Chen, Shaoxiong Zhang, Shilun Ding
Repository: https://github.com/cmu-db/peloton/pull/1341

This adds support for blocking schema changes for Add/Drop column, Rename column, and Alter column type. It includes test cases for ALTER TABLE and RENAME operations.

[PRESENTATION] Logging and Recovery

Logging and Recovery

Students: Gandeevan Raghuraman, Anirudh Kanjani, Aaron Tian
Repository: https://github.com/cmu-db/peloton/pull/1348

Add support for physical write-ahead logging and recovery in Peloton.

[PRESENTATION] Temporary Tables

Temporary Tables

Students: Yangjun Sheng, Yiming Luo, Yijia Cui
Repository: https://github.com/cmu-db/peloton/pull/1342

The project added temporary tables functionalities in peloton by integrating namespaces with the recently added schema feature in Peloton.

[PRESENTATION] Index Suggestion in Peloton

Index Suggestion in Peloton

Students: Priyatham Bollimpalli, Vamshi Reddy Konagari, Sivaprasad Sudhir
Repository: https://github.com/cmu-db/peloton/pull/1347

Suggest the best set of indexes for a given workload based on the optimizer cost model. A search based algorithm is used for this which is based on the AutoAdmin paper from Microsoft.

[PRESENTATION] Add/Drop Index

Add/Drop Index

Students: Ziheng Liao, Rong Huang, Xingyu Jin
Repository: https://github.com/cmu-db/peloton/pull/1343

We added support for add/drop index correctly in Peloton. We implemented both the lock-based version and lock-free version of add index, and enable support for PostgreSQL-style statement CREATE INDEX CONCURRENTLY in Peloton.

[PRESENTATION] Pre-compiled Catalog Queries

Pre-compiled Catalog Queries

Students: Tianxiong Wang, Ruogu Du, Ao Zeng
Repository: https://github.com/cmu-db/peloton/pull/1339

This project pre-compiles all catalog access methods with the LLVM engine, including catalog lookup, insert, update, and delete.