Chapter-3: Transaction Management and Concurrency Control
Chapter-3: Transaction Management and Concurrency Control
1
What is a Transaction?
Any action that reads from and/or writes to a
database. It may consist of:
Simple SELECT statement to generate list of
table contents
Series of related UPDATE statements to change
values of attributes in various tables
Series of INSERT statements to add rows to one
or more tables
Combination of SELECT, UPDATE, and INSERT
statements 2
What is a Transaction? (continued)
3
Evaluating Transaction Results
4
Transaction Properties (ACIDS)
Atomicity
Requires that all operations (SQL requests) of
a transaction be completed or none are
completed.
Consistency
The database must begin in a consistent state
and end in a consistent state
Consistent state = all integrity constraints satisfied.
5
Transaction Properties (continued)
Isolation
Data used during execution of a transaction
cannot be used by second transaction until
first one is completed
Durability
Transactionchanges that are saved to the
database cannot be lost even if the system
crashes.
No changes are saved to the database until the
transaction completes successfully.
6
Transaction Properties (continued)
Serializability
Ensures that concurrent execution of several
transactions yields consistent results
7
Transaction Management with SQL
8
Transaction Management with SQL
(continued)
ANSI standards require that, when a
transaction sequence is initiated by a user
or an application program, it must continue
through all succeeding SQL statements
until one of four events occurs
COMMIT statement is reached
ROLLBACK statement is reached
End of program is reached
Program is abnormally terminated
9
The Transaction Log
A DBMS uses a transaction log to keep track
of all transactions that update the database.
Transaction log stores:
A record for the beginning of transaction
For each transaction component (SQL statement):
Type of operation being performed (update, delete,
insert)
Names of objects affected by transaction
“Before” and “after” values for updated fields
Pointers to previous and next transaction log entries for
the same transaction
Ending (COMMIT) of the transaction
10
The Transaction Log (continued)
11
Concurrency Control
Coordination of simultaneous transaction
execution in a multiprocessing database
system
Objective is to ensure serializability of
transactions in a multiuser database
environment
12
Concurrency Control (continued)
13
Lost Updates
14
Lost Updates (continued)
15
Uncommitted Data
16
Uncommitted Data (continued)
17
Inconsistent Retrievals
18
Inconsistent Retrievals
(continued)
19
Inconsistent Retrievals
(continued)
20
The Scheduler
Special DBMS program
Purpose is to establish order of operations
within which concurrent transactions are
executed
Interleaves execution of database
operations to ensure serializability and
isolation of transactions
21
The Scheduler (continued)
Bases its actions on concurrency control
algorithms
Ensures computer’s central processing
unit (CPU) is used efficiently
Facilitates data isolation to ensure that two
transactions do not update the same data
element at the same time
22
The Scheduler (continued)
23
The Scheduler (continued)
The scheduler bases its actions on
concurrency control algorithms, such
as locking or time stamping methods to
determine the appropriate order
24
Concurrency Control with Locking Methods
Lock
Guarantees exclusive use of a data item to a
current transaction
Required to prevent another transaction from
reading inconsistent data
Lock manager
Responsiblefor assigning and policing the
locks used by transactions
25
Lock Granularity
Indicates level of lock use
Locking can take place at following levels:
Database
Table
Page
Row
Field (attribute)
26
Lock Granularity (continued)
Database-level lock
Entire database is locked
Table-level lock
Entire table is locked
Page-level lock
Entire diskpage is locked
27
Lock Granularity (continued)
A diskpage (page) is the equivalent of a
diskblock which is directly addressable section
of a disk.
A page has a fixed size, such as 4k, 8k, or 16k.
E.g. if you want to write only 73 bytes to a 4k
page, the entire 4k must be read from disk,
updated in memory and written back to disk
Page-level locks are currently the most used
multi-user DBMS locking methods.
28
Lock Granularity (continued)
Row-level lock
Allows concurrent transactions to access different
rows of same table, even if rows are located on same
page
A row-level lock is less restrictive than the
previous locking methods.
Advantage: it improves the availability of data.
Disadvantage: its management require high overhead
(a lock exists for every row in a table).
Field-level lock
Allows concurrent transactions to access same row,
as long as they require use of different fields
(attributes) within that row
29
Lock Types
Binary lock
Has only two states: locked (1) or unlocked (0)
Exclusive lock
Access is specifically reserved for transaction that
locked object
Must be used when potential for conflict exists
Issued when a transaction needs to update data and
no locks are currently held on it.
Shared lock
Concurrent transactions are granted Read access on
basis of a common lock
30
Lock Types (continued)
Although locks prevent serious data
inconsistencies, they can lead to two major
problems:
The resulting transaction schedule may not be
serializable.
The schedule may create deadlocks.
31
Two-Phase Locking to Ensure
Serializability
Defines how transactions acquire and relinquish
locks
Guarantees serializability, but it does not prevent
deadlocks
Growing phase - Transaction acquires all
required locks without unlocking any data
Shrinking phase - Transaction releases all
locks and cannot obtain any new lock
32
Two-Phase Locking to Ensure Serializability
(continued)
33
Two-Phase Locking to Ensure Serializability
(continued)
34
Deadlocks
Condition that occurs when two transactions
wait for each other to unlock data
Possible only if one of the transactions wants
to obtain an exclusive lock on a data item
No deadlock condition can exist among
shared locks
35
Deadlocks (continued)
36
Deadlocks (continued)
Controlled through:
Deadlock Prevention
Deadlock Detection
Deadlock Avoidance
37
Concurrency Control with Time Stamping
Methods
Assigns global unique time stamp to each transaction
Produces explicit order in which transactions are
submitted to the DBMS
Uniqueness
Ensures that no equal time stamp values can exist
Monotonicity
Ensures that time stamp values always increase
Optimistic approach
Based on assumption that majority of
database operations do not conflict
Does not require locking or time stamping
techniques
Transaction is executed without restrictions
until it is committed
Phases are read, validation, and write
39