Deadlocks, Concurrency Control, Recovery

Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

DEADLOCKS

DEADLOCKS

• A deadlock occurs when two transactions wait indefinitely for each other to unlock data.

• For Eg:, a deadlock occurs when two transactions, T1 and T2, exist in the following mode:
• T1 = access data items X and Y

• T2 = access data items Y and X

• If T1 has not unlocked data item Y, T2 cannot begin; if T2 has not unlocked data item X, T1
cannot continue. Consequently, T1 and T2 each wait for the other to unlock the required
data item. Such a deadlock is also known as a deadly embrace.
2
DEADLOCKS

How a Deadlock condition is created? • The example used only two concurrent transactions
Lock Status to demonstrate a deadlock condition.
Time Transaction Reply
Data X Data Y
1 T1: LOCK(X) OK UNLOCKED UNLOCKED • In a real-world DBMS, many more transactions can be
2 T2: LOCK(Y) OK LOCKED UNLOCKED executed simultaneously, thereby increasing the
3 T1: LOCK(Y) WAIT LOCKED LOCKED
probability of generating deadlocks.
4 T2: LOCK(X) WAIT LOCKED LOCKED
5 T1: LOCK(Y) WAIT LOCKED LOCKED
• Deadlocks are possible only when one of the
6 T2: LOCK(X) WAIT LOCKED LOCKED
7 T1: LOCK(Y) WAIT LOCKED LOCKED transactions wants to obtain an exclusive lock on a
8 T2: LOCK(X) WAIT LOCKED LOCKED data item; no deadlock condition can exist among
9 T1: LOCK(Y) WAIT LOCKED LOCKED
10 T2: LOCK(X) WAIT LOCKED LOCKED shared locks
--- ---- ---- ---- ---- 3
DEADLOCK CONTROL METHODS
The three basic techniques to control deadlocks are:

1. Deadlock prevention. A transaction requesting a new lock is aborted when there is


the possibility that a deadlock can occur. If the transaction is aborted, all changes
made by this transaction are rolled back and all locks obtained by the transaction are
released. The transaction is then rescheduled for execution. Deadlock prevention works
because it avoids the conditions that lead to deadlocking.

2. Deadlock detection. The DBMS periodically tests the database for deadlocks. If a
deadlock is found, one of the transactions (the “victim”) is aborted (rolled back and
restarted) and the other transaction continues.
4
DEADLOCK CONTROL METHODS
3. Deadlock avoidance.
• Deadlock avoidance mechanism is used to detect any deadlock situation in advance.
• The transaction must obtain all of the locks it needs before it can be executed. This
technique avoids rolling back of conflicting transactions by requiring that locks be
obtained in succession.
• However, the serial lock assignment required in deadlock avoidance increases action
response times.
• A method like "wait for graph" is used for detecting the deadlock situation but this
method is suitable only for the smaller database.
5
DEADLOCK CONTROL METHODS
• The choice of the best deadlock control method to use depends on the database
environment.
• For example, if the probability of deadlocks is low, deadlock detection is
recommended. However, if the probability of deadlocks is high, deadlock
prevention is recommended. If response time is not high on the system’s
priority list, deadlock avoidance might be employed.
• All current DBMSs support deadlock detection in transactional databases, while
some DBMSs use a blend of prevention and avoidance techniques for other types
of data, such as data warehouses or XML data
6
CONCURRENCY CONTROL WITH TIME STAMPING METHODS

• Time stamping approach to scheduling concurrent transactions assigns a


global, unique time stamp to each transaction.
• The time stamp value produces an explicit order in which transactions are
submitted to DBMS.
• Time stamps must have two properties: uniqueness and monotonicity.
• Uniqueness ensures that no equal time stamp values can exist, and
monotonicity ensures that time stamp values always increase.
• All database operations (Read and Write) within the same transaction must
have the same time stamp. 7
CONCURRENCY CONTROL WITH TIME STAMPING METHODS

• The DBMS executes conflicting operations in time stamp order, thereby ensuring
serializability of the transactions.

• If two transactions conflict, one is stopped, rolled back, rescheduled, and assigned a
new time stamp value.

