Professional Documents
Culture Documents
Concurrency
Reliability , Transactions & Concurrency
Reliable System: if it functions as per its
specifications and produces a correct set of out
values for a given set of input values.
Failure of system: if it does not functions as per the
specifications and fail to deliver the service for
which it was intended.
Error: when component of a system assumes
undesirable state.
Fault: when an error is propagated from one
component to another
Reliability
Systems
Serializability:
1) Conflict Serializability
2) View Serializability
Conflict Serializable
1. Ii =read (q), Ij =read (Q) means they refers to same data item and
order does not matter (permutable operation)
2. Ii =read (q), Ij =write (Q) if Ii comes before Ij then Ti does not read a
value that is going to be written by Tj but if Ij comes before Ii then Ti
can read the value that is written by Tj. (non-permutable operation)
3. Ii =write (q), Ij = read (Q) .(non-permutable operation)
4. Ii =write (q), Ij = write (Q) order does not matter (permutable
operation).
1. Recoverable
2. Non-recoverable Schedule.
Properties of schedule
• Recoverable:
– a schedule where, if transaction Tj reads a change made by
transaction Ti, Ti commits before Tj.
• Cascadeless:
– a schedule where, if transaction Tj reads a change made by
transaction Ti, Ti commits before read operation of Tj.
– means where every transaction can only read changes of committed
transactions
• Strict:
– a schedule where every transaction does not read or write values changed by
any other active transaction
Concurrency
The Transaction Manager should guarantee that
concurrently executing transactions do not
interfere with each other. If this is not the
case, 4 basic types of problems could arise:
– Lost Update: concurrent updates
– Dirty Read: reading uncommitted data
– Unrepeatable Read: interleaving reads and
Writes
– Phantom Row: new data not appearing in the
result of a query
Examples of isolation problem
• Lost Update: two people, in different shops, buy the
very last ticket for the A Movie (!?)
• Dirty Read: Some tour schedule shows a date e.g
15/07/17, but when you try to buy the ticket for that
tour, the system tells that no such date exists (!?)
• Unrepeatable Read: dates of 1st show for some movie
the date has been decided, you see a price of Rs.
10,000 , you think about it a little, but when you’re
decided, the price is risen to Rs. 15000 (!?)
• Phantom Row: you want to go see both shows of
some concert , but when you try to buy tickets, you
discover that there are now three dates (!?)
Lost Update
• The following schedules show a typical lost
update case, where we also highlight
operations updating the value of X and show
how the value of X in the DB varies over
timeThe problem arises because T2reads the
value of Xbefore T1(that already read it)
updates it (“both transactions see the last
ticket”)
Lost Update
• The problem arises because T2reads the
value of X before T1(that already read it)
updates it (“both transactions see the last
ticket”)
Dirty Read
• In this case, the problem arises because a
transactions read a value that is not correct:
Dirty Read
• What T2 does is based on an “intermediate”,
non-stable value of X, Consequences are
unpredictable (it depends on what T2 does)
and would be present even if T1 would not
abort
Unrepeatable Read
• Now the problem is that a transaction reads a
value twice, with different
outcomes(“meanwhile, the price has
increased”)
Phantom Row
• This case could arise only when tuples are
deleted or inserted that should be logically
considered by another transaction E.g.:
record r4 is “phantom”, since T1 “dose not
see it”
Thanks