Problems Caused by Failures

Similar documents
XI. Transactions CS Computer App in Business: Databases. Lecture Topics

A tomicity: All actions in the Xact happen, or none happen. D urability: If a Xact commits, its effects persist.

Crash Recovery. The ACID properties. Motivation

Crash Recovery. Chapter 18. Sina Meraji

Review: The ACID properties. Crash Recovery. Assumptions. Motivation. More on Steal and Force. Handling the Buffer Pool

Crash Recovery Review: The ACID properties

Concurrency Control & Recovery

Database Recovery Techniques. DBMS, 2007, CEng553 1

Slides Courtesy of R. Ramakrishnan and J. Gehrke 2. v Concurrent execution of queries for improved performance.

The transaction. Defining properties of transactions. Failures in complex systems propagate. Concurrency Control, Locking, and Recovery

Concurrency Control & Recovery

UNIT 9 Crash Recovery. Based on: Text: Chapter 18 Skip: Section 18.7 and second half of 18.8

CompSci 516: Database Systems

6.830 Lecture Recovery 10/30/2017

Database Tuning and Physical Design: Execution of Transactions

6.830 Lecture Recovery 10/30/2017

Transaction Management Overview

Crash Recovery CMPSCI 645. Gerome Miklau. Slide content adapted from Ramakrishnan & Gehrke

Transaction Management. Pearson Education Limited 1995, 2005

COURSE 4. Database Recovery 2

Review: The ACID properties. Crash Recovery. Assumptions. Motivation. Preferred Policy: Steal/No-Force. Buffer Mgmt Plays a Key Role

ACID Properties. Transaction Management: Crash Recovery (Chap. 18), part 1. Motivation. Recovery Manager. Handling the Buffer Pool.

Outline. Purpose of this paper. Purpose of this paper. Transaction Review. Outline. Aries: A Transaction Recovery Method

Transaction Management Overview. Transactions. Concurrency in a DBMS. Chapter 16

Database Recovery. Lecture #21. Andy Pavlo Computer Science Carnegie Mellon Univ. Database Systems / Fall 2018

Transaction Management: Crash Recovery (Chap. 18), part 1

some sequential execution crash! Recovery Manager replacement MAIN MEMORY policy DISK

Introduction. Storage Failure Recovery Logging Undo Logging Redo Logging ARIES

RECOVERY CHAPTER 21,23 (6/E) CHAPTER 17,19 (5/E)

Database Applications (15-415)

Atomicity: All actions in the Xact happen, or none happen. Consistency: If each Xact is consistent, and the DB starts consistent, it ends up

System Malfunctions. Implementing Atomicity and Durability. Failures: Crash. Failures: Abort. Log. Failures: Media

T ransaction Management 4/23/2018 1

CHAPTER 3 RECOVERY & CONCURRENCY ADVANCED DATABASE SYSTEMS. Assist. Prof. Dr. Volkan TUNALI

CAS CS 460/660 Introduction to Database Systems. Recovery 1.1

Intro to Transactions

Advances in Data Management Transaction Management A.Poulovassilis

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications. Administrivia. Last Class. Faloutsos/Pavlo CMU /615

) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons)

Databases - Transactions

Transaction Management

Overview of Transaction Management

) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons)

Transaction Management: Introduction (Chap. 16)

Introduction to Data Management. Lecture #18 (Transactions)

Transactions. ACID Properties of Transactions. Atomicity - all or nothing property - Fully performed or not at all

ARIES (& Logging) April 2-4, 2018

Chapter 22. Transaction Management

Transaction Management & Concurrency Control. CS 377: Database Systems

Aries (Lecture 6, cs262a)

Recovery System These slides are a modified version of the slides of the book Database System Concepts (Chapter 17), 5th Ed McGraw-Hill by

CSE 190D Database System Implementation

Chapter 17: Recovery System

Failure Classification. Chapter 17: Recovery System. Recovery Algorithms. Storage Structure

What are Transactions? Transaction Management: Introduction (Chap. 16) Major Example: the web app. Concurrent Execution. Web app in execution (CS636)

CS122 Lecture 19 Winter Term,

Transaction Processing Concurrency control

CS122 Lecture 15 Winter Term,

COURSE 1. Database Management Systems

Database Management Systems CSEP 544. Lecture 9: Transactions and Recovery

) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons)

Lecture 16: Transactions (Recovery) Wednesday, May 16, 2012