• The disadvantage of the time stamping approach is that each value stored in the database
requires two additional time stamp fields: one for the last time the field was read and
one for the last update. Time stamping thus increases memory needs and the
database’s processing overhead. Also, time stamping demands a lot of system resources
because many transactions might have to be stopped, rescheduled, and restamped.
8
WAIT/DIE & WOUND/WAIT SCHEMES

• Two schemes are used to decide which transaction is rolled back and which continues
executing: the wait/die scheme and the wound/wait scheme.
• Eg: Two conflicting transactions T1 and T2, each with a unique time stamp. Suppose T1 has a
time stamp of 115 and T2 has a time stamp of 195. From time stamps, it can be deduced that
T1 is the older transaction (lower time stamp). Given this scenario, 4 possible outcomes are:

TRANSACTION TRANSACTION
WAIT/DIE SCHEME WOUND/WAIT SCHEME
REQUESTING LOCK OWNING LOCK

• T1 preempts (rolls back) T2


• T1 waits until T2 is completed
T1(115) T2(195) • T2 is rescheduled using the
and T2 releases its locks
same time stamp.
• T2 dies (rolls back)
• T2 waits until T1 is completed
T2(195) T1(115) • T2 is rescheduled using same
and T1 releases its locks 9
time stamp.
In the wound/wait scheme:
Using the wait/die scheme:
• If transaction requesting the lock is the older of
• If the transaction requesting the lock is the
two transactions, it will preempt (wound) the
older of the two transactions, it will wait
younger transaction (by rolling back). T1
until the other transaction is completed and
preempts T2 when T1 rolls back T2. The younger,
the locks are released.
preempted transaction is rescheduled using the
• If the transaction requesting the lock is the
same time stamp.
younger of the two transactions, it will die
• If the transaction requesting the lock is younger
(roll back) and is rescheduled using the
of two transactions, it will wait until other
same time stamp.
transaction is completed and locks are released.
• In short, in the wait/die scheme, the older
• In short, in the wound/wait scheme, the older
transaction waits for the younger to complete
transaction rolls back the younger transaction and
and release its locks.
reschedules it. 10
WAIT/DIE & WOUND/WAIT SCHEMES

• In both schemes, one of the transactions waits for the other transaction to finish
and release the locks. However, in many cases, a transaction requests multiple
locks.

• How long does a transaction have to wait for each lock request? Obviously, that
scenario can cause some transactions to wait indefinitely, causing a deadlock.

• To prevent that type of deadlock, each lock request has an associated time-out
value. If the lock is not granted before the time-out expires, the transaction is
rolled back. 11
CONCURRENCY CONTROL WITH OPTIMISTIC METHODS

• The optimistic approach is based on the assumption that the majority of the
database operations do not conflict.

• The optimistic approach requires neither locking nor time stamping techniques.
Instead, a transaction is executed without restrictions until it is committed.

• Using an optimistic approach, each transaction moves through two or three phases,
referred to as read, validation, and write.

• The optimistic approach is acceptable for most read or query database


systems that require few update transactions. 12
CONCURRENCY CONTROL WITH OPTIMISTIC METHODS

• During the read phase, the transaction reads the database, executes the needed
computations, and makes the updates to a private copy of the database values. All
update operations of the transaction are recorded in a temporary update file, which
is not accessed by the remaining transactions.
• During the validation phase, the transaction is validated to ensure that the changes
made will not affect the integrity and consistency of the database. If the validation test
is positive, the transaction goes to the write phase. If the validation test is negative, the
transaction is restarted and the changes are discarded.
• During the write phase, the changes are permanently applied to the database.
13
DATABASE RECOVERY MANAGEMENT

• Database recovery restores a database from a given state (usually inconsistent)


to a previously consistent state.
• Recovery techniques are based on the atomic transaction property: all portions of
the transaction must be treated as a single, logical unit of work in which all
operations are applied and completed to produce a consistent database. If, for
some reason, any transaction operation cannot be completed, the transaction must
be aborted and any changes to the database must be rolled back (undone).
• In short, transaction recovery reverses all of the changes that the transaction made
to the database before the transaction was aborted.
14
DATABASE RECOVERY MANAGEMENT

