Week 09
Query Execution
Query Execution
Materialization
Pipelining
Iterators (reminder)
Pipelining Example
Disk Accesses
PostgreSQL Query Execution
PostgreSQL Query Execution
PostgreSQL Executor
Example PostgreSQL Execution
Query Performance
Performance Tuning
PostgreSQL Query Tuning
EXPLAIN Examples
Ex1: EXPLAIN examples
Transaction Processing
Transaction Processing
Transaction Terminology
Schedules
Transaction Anomalies
Ex2: Update Anomaly
Ex3: How many Schedules?
Schedule Properties
Transaction Failure
Recoverability
Ex4: Recoverability/Serializability
Cascading Aborts
Strictness
Classes of Schedules
Transaction Isolation
Transaction Isolation
Serializability
Checking Serializability
Ex5: Serializability Checking
Transaction Isolation Levels
Implementing Concurrency Control
Concurrency Control
Lock-based Concurrency Control
Two-Phase Locking
Problems with Locking
Deadlock
Ex6: Deadlock Handling
Transactions: the story so far
Optimistic Concurrency Control
Multi-version Concurrency Control
Concurrency Control in PostgreSQL
Ex7: Locking in PostgreSQL
Implementing Atomicity/Durability
Atomicity/Durability
Durability
Dealing with Transactions
Architecture for Atomicity/Durability
Execution of Transactions
Transactions and Buffer Pool
Logging
Undo Logging
Checkpointing
Redo Logging
Undo/Redo Logging
Recovery in PostgreSQL
Produced: 6 May 2020