Course - Advanced Database Systems
- Course Introduction and History of Databases
- In-Memory Databases
- Multi-Version Concurrency Control (Design Decisions)
- Multi-Version Concurrency Control (Protocols)
- Multi-Version Concurrency Control (Garbage Collection)
- OLTP Indexes (B+Tree Data Structures)
- OLTP Indexes (Trie Data Structures)
- Storage Models, Data Layout, & System Catalogs
- Database Compression
- Recovery Protocols
- Networking Protocols
- Scheduling
- Query Execution & Processing
- Query Compilation
- Vectorized Execution
- Vectorization vs. Compilation
- Parallel Join Algorithms (Hashing)
- Parallel Join Algorithms (Sorting)
- Optimizer Implementation (Overview)
- Optimizer Implementation (Top-Down vs. Bottom-Up)
- Optimizer Implementation (Alternative Approaches)
- Cost Models
- Larger-than-Memory Databases
- Server-side Logic Execution
- Databases on New Hardware
Query Optimizer
Building a really good query optimizer and query execution system in a distributed database system is hard. It requires a number of sophisticated components including statistics, cardinality estimation, plan space search, the right storage structures, fast query execution operators, intelligent shuffle, both broadcast and point-to-point data transmission, and more.
15-721 Advanced Database Systems (Spring 2020)