Critical events can cause a database to become nonoperational and compromise the
integrity of the data. Examples of critical events are:
1. Hardware/software failures: hard disk media failure, application program or
operating system errors etc
2. Human-caused incidents: can be unintentional or intentional.
• Unintentional failure: caused by carelessness by end users like deleting the wrong
rows from table, pressing wrong key, or accidently shutting down the database server.
• Intentional events: security threats caused by hackers, virus attacks etc
3. Natural disasters: This category includes fires, earthquakes, floods, and power failures.

Whatever the cause, a critical error can render the database in an inconsistent state. 15
TRANSACTION RECOVERY

Database transaction recovery uses data in the transaction log to recover a database from an
inconsistent state to a consistent state.

Four important concepts that affect the recovery process:

1. The write-ahead-log protocol ensures that transaction logs are always written before
any database data are actually updated. This protocol ensures that, in case of a failure, the
database can later be recovered to a consistent state, using the data in the transaction log.

2. Redundant transaction logs (several copies of the transaction log) ensure that a
physical disk failure will not impair the DBMS’s ability to recover data

16
TRANSACTION RECOVERY - FOUR IMPORTANT CONCEPTS THAT AFFECT THE RECOVERY PROCESS

3. Database buffers are temporary storage areas in primary memory used to speed
up disk operations. When a transaction updates data, it updates the copy of the
data in the buffer because that process is much faster than accessing the physical
disk every time.
4. Database checkpoints are operations in which DBMS writes all of its updated
buffers to disk. A checkpoint operation is registered in the transaction log, thereby
physical database and transaction log will be in sync. This synchronization is
required because update operations update the copy in the buffers and not in the
physical database. 17
TRANSACTION RECOVERY PROCEDURES

Two procedures - deferred-write and write-through techniques.


Deferred-Write Technique (deferred update):
• In this, the transaction operations do not immediately update the
physical database; instead, only the transaction log is updated.
• The database is physically updated only after the transaction reaches its
commit point, using information from the transaction log. If the
transaction aborts before it reaches its commit point, no changes need
to be made to the database because the database was never updated.
18
TRANSACTION RECOVERY PROCEDURES

Deferred-Write Technique (deferred update):


The recovery process for all started and committed transactions (before
the failure) follows these steps:
1. Identify the last checkpoint in the transaction log. This is the last time
transaction data was physically saved to disk.
2. For a transaction that started and was committed before the last checkpoint,
nothing needs to be done because the data are already saved

19
TRANSACTION RECOVERY PROCEDURES

3. For a transaction that performed a COMMIT operation after the last


checkpoint, the DBMS uses the transaction log records to redo the
transaction and to update the database, using the “after” values in the
transaction log. The changes are made in ascending order, from oldest to
newest.
4. For any transaction that had a ROLLBACK operation after the last checkpoint
or that was left active (with neither a COMMIT nor a ROLLBACK) before the
failure occurred, nothing needs to be done because the database was never
updated.
20
TRANSACTION RECOVERY PROCEDURES

Write-through technique (immediate update)


• The database is immediately updated by transaction operations during
the transaction’s execution, even before the transaction reaches its
commit point.
• If the transaction aborts before it reaches its commit point, a ROLLBACK
or undo operation needs to be done to restore the database to a consistent
state. In that case, the ROLLBACK operation will use the transaction log
“before” values.
21
TRANSACTION RECOVERY PROCEDURES

Write-through technique (immediate update)


The recovery process follows these steps:
1. Identify the last checkpoint in the transaction log. This is the last time
transaction data were physically saved to disk.
2. For a transaction that started and was committed before the last checkpoint,
nothing needs to be done because the data are already saved.
3. For a transaction that was committed after the last checkpoint, the DBMS redoes
the transaction, using the “after” values of the transaction log. Changes are
applied in ascending order, from oldest to newest. 22
TRANSACTION RECOVERY PROCEDURES

Write-through technique (immediate update)

4. For any transaction that had a ROLLBACK operation after the last checkpoint, the

DBMS uses the transaction log records to ROLLBACK or undo the operations,

using the “before” values in the transaction log. Changes are applied in reverse

order, from newest to oldest.

23

You might also like