/    /  DBMS- Lock-Compatibility Matrix 

Lock-Compatibility Matrix 

 

SX
STrueFalse
XFalseFalse

Here, only S and S are compatible.

 

This Compatibility function works as follows :

A and B represent some arbitrary lock modes.( A = S/X  and B = S/X).

 

Let’s say, a lock of mode A is requested by transaction Ti on item Q on which Transaction Tj (Ti  Tj) currently holds a lock of mode B.

 

If transaction Ti can be granted a lock on Q immediately, even though there is a lock on mode B, then we say mode A is compatible with mode B.

 

Example-1: A and B are two accounts that are accessed by transactions T1 and T2.

Transaction T1 :  lock-X(B) ;

 read (B) ;

 B = B – 50 ;

 write (B) ;

 unlock (B) ;

  lock-X(A) ;

 read (A) ;

 A = A + 50 ;

 write (A) ;

 unlock (A) ; 

 

Here, in this transaction T1 transfers Rs. 50 from Account-B to Account-A. And the total amount of money present in accounts A and B is displayed by Transaction T2. 

i.e., A + B.

 

Transaction T2 :  lock-S(A) ;

 read (A) ;

 unlock (A) ;

 lock-S(B) ;

 read (B) ;

 unlock (B) ;

 display ( A + B ) ;

 

Schedule-1 :

T1T2Concurrency Control Manager
Lock-X (B)
grant-X (B, T1)
read (B) ;

B = B – 50 ;

write (B) ;

unlock (B) ;

lock-S (A)
grant-S (A, T2)
read(A)                                           unlock(A)                                           lock-S (B)
grant-S (B, T2)
read(B)                                               unlock(B)                                   display (A + B)
lock-X (A)
grant-X(A, T1)
read(A)                 A = A – 50

write (A)

unlock (A)   

Let’s take another example to understand this topic better in the next article

 

Reference Link

Lock-Compatibility Matrix