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.
Support for outer joins in optimizer side. Addition of cost model oblivious optimizations, namely: constant folding/propagation, transitive predicates propagation and trivial predicate elimination.
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 LearningStudents: Saatvik Shah, Weichen Li
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.
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.
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.