Transaction Management: Concurrency Control

Architecture and Implementation of Database Systems (Summer 2018)

Distributed Transaction Management

CS 4604: Introduc0on to Database Management Systems. B. Aditya Prakash Lecture #19: Logging and Recovery 1

Carnegie Mellon Univ. Dept. of Computer Science Database Applications. General Overview NOTICE: Faloutsos CMU SCS

Advanced Database Management System (CoSc3052) Database Recovery Techniques. Purpose of Database Recovery. Types of Failure.


Introduction to Data Management. Lecture #26 (Transactions, cont.)

Introduction to Data Management CSE 344

Database Systems. Announcement

Transaction Processing. Introduction to Databases CompSci 316 Fall 2018

Lecture X: Transactions

Transaction Management. Readings for Lectures The Usual Reminders. CSE 444: Database Internals. Recovery. System Crash 2/12/17

Transactions. Kathleen Durant PhD Northeastern University CS3200 Lesson 9

Last time. Started on ARIES A recovery algorithm that guarantees Atomicity and Durability after a crash

Introduction to Data Management CSE 344

Weak Levels of Consistency

CSE 344 MARCH 25 TH ISOLATION

Final Review. May 9, 2017

Introduction to Transaction Processing Concepts and Theory

Final Review. May 9, 2018 May 11, 2018

TRANSACTION PROCESSING PROPERTIES OF A TRANSACTION TRANSACTION PROCESSING PROPERTIES OF A TRANSACTION 4/3/2014

Transaction Processing: Concurrency Control ACID. Transaction in SQL. CPS 216 Advanced Database Systems. (Implicit beginning of transaction)

Chapter 20 Introduction to Transaction Processing Concepts and Theory

CSE 344 MARCH 9 TH TRANSACTIONS

In This Lecture. Transactions and Recovery. Transactions. Transactions. Isolation and Durability. Atomicity and Consistency. Transactions Recovery

Introduction to Database Systems CSE 444

Recovery and Logging

Transactions. 1. Transactions. Goals for this lecture. Today s Lecture

Intro to Transaction Management

Database Systems ( 資料庫系統 )

Database Management Systems Reliability Management

Overview. Introduction to Transaction Management ACID. Transactions

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

Log-Based Recovery Schemes

ARIES. Handout #24. Overview

CSE 344 MARCH 5 TH TRANSACTIONS

Transcription:

Problems Caused by Failures Update all account balances at a bank branch. Accounts(Anum, CId, BranchId, Balance) Update Accounts Set Balance = Balance * 1.05 Where BranchId = 12345 Partial Updates - Lack of Atomicity If the system crashes while processing this update, some, but not all, tuples with BranchId = 12345 may have been updated.

Another Failure-Related Problem transfer money between accounts: Update Accounts Set Balance = Balance - 100 Where Anum = 8888 Update Accounts Set Balance = Balance + 100 Where Anum = 9999 Partial Updates - Lack of Atomicity If the system fails between these updates, money may be withdrawn but not redeposited

Problems Caused by Concurrency Application 1: Update Accounts Set Balance = Balance - 100 Where Anum = 8888 Update Accounts Set Balance = Balance + 100 Where Anum = 9999 Application 2: Select Sum(Balance) From Accounts Lack of Isolation If the applications run concurrently, the total balance returned to application 2 may be inaccurate.

Another Concurrency Problem Application 1: Select balance into From Accounts Where Anum = 8888 :balance compute :newbalance using :balance Update Accounts Set Balance = :newbalance Where Anum = 8888 Application 2: same as Application 1 Lost Updates If the applications run concurrently, one of the updates may be lost.

Transaction Properties Transactions are durable, atomic application-specified units of work. Atomic: indivisible, all-or-nothing. Durable: effects survive failures. The ACID Properties A tomic: a transaction occurs entirely, or not at all C onsistent I solated: a transaction s unfinished changes are not visible to others D urable: once it is complete, a transaction s changes are permanent

Abort and Commit Commit: Abort: When a transaction commits, any updates it made become durable, and they become visible to other transactions. A commit is the all in all-or-nothing execution. SQL: commit work When a transaction aborts any updates it may have made are undone (erased), as if the transaction never ran at all. An abort is the nothing in all-or-nothing execution. SQL: rollback work the DBMS may unilaterally abort a running transaction

