TheHingineer

  • DBMS


  • DBMS Part-1

  • DBMS Part-2

  • DBMS Part-3

  • DBMS Part-4

  • DBMS Part-5

  •  Lock-Based Protocol in DBMS 


     Lock kya hota hai DBMS mein?

    Lock ek aisa system hai jise DBMS use karta hai taaki ek samay par sirf ek transaction data ko access ya modify kar sake. Isse data safe rehta hai aur galti nahi hoti.

    Jaise agar ek aadmi ek locker open karke kaam kar raha hai, to doosra us locker mein haath nahi daal sakta.


     Lock ki zarurat kyu padti hai?

    Agar 2 ya zyada transactions ek hi data ko ek saath access karte hain (without control), to:

    • Data inconsistent ho sakta hai (galat result)

    • Lost updates ho sakte hain

    • Dirty read ya unrepeatable read jaisi problems ho sakti hain

     Example – Jab Lock Nahi Use Hota

    Step T1 (Deposit ₹500) T2 (Withdraw ₹200)
    1 Read balance = ₹1000  
    2   Read balance = ₹1000
    3 New = 1000 + 500 = ₹1500  
    4   New = 1000 – 200 = ₹800
    5 Write ₹1500  
    6   Write ₹800

     Correct balance hona chahiye tha: ₹1300
     Actual balance hai: ₹800 → galat!

     Solution: Lock-Based Protocol

    Is protocol mein transaction ko lock lena padta hai data pe kaam karne se pehle, aur kaam khatam hone ke baad lock release karna padta hai.

     Lock ke Types:

    Lock Type Kya karta hai?
    Shared Lock (S-Lock) Jab data ko sirf read karna ho (multiple read allowed)
    Exclusive Lock (X-Lock) Jab data ko write karna ho (only one allowed)

     Lock Kaise Kaam Karta Hai?

    1. Transaction lock leta hai (read ya write ke hisaab se)

    2. Agar lock available hai to kaam start hota hai

    3. Agar lock kisi aur ke paas hai to wait karta hai

    4. Kaam khatam hone ke baad lock release kar deta hai

     Two-Phase Locking Protocol (2PL)

    Yeh most popular locking method hai. Isme 2 phases hote hain:

    1. Growing Phase

    • Transaction lock le sakta hai

    • Lock release nahi kar sakta

    2. Shrinking Phase

    • Transaction lock release kar sakta hai

    • Naya lock nahi le sakta

     Ek baar unlock karna shuru kiya to aur lock nahi le sakte.

     Example of 2PL

    T1:
    Lock(A)
    Read A
    Lock(B)
    Write B
    Unlock(A)
    Unlock(B)
    • Lock(A), Lock(B) → Growing phase

    • Unlock(A), Unlock(B) → Shrinking phase

     Agar T2 ko bhi A ya B ki jarurat hai toh T2 wait karega jab tak T1 lock release nahi karta — data safe rahega.


     Lock ke Problems

    1. Deadlock

    • Jab do transactions ek dusre ka lock leke wait karte hain

    • Dono ruke rehte hain

    Example:

    • T1 ne A lock kiya, B chahiye

    • T2 ne B lock kiya, A chahiye
      = Deadlock

    2. Starvation

    • Ek transaction baar-baar wait karta hai kyunki doosre transaction baar-baar lock le lete hain.

     Deadlock Se Kaise Bache?

    Method Kya karta hai?
    Timeout Agar transaction zyada der wait kare to rollback
    Wait-Die / Wound-Wait Old transaction younger ko rokta hai ya rollback karta hai
    Deadlock Detection Cycle detect karke transaction ko abort karta hai

     Quick Summary

    Feature Explanation
    Lock Control karta hai data access ko
    S-Lock Sirf read ke liye, multiple allowed
    X-Lock Read+Write, ek samay pe sirf ek hi allowed
    2PL Pehle locks lo (grow), baad mein release karo (shrink)
    Deadlock / Starvation Lock se judey major problems

     Conclusion

    • Lock-Based Protocol data ko safe rakhne ke liye bahut zaroori hai

    • Isse multiple users safe tarike se ek hi data ko access kar sakte hain

    • Deadlocks aur starvation jaise issues ko handle karne ke liye proper rules follow karne padte hain

    Scroll to Top