TheHingineer

  • DBMS


  • DBMS Part-1

  • DBMS Part-2

  • DBMS Part-3

  • DBMS Part-4

  • DBMS Part-5

  •  Recovery with Concurrent Transactions in DBMS

     Recovery ka matlab kya hota hai?

    Jab multiple transactions ek saath (concurrently) chal rahe hote hain aur system crash ho jaata hai (jaise power failure, server crash), toh DBMS ko database ko wapas sahi state mein laana padta hai. Is process ko recovery kehte hain.

     Recovery zaroori kyun hoti hai?

    Sochiye do transactions hain:

    • T1: Account A se ₹100 hata kar B mein daal raha hai.

    • T2: A aur B ka balance check kar raha hai.

    Agar system crash ho gaya beech mein, toh DBMS ko ensure karna hota hai:

    1. Koi aadha transaction save na ho.

    2. Database phir se consistent ho.

    3. ACID properties follow ho rahi ho.

     ACID Properties – Short Recap

    PropertyMeaning
    A – AtomicityYa toh pura transaction chale, ya bilkul na chale.
    C – ConsistencyDatabase hammesha valid state mein ho.
    I – IsolationTransactions ek dusre ko effect na karein.
    D – DurabilityCommit hone ke baad changes permanent ho jayein.

     Recovery ke Mechanisms (Tools)

    Jab multiple transactions ek saath chal rahe hote hain, DBMS recovery ke liye ye tools use karta hai:

    1. Log-Based Recovery (Write-Ahead Logging)

    2. Checkpoints

    3. Concurrency Control (Schedules)

    4. Undo aur Redo


    1. Log-Based Recovery

    DBMS har transaction ka record (log) banaata hai, jismein old value aur new value hoti hai. Ye log pehle likha jaata hai, fir actual database mein change hota hai.

     Example Log:

    <T1, START>
    <T1, A, 1000, 900> // A ki value 1000 se 900 hui
    <T1, COMMIT>
    • Agar system crash ho jaye, toh DBMS ye log dekh ke decide karta hai:

      • Redo karein agar transaction commit ho chuka hai.

      • Undo karein agar transaction abhi tak commit nahi hua.

    2. Checkpoints

    Checkpoint ek aisa point hota hai jahan DBMS current state ko save kar leta hai.

     Advantage:

    • Recovery fast hoti hai.

    • Sirf checkpoint ke baad wale logs hi padne padte hain.

     Diagram:

    ...Purane Logs...
    <Checkpoint>
    <T1, START>
    <T2, START>
    <T1, A, 500, 450>
     

    Crash ke baad DBMS recovery ko checkpoint se start karta hai, pura log padhne ki zarurat nahi padti.

    3. Concurrency Control & Schedules

    Jab multiple transactions ek saath chal rahe hote hain, toh DBMS serializability aur locking jaise rules use karta hai.

    Ye ensure karta hai:

    • Transactions ek valid order mein chalein.

    • Recovery correctly undo/redo kar sake.

    4. Undo aur Redo Operations

     Undo:

    • Jab transaction commit nahi hua ho.

    • Database original value pe wapas jaata hai.

     Redo:

    • Jab transaction commit ho gaya ho.

    • Changes ko dobara apply kiya jaata hai.

     Example: Concurrent Transactions ke saath Recovery

    Initial Values:

    • A = ₹1000, B = ₹2000

    Transactions:

    • T1: A se ₹100 hata kar B mein daalta hai.

    • T2: A aur B ka balance print karta hai.

    Crash Point:

    System crash ho gaya jab A update ho chuka tha but B abhi update nahi hua.

    Log:

    <T1, START>
    <T1, A, 1000, 900>
    <T2, START>
    <T2, READ A>
    <T2, READ B>
    <T1, B, 2000, 2100>
    <T1, COMMIT>
    <T2, COMMIT>
     

    Recovery:

    • T1 committed haiRedo dono changes (A = 900, B = 2100)

    • T2 committed hai → koi change nahi kiya, toh kuch nahi karna

    Agar T1 commit nahi karta, toh Undo hota (A wapas ₹1000 pe aata).

     Final Database State:

    AccountValue
    A₹900
    B₹2100

    Database ab bhi sahi aur consistent hai. Saare committed transactions apply ho chuke hain.


     Summary 

    MechanismKaam
    LoggingChanges record karta hai
    CheckpointsRecovery ko fast banata hai
    Concurrency ControlSafe concurrent execution ke liye
    Undo/RedoDatabase ko correct state mein laata hai
    Scroll to Top