Serializability (informal) Concurrent transactions must appear to have been executed sequentially, i.e., one at a time, in some order. If T i and T j are concurrent transactions, then either: T i will appear to precede T j, meaning that T j will see any updates made by T i, and T i will not see any updates made by T j, or T i will appear to follow T j, meaning that T i will see T j s updates and T j will not see T i s.

Concurrency Control Serializability can be guaranteed by executing transactions serially, but this may result in poor performance Alternative: allow transactions to execute concurrently, but use a concurrency control protocol is used to ensure that their execution is serializable Some tools used by concurrency control protocols: block, or delay, operations abort transactions multi-versioning Many concurrency control protocols have been proposed, based on: locking, or timestamps, or conflict analysis

Two-Phase Locking The rules 1. Before a transaction may read or write an object, it must have a lock on that object. a shared lock is required to read an object an exclusive lock is required to write an object 2. Two or more transactions may not hold conflicting locks on the same object at the same time exclusive locks conflict with exclusive and shared locks shared locks do not conflict with other shared locks 3. Once a transaction has released (unlocked) any object, it may not obtain any new locks. Phase 1: acquiring locks, Phase 2: releasing locks In strict 2PL, all locks are held until commit or abort. If all transactions use two-phase locking, the execution history is guaranteed to be serializable.

Transaction Blocking Consider the following sequence of events: T 1 acquires a shared lock on x and reads x T 2 attempts to acquire an exclusive lock on x (so that it can write x) The two-phase locking rules prevent T 2 from acquiring its exlusive lock - this is called a lock conflict. Lock conflicts can be resolved in one of two ways: 1. T 2 can be blocked - forced to wait until T 1 releases its lock 2. T 1 can be pre-empted - forced to abort and give up its locks

Deadlocks transaction blocking can result in deadlocks for example: T 1 reads object x T 2 reads object y T 2 attempts to write object x (it is blocked) T 1 attempts to write object y (it is blocked) A deadlock can be resolved only by forcing one of the transactions involved in the deadlock to abort.

Serializability Theory: A Brief Detour A transaction is a sequence of read and write operations. An execution history over a set of transactions T 1... T n is an interleaving of the the operations of T 1... T n in which the operation ordering imposed by each transaction is preserved. Two operations conflict if: they belong to different transactions they operate on the same object at least one of the operations is a write

Serial and Serializable Histories T 1 = w 1 [x] w 1 [y], T 2 = r 2 [x] r 2 [y] An interleaved execution of T 1 and T 2 : H a = w 1 [x] r 2 [x] w 1 [y] r 2 [y] An equivalent serial execution of T 1 and T 2 : H b = w 1 [x] w 1 [y] r 2 [x] r 2 [y] An interleaved execution of T 1 and T 2 with no equivalent serial execution: H c = w 1 [x] r 2 [x] r 2 [y] w 1 [y] H a is serializable because it is equivalent to H b, a serial schedule. H c is not serializable.

Testing for Serializability r 1 [x] r 3 [x] w 4 [y] r 2 [u] w 4 [z] r 1 [y] r 3 [u] r 2 [z] w 2 [z] r 3 [z] r 1 [z] w 3 [y] Is this history serializable? Serialization Graph A history is serializable iff its serialization graph is acyclic.

Serialization Graphs r 1 [x] r 3 [x] w 4 [y] r 2 [u] w 4 [z] r 1 [y] r 3 [u] r 2 [z] w 2 [z] r 3 [z] r 1 [z] w 3 [y] The history above is equivalent to w 4 [y] w 4 [z] r 2 [u] r 2 [z] w 2 [z] r 1 [x] r 1 [y] r 1 [z]r 3 [x] r 3 [u] r 3 [z] w 3 [y] That is, it is equivalent to executing T 4 followed by T 2 followed by T 1 followed by T 3.

Two-Phase Locking Revisited How does 2PL ensure serializability? Consider again non-serializable H c : H c = w 1 [x] r 2 [x] r 2 [y] w 1 [y] 2PL prevents non-serializable histories by blocking (and hence reordering) operations that might lead to non-serializability 2PL can be too conservative - it may also prevent some serializable histories from occurring H a = w 1 [x] r 2 [x] w 1 [y] r 2 [y]

Phantoms Transaction 2: Transaction 1: Insert Into Employee Values ( 123, Shel, Jetstream, D11,52000) Select * From Employee Where WorkDept = D11 Select * From Employee Where Salary > 50000 Transaction 2 may observe a phantom tuple, not possible in a serial execution. 2PL of database records (or pages) may not be enough to ensure serializability in the presence of insertions or delations.

Insertions, Deletions and Serializability Queries must conflict with (and hence lock ) all tuples that satisfy the query predicates, including previously-deleted or to-be-inserted tuples that are not currently in the database. One solution: relation-level locks Another solution: index key-range locking consider query with predicate WorkDept = D11 suppose there is an index on WorkDept query locks index key range covering D11, preventing insertions in that range

Multi-Granularity Locking allow transactions to lock entire relation, or individual records in the relation, as appropriate before locking smaller granules (e.g., records), set intention-mode locks on the containing larger granule (e.g., relation) lock conflict table, including intention-mode locks X S IX IS X no no no no S no yes no yes IX no no yes yes IS no yes yes yes IX = intention exclusive, IS = intention shared

Snapshot Isolation (SI) every transaction T sees a snapshot of the database T s snapshot includes updates made by all transactions that committed before T starts T s snapshot does not included any updates made by concurrent transactions each transaction sees its own updates concurrent transactions may not perform conflicting updates SI vs. serializability Pro: read-only transactions never block Con: potential anomalies from non-serializable behavior

Implementing Snapshot Isolation multi-versioning if transaction T updates object (e.g, page) p, concurrent transactions must continue to see pre-update version of p detecting write-write conflicts can be done using write locks (no need for read locks) can be done using commit-time validation each transaction T maintains a list of updated objects (e.g. pages) when T trys to commit, ensure no already-committed concurrent transactions updated any of the same objects. If no conflicts, commit T else abort T. implements a first committer wins rule for concurrent conflicting upates

Recovery Management Recovery management means: implementing voluntary or involuntary rollback of individual transactions implementing recovery from system failures so that transaction ACID properties are guaranteed system failure means: the database server is halted processing of in-progress SQL command(s) is halted connections to application programs (clients) are broken. contents of memory buffers are lost

Failures and Transactions To ensure that transactions are atomic, every transaction that is active when a system failure occurs must either be restarted after the failure from the point it which it left off, or rolled back after the failure It is difficult to restart applications after a system failure, so the recovery manager does the following: abort transactions that were active at the time of the failure ensure that changes made by transactions that committed before the failure are not lost

Buffers and Persistent Storage Client lib Client lib W DBMS W buffer cache DB

Committing a Transaction Suppose that a running transaction results in the following sequence of events: update page P a update page P b update page P c update page P d commit How should this transaction be committed?

Logging Client Client lib lib DBMS W W buffer cache LOG BUFFER LOG log is an append-only list of log records log tail (most recent entries) is in memory log entries are flushed from log buffer to disk in order log entries are flushed in batches when possible

Committing a Transaction Using Logging Events for transaction T : update page P a update page P b update page P c update page P d commit Logging for T : log updated state of P a log updated state of P b log updated state of P c log updated state of P d log commit record for T ensure the commit record is on disk before acknowledging commit to application buffer manager need not flush updated pages to disk use log records to restore effects of T after a failure

UNDO Logging and WAL the previous example illustrated REDO logging each log entry describes how to re-apply an update that has been lost REDO logging is used to ensure durability of committed updates UNDO logging is also useful an UNDO log entry describes how to erase or undo an update that has already been applied UNDO logging is used to ensure that the effects of aborted transactions are erased. Write-Ahead Logging (WAL) Protocol The WAL protocol requires that the log record describing an update be on persistent storage before the update itself is on persistent storage.

Log Example log head T 0,begin (oldest part of the log) T 0,P d,d 0,d 1 T 1,begin T 1,P b,b 0,b 1 T 2,begin T 2,P c,c 0,c 1 T 1,P a,a 0,a 1 T 1,commit T 3,begin on disk T 2,abort in memory T 3,P b,b 1,b 2 T 4,begin (newest part of the log) T 4,P a,a 1,a 2 log tail T 3,commit

Log-Based Recovery on recovery from a failure, use the log to ensure that the database contains the effects of all committed transactions does not contain any effects of aborted transactions before allowing new transactions to begin executing simple two-pass log-based recovery Pass 1 (tail to head): identify losers and winners and rollback the losers Pass 2 (head to tail): redo the winners this simple log and recovery algorithm assumes page-level locking (why??) idempotent log records Transaction Commit A transaction is atomically and durably committed when its commit log record is flushed to the log disk.

Checkpoints As the log grows, the time required to recover from a system failure also grows. checkpoints are used to reduce the amount of log data that must be scanned after a system failure. simple checkpointing algorithm 1. prevent new transactions from starting, and wait for active transactions to finish 2. flush all modified pages from the buffer pool to the disk 3. truncate the log simple algorithm is effective but expensive other checkpointing algorithms try to achieve a similar effect with less impact on performance

Buffer Management and Transactions Force vs. No Force Buffer Management Force: All of a transaction s changes are present on the disk by the time the transaction commits. No Force: Some of a transaction s changes may not be on disk by the time the transaction commits. Steal vs. No Steal Buffer Management Steal: Uncommitted changes may be present on the disk. No Steal: Uncommitted changes are never present on the disk.

Buffer Management and Transactions (cont d) Force,No Steal: no logging required, but impractical (why?) Force,Steal: UNDO logging required, transaction commits are expensive No Force, No Steal: REDO logging required, No Steal constrains buffer manager No Force, Steal: REDO and UNDO logging required, only constraint on buffer management is WAL

Enforcing WAL each log entry is assigned a log sequence number (LSN) log manager tracks safelsn, the largest LSN among log entries that have been flushed to disk for each page p, buffer manager tracks pagelsn(p), the LSN of the most recent update applied to p buffer manager may not flush a dirty page p to disk unless pagelsn(p) safelsn

Introduction to ARIES ARIES has the same goal (durable, failure-atomic transactions) as the simple logging technique already described, but tries to achieve it with less impact on transaction performance during normal (non-failure) operation some differences between ARIES and simple technique ARIES allows fine-grained (i.e., record-level) locking ARIES allows operational logging ARIES supports non-idempotent log operations ARIES supports fuzzy checkpointing ARIES recovery uses three log passes, not two

Physical State Logging s 0 Op 1 s 1 REDO log info for Op 1 consists s 1, the after-image of the affected object (e.g., page) UNDO log info for Op 1 consists of s 0, the before-image of the affected object the object (page) must remain locked until Op 1 s transaction commits, to avoid lost updates log entries are idempotent: REDOing Op 1 multiple times has the same effect as REDOing it one time. Same for UNDO.

(Page-level) Operational Logging s 0 Op 1 s 1 REDO log info for Op 1 consists of a description of Op 1 UNDO log info for Op 1 consists of a description of a compensating operation for Op 1. the affected object (page) need not remain locked until Op 1 s transaction commits log entries may not be idempotent

Eventually Exactly Once Execution recall that ARIES tracks pagelsn(p) for each page p suppose the ARIES is REDOing a logged operation, with LSN = n, on page p ARIES will only REDO the operation if n > pagelsn(p), otherwise the page already reflects the effects of the operation.

Rolling Back Transactions in ARIES lower (older) log sequence numbers higher (newer) Op1 Op2 Op3 CLR3 CLR2 CLR1 each compensation is logged and gets a LSN CLR = compensation log record compensations are never undone

Checkpointing in ARIES ARIES checkpoints periodically during normal operation checkpointing involves logging checkpoint information including: list of active transactions LSN of most recent log record for each active transaction list of dirty buffered pages, including their reclsns. reclsn(p) is the LSN of the update that made p dirty, there is no need to quiesce transactions there is no need to flush any pages to the disk - the buffer manager can do this any time (as long as WAL is observed), asynchronously called fuzzy checkpointing: no sharp log boundary

Recovery in ARIES Analysis Pass: REDO Pass: UNDO Pass: start at most recent complete checkpoint redolsn is minimum reclsn(p) of pages in the checkpointed dirty page list scan forward to identify losers and the most recent LSN for each start at redolsn scan forwards, redoing all updates, including compensations and loser updates scan backwards, perform compensations for uncompensated updates of losers

ARIES Log Example log head 1, T 0,P d,update,prev=null 2, T 1,P b,update,prev=null 3, T 2,P c,update,prev=null checkpoint: active=t 0 (1),T 1 (2),T 2 (3), dirty=p c (3),P d (1) 4, T 1,P a,update,prev=2 5, T 1,commit 6, T 2,P a,update,prev=3 7, T 2,CLR for LSN=6,prev=3 8, T 3,P b,update,prev=null 9, T 3,P c,update,prev=8 10, T 2,CLR for LSN=3,prev=NULL 11, T 2,abort 12, T 4,P a,update,prev=null log tail 13, T 3,commit