Concurrency Control, Need For Concurrency
Concurrency Control, Need For Concurrency
Concurrency Control, Need For Concurrency
UNIT NO 3
TRANSACTIONS
IT8492
DATABASE MANAGEMENT SYSTEMS
(Common to CSE & IT)
CS8791
DATABASE MANAGEMENT SYSTEMCommon to CSE & IT)
When more than one transactions are running simultaneously there are
chances of a conflict to occur which can leave database to an inconsistent state.
2
CS8791
DATABASE MANAGEMENT SYSTEMCommon to CSE & IT)
• In a multi-user system, multiple users can access and use the same database at one
time, which is known as the concurrent execution of the database. It means that
the same database is executed simultaneously on a multi-user system by different
users.
• While working on the database transactions, there occurs the requirement of using
the database by multiple users for performing different operations, and in that
case, concurrent execution of the database is performed.
• The thing is that the simultaneous execution that is performed should be done in
an interleaved manner, and no operation should affect the other executing
operations, thus maintaining the consistency of the database. Thus, on making the
concurrent execution of the transaction operations, there occur several challenging
problems that need to be solved.
•
3
CS8791
DATABASE MANAGEMENT SYSTEMCommon to CSE & IT)
So, there is a need to manage these two operations in the concurrent execution of
the transactions as if these operations are not performed in an interleaved manner, and
the data may become inconsistent.
So, the following problems occur with the Concurrent Execution of the operations:
4
CS8791
DATABASE MANAGEMENT SYSTEMCommon to CSE & IT)
The problem occurs when two different database transactions perform the
read/write operations on the same database items in an interleaved manner (i.e.,
concurrent execution) that makes the values of the items incorrect hence making the
database inconsistent.
For example:
Consider the below diagram where two transactions TX and TY, are performed
on the same account A where the balance of account A is $300.
5
CS8791
DATABASE MANAGEMENT SYSTEMCommon to CSE & IT)
● At time t1, transaction TX reads the value of account A, i.e., $300 (only read).
● At time t2, transaction TX deducts $50 from account A that becomes $250
(only deducted and not updated/write).
● Alternately, at time t3, transaction TY reads the value of account A that will be
$300 only because TX didn't update the value yet.
● At time t4, transaction TY adds $100 to account A that becomes $400 (only
added but not updated/write).
● At time t6, transaction TX writes the value of account A that will be updated as
$250 only, as TY didn't update the value yet.
● Similarly, at time t7, transaction TY writes the values of account A, so it will
write as done at time t4 that will be $400. It means the value written by T X is
lost, i.e., $250 is lost.
6
CS8791
DATABASE MANAGEMENT SYSTEMCommon to CSE & IT)
The dirty read problem occurs when one transaction updates an item of the
database, and somehow the transaction fails, and before the data gets rollback,
the updated database item is accessed by another transaction. There comes the
Read-Write Conflict between both transactions.
For example:
7
CS8791
DATABASE MANAGEMENT SYSTEMCommon to CSE & IT)
8
CS8791
DATABASE MANAGEMENT SYSTEMCommon to CSE & IT)
For example:
9
CS8791
DATABASE MANAGEMENT SYSTEMCommon to CSE & IT)
● At time t1, transaction TX reads the value from account A, i.e., $300.
● At time t2, transaction TY reads the value from account A, i.e., $300.
● At time t3, transaction TY updates the value of account A by adding $100 to the
available balance, and then it becomes $400.
● At time t4, transaction TY writes the updated value, i.e., $400.
● After that, at time t5, transaction TX reads the available value of account A, and
that will be read as $400.
● It means that within the same transaction TX, it reads two different values of
account A, i.e., $ 300 initially, and after updation made by transaction TY, it
reads $400. It is an unrepeatable read and is therefore known as the
Unrepeatable read problem.
Thus, in order to maintain consistency in the database and avoid such problems
that take place in concurrent execution, management is needed, and that is where
the concept of Concurrency Control comes into role.
10
CS8791
DATABASE MANAGEMENT SYSTEMCommon to CSE & IT)
Concurrency Control
Concurrency Control is the working concept that is required for controlling and
managing the concurrent execution of database operations and thus avoiding the
inconsistencies in the database. Thus, for maintaining the concurrency of the
database, we have the concurrency control protocols.
11