This document discusses concurrency control and recovery techniques for databases. It covers various notions of serializability and recoverability. It describes lock-based protocols like two-phase locking and graph-based protocols like tree protocols. It discusses issues like deadlocks, cascading rollbacks, and starvation. It also covers deadlock handling techniques like prevention, detection and recovery.