TileGroup Compaction ★ Voted Best Project ★
Students: David Gershuni, Matt ButrovichRepository: 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.
Self-Driving Infrastructure
Students: Tianyu Li, Justin Wang, Tianyi ChenRepository: 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.
Query Optimization & Rewriting
Students: Guoquan Zhao, Pedro Paredes, Qiuwen KaiRepository: 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.
Database Compression
Students: Tao Dai, Bohan Zhang, Siyuan ShengRepository: 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.
Query Optimizer Cost Model
Students: Gustavo Angulo, Nathan AppelsonRepository: 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.
Index Tuning with Reinforcement Learning
Students: Saatvik Shah, Weichen LiRepository: 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.
Sequences
Students: Bowen Deng, Peixin Sun, Kangyan ZhouRepository: 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.
Schema Changes
Students: Shangjie Chen, Shaoxiong Zhang, Shilun DingRepository: 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.
Logging and Recovery
Students: Gandeevan Raghuraman, Anirudh Kanjani, Aaron TianRepository: https://github.com/cmu-db/peloton/pull/1348
Add support for physical write-ahead logging and recovery in Peloton.
Temporary Tables
Students: Yangjun Sheng, Yiming Luo, Yijia CuiRepository: 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.
Index Suggestion in Peloton
Students: Priyatham Bollimpalli, Vamshi Reddy Konagari, Sivaprasad SudhirRepository: 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.
Add/Drop Index
Students: Ziheng Liao, Rong Huang, Xingyu JinRepository: 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.
Pre-compiled Catalog Queries
Students: Tianxiong Wang, Ruogu Du, Ao ZengRepository: 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.