Transaction Management

Slides:



Advertisements
Similar presentations
Lecture plan Transaction processing Concurrency control
Advertisements

Database Systems (資料庫系統)
Concurrency Control WXES 2103 Database. Content Concurrency Problems Concurrency Control Concurrency Control Approaches.
1 Concurrency Control Chapter Conflict Serializable Schedules  Two actions are in conflict if  they operate on the same DB item,  they belong.
1 Lecture 11: Transactions: Concurrency. 2 Overview Transactions Concurrency Control Locking Transactions in SQL.
Transaction Management: Concurrency Control CS634 Class 17, Apr 7, 2014 Slides based on “Database Management Systems” 3 rd ed, Ramakrishnan and Gehrke.
TRANSACTION PROCESSING SYSTEM ROHIT KHOKHER. TRANSACTION RECOVERY TRANSACTION RECOVERY TRANSACTION STATES SERIALIZABILITY CONFLICT SERIALIZABILITY VIEW.
Concurrency Control II
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Concurrency Control Chapter 17 Sections
CSC271 Database Systems Lecture # 32.
Transaction Management Transparencies
Lecture 11 Recoverability. 2 Serializability identifies schedules that maintain database consistency, assuming no transaction fails. Could also examine.
Sekolah Tinggi Ilmu Statistik (STIS) 1 Dr. Said Mirza Pahlevi, M.Eng.
Database Systems, 8 th Edition Concurrency Control with Time Stamping Methods Assigns global unique time stamp to each transaction Produces explicit.
1 Chapter 20 Transaction Management Transparencies © Pearson Education Limited 1995, 2005.
Quick Review of Apr 29 material
Lecture 5. Some solutions on the written examination: Primary key: Unique identifier for each row in a table. Not allowed to be null. Cascade update:
Concurrency Control and Recovery In real life: users access the database concurrently, and systems crash. Concurrent access to the database also improves.
10 1 Chapter 10 Transaction Management and Concurrency Control Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Transaction Management and Concurrency Control
Transaction Management and Concurrency Control
Manajemen Basis Data Pertemuan 4 Matakuliah: M0264/Manajemen Basis Data Tahun: 2008.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
Chapter 17: Transaction Management
What is a Transaction? Logical unit of work
1 Minggu 8, Pertemuan 15 Transaction Management Matakuliah: T0206-Sistem Basisdata Tahun: 2005 Versi: 1.0/0.0.
©Silberschatz, Korth and Sudarshan16.1Database System Concepts 3 rd Edition Chapter 16: Concurrency Control Lock-Based Protocols Timestamp-Based Protocols.
Concurrency Control John Ortiz.
9 Chapter 9 Transaction Management and Concurrency Control Hachim Haddouti.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
Transaction Management and Concurrency Control
Transaction Management
1 Chapter 6 : Transaction Management Pearson Education © 2009.
Transaction Processing Concepts
Security and Transaction Nhi Tran CS 157B - Dr. Lee Fall, 2003.
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 10 Transaction Management.
Chapterb19 Transaction Management Transaction: An action, or series of actions, carried out by a single user or application program, which reads or updates.
Databases Illuminated
Transaction Support Chapter 9. Transaction  Transaction  An action or series of actions, carried out by a single user or application program, which.
Transaction Management, Concurrency Control and Recovery Chapter 20 1.
1 Chapter 20 Transaction Management Transparencies Last Updated: 17 th March 2011 By M. Arief
Chapter 11 Concurrency Control. Lock-Based Protocols  A lock is a mechanism to control concurrent access to a data item  Data items can be locked in.
Transactions CPSC 356 Database Ellen Walker Hiram College (Includes figures from Database Systems by Connolly & Begg, © Addison Wesley 2002)
Chapter 15 Concurrency Control Yonsei University 1 st Semester, 2015 Sanghyun Park.
TRANSACTION MANAGEMENT R.SARAVANAKUAMR. S.NAVEEN..
Sekolah Tinggi Ilmu Statistik (STIS) 1 Dr. Said Mirza Pahlevi, M.Eng.
II.I Selected Database Issues: 2 - Transaction ManagementSlide 1/20 1 II. Selected Database Issues Part 2: Transaction Management Lecture 4 Lecturer: Chris.
Transactions and Concurrency Control. Concurrent Accesses to an Object Multiple threads Atomic operations Thread communication Fairness.
Chapter 20 Transaction Management Thomas Connolly, Carolyn Begg, Database System, A Practical Approach to Design Implementation and Management, 4 th Edition,
Concurrency Control Introduction Lock-Based Protocols
Transaction Management Transparencies. ©Pearson Education 2009 Chapter 14 - Objectives Function and importance of transactions. Properties of transactions.
9 1 Chapter 9_B Concurrency Control Database Systems: Design, Implementation, and Management, Rob and Coronel.
10 1 Chapter 10_B Concurrency Control Database Systems: Design, Implementation, and Management, Rob and Coronel.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
10 Transaction Management and Concurrency Control MIS 304 Winter 2005.
3 Database Systems: Design, Implementation, and Management CHAPTER 9 Transaction Management and Concurrency Control.
Chapter 13 Managing Transactions and Concurrency Database Principles: Fundamentals of Design, Implementation, and Management Tenth Edition.
Chapter 22 Transaction Management Pearson Education © 2014.
Transaction Management
Lecture 3 Concurrency control techniques
Transaction Management and Concurrency Control
Concurrency Control.
Transaction Management Transparencies
Transaction Properties
Chapter 10 Transaction Management and Concurrency Control
Chapter 15 : Concurrency Control
Transaction Management, Concurrency Control and Recovery
Introduction of Week 13 Return assignment 11-1 and 3-1-5
Transaction management
CONCURRENCY Concurrency is the tendency for different tasks to happen at the same time in a system ( mostly interacting with each other ) .   Parallel.
Presentation transcript:

Transaction Management Dale-Marie Wilson, Ph.D.

Transaction Support Logical unit of work Action, or series of actions, carried out by user or application, which reads or updates contents of database. Logical unit of work Application program - series of transactions with non-database processing in between Transforms database from one consistent state to another Consistency may be violated during transaction

Transaction Example

Transaction Support Two possible outcomes: Success - transaction commits and database reaches new consistent state Failure - transaction aborts, and database restored to consistent state before transaction started Referred to as rolled back or undone transaction Committed transaction cannot be aborted Aborted transaction that is rolled back can be restarted later

State Transition Diagram for Transaction

Properties of Transaction Basic (ACID) properties: Atomicity ‘All or nothing’ property – transaction is an indivisible unit performed in entirety or not at all Consistency Must transform database from one consistent state to another Isolation Partial effects of incomplete transactions should not be visible to other transactions Durability Effects of a committed transaction are permanent and must not be lost because of later failure

DBMS Transaction Subsystem

Concurrency Control Process of managing simultaneous operations on the database without having them interfere with one another Prevents interference when two or more users access database simultaneously and at least one updates data Interleaving of operations may produce incorrect results

Need for Concurrency Control Potential concurrency problems: Lost update problem Uncommitted dependency problem Inconsistent analysis problem

Lost Update Problem Successfully completed update overridden by another user Example: T1 withdrawing £10 from an account with balx, initially £100 T2 depositing £100 into same account Serially, final balance would be £190

Lost Update Problem Loss of T2’s update avoided by preventing T1 from reading balx until after update

Uncommitted Dependency Problem Occurs when one transaction can see intermediate results of another transaction before it has committed Example: T4 updates balx to £200 but it aborts, so balx should be back at original value of £100 T3 has read new value of balx (£200) and uses value as basis of £10 reduction, giving a new balance of £190, instead of £90

Uncommitted Dependency Problem Problem avoided by preventing T3 from reading balx until after T4 commits or aborts

Inconsistent Analysis Problem Occurs when transaction reads several values but 2nd transaction updates some of them during execution of first Aka dirty read or unrepeatable read Example: T6 is totaling balances of account x (£100), account y (£50), and account z (£25). Meantime, T5 has transferred £10 from balx to balz, so T6 now has wrong result (£10 too high).

Inconsistent Analysis Problem Problem avoided by preventing T6 from reading balx and balz until after T5 completed updates

Serializability Objective of concurrency control protocol To schedule transactions to avoid interference Transactions could be executed serially Limits degree of concurrency or parallelism in system Serializability identifies those executions of transactions guaranteed to ensure consistency

Serializability Schedule Sequence of reads/writes by set of concurrent transactions Serial Schedule Schedule where operations of each transaction are executed consecutively without any interleaved operations from other transactions No guarantee that results of all serial executions of a given set of transactions will be identical

Nonserial schedule Schedule where operations from set of concurrent transactions are interleaved Objective of serializability To find nonserial schedules that allow transactions to execute concurrently without interfering with one another Objective - to find nonserial schedules that are equivalent to some serial schedule Called serializable

Serializability In serializability, ordering of read/writes is important: If two transactions only read data item No conflict and order not important If two transactions either read or write completely separate data items (c) If one transaction writes a data item and another reads or writes same data item Order of execution important

Conflict Serializability Example

Serializability Conflict serializable schedule orders conflicting operations to achieve serial execution Under constrained write rule (transaction updates data item based on its old value, which is first read) Precedence graph used to test for serializability

Precedence Graph Create: If precedence graph contains cycle node for each transaction directed edge Ti  Tj, if Tj reads value of item written by TI directed edge Ti  Tj, if Tj writes value into item after read by Ti If precedence graph contains cycle Not conflict serializable

Non-conflict Serializable Schedule Example T9 is transferring £100 from one account with balance balx to another account with balance baly T10 is increasing balance of these two accounts by 10% Precedence graph has a cycle and so is not serializable

Non-conflict Serializable Schedule Example

Recoverability Serializability identifies schedules that maintain database consistency Assumes no failed transactions If transaction fails Atomicity requires effects of transaction to be undone Durability states that once transaction commits, its changes cannot be undone (without running another, compensating, transaction)

Recoverable Schedule A schedule where, for each pair of transactions Ti and Tj, if Tj reads a data item previously written by Ti, then the commit operation of Ti precedes the commit operation of Tj

Concurrency Control Techniques Conservative approaches Delay transactions in case they conflict with other transactions Optimistic methods Assume conflict rare and only check for conflicts at commit Two conservative concurrency control techniques: Locking Timestamping

Locking Transaction uses locks to deny access to other transactions and so prevent incorrect updates Most widely used approach to ensure serializability Transaction claims shared (read) or exclusive (write) lock on data item before read or write Lock prevents another transaction from modifying item or even reading it, in the case of a write lock

Basic Locking Rules If transaction has shared lock on item Can read; not update item If transaction has exclusive lock on item Can read and update item More than one transaction can hold shared locks simultaneously on same item Reads cannot conflict Exclusive lock Gives transaction exclusive access to that item Some systems allow transaction to: Upgrade read lock to exclusive lock Downgrade exclusive lock to shared lock

Incorrect Locking Schedule For two transactions above, a valid schedule using these rules is: S = {write_lock(T9, balx), read(T9, balx), write(T9, balx), unlock(T9, balx), write_lock(T10, balx), read(T10, balx), write(T10, balx), unlock(T10, balx), write_lock(T10, baly), read(T10, baly), write(T10, baly), unlock(T10, baly), commit(T10), write_lock(T9, baly), read(T9, baly), write(T9, baly), unlock(T9, baly), commit(T9) }

Incorrect Locking Schedule If at start, balx = 100, baly = 400, result should be: balx = 220, baly = 330, if T9 executes before T10, or balx = 210, baly = 340, if T10 executes before T9. However, result gives balx = 220 and baly = 340 S is not a serializable schedule Problem: Transactions release locks too soon => results in loss of total isolation and atomicity To guarantee serializability Additional protocol concerning positioning of lock and unlock operations in every transaction needed

Two-Phase Locking (2PL) Transaction follows 2PL protocol if all locking operations precede first unlock operation in transaction Two phases for transaction: Growing phase - acquires all locks but cannot release any locks Shrinking phase - releases locks but cannot acquire any new locks

Preventing Lost Update Problem using 2PL

Preventing Uncommitted Dependency Problem using 2PL

Preventing Inconsistent Analysis Problem using 2PL

Cascading Rollback If every transaction in schedule follows 2PL, Schedule is serializable Problems occur with interpretation of when locks can be released

Cascading Rollback

Cascading Rollback Transactions conform to 2PL T14 aborts Since T15 dependent on T14, T15 must also be rolled back Since T16 dependent on T15, T16 must be rolled back To prevent this with 2PL Leave release of all locks until end of transaction

Deadlock An impasse that may result when two (or more) transactions are each waiting for locks held by the other to be released

Deadlock To break deadlock: abort one or more of transactions Deadlock transparent to user DBMS restarts transaction(s) Three techniques for handling deadlock: Timeouts Deadlock prevention Deadlock detection and recovery

Timeouts Transaction that requests lock will only wait for system-defined period of time If lock not been granted within period Lock request times out DBMS assumes transaction deadlocked => aborts and automatically restarts the transaction

Deadlock Prevention DBMS looks ahead to see if transaction would cause deadlock and never allows deadlock to occur Can order transactions using transaction timestamps: Wait-Die - only older transaction can wait for younger one, otherwise transaction aborted (dies) and restarted with same timestamp Wound-Wait - only younger transaction can wait for older one. If older transaction requests lock held by younger one, younger one aborted (wounded)

Recovery from Deadlock Detection Several issues: Choice of deadlock victim How far to roll transaction back Avoiding starvation – same transaction always deadlock victim

Timestamping Transactions ordered globally: Older transactions, transactions with smaller timestamps, get priority in event of conflict Conflict resolved by rolling back and restarting transaction No locks => no deadlock

Timestamping Generated: Timestamp A unique identifier created by DBMS that indicates relative starting time of a transaction Generated: Using system clock at start of transaction Incrementing logical counter every time new transaction starts

Timestamping Read/write proceeds only if last update on that data item carried out by older transaction Else, transaction requesting read/write restarted and given new timestamp Timestamps for data items: read-timestamp - timestamp of last transaction to read item write-timestamp - timestamp of last transaction to write item

Comparison of methods

Chapter 22