GB
What is deadlock detection using a wait-for graph and how does the DBMS resolve detected deadlocks?
IN
वेट-फॉर ग्राफ़ का उपयोग करके गतिरोध का पता लगाना क्या है और डीबीएमएस पता लगाए गए गतिरोधों को कैसे हल करता है?
A
A wait-for graph has one node per transaction and a directed edge T1 to T2 if T1 is waiting for a lock held by T2; a cycle in this graph indicates a deadlock; DBMS resolves by selecting a victim transaction to abort (typically the youngest cheapest or least-work-done transaction)
यदि T1, T2 द्वारा रखे गए लॉक की प्रतीक्षा कर रहा है, तो प्रतीक्षा-ग्राफ़ में प्रति लेनदेन एक नोड और T1 से T2 तक एक निर्देशित किनारा होता है; इस ग्राफ़ में एक चक्र गतिरोध को इंगित करता है; डीबीएमएस निरस्त करने के लिए पीड़ित लेनदेन का चयन करके समाधान करता है (आमतौर पर सबसे कम उम्र का सबसे सस्ता या कम से कम काम करने वाला लेनदेन)
B
A graph showing the order of lock acquisitions
लॉक अधिग्रहण का क्रम दर्शाने वाला ग्राफ़
C
Deadlocks are prevented rather than detected
गतिरोधों का पता लगाने के बजाय उन्हें रोका जाता है
D
A graph used to optimize lock ordering
लॉक ऑर्डरिंग को अनुकूलित करने के लिए उपयोग किया जाने वाला ग्राफ़
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English)
Wait-for graph: periodically built by scanning lock table. Cycle = deadlock. Victim selection criteria: minimize rollback cost (youngest transaction, fewest locks, smallest undo log). Victim is rolled back, releasing its locks, breaking the cycle. Surviving transactions proceed. Detection overhead: O(transactions + locks).
व्याख्या (हिन्दी)
प्रतीक्षा-ग्राफ़: समय-समय पर लॉक टेबल को स्कैन करके बनाया जाता है। चक्र = गतिरोध. पीड़ित चयन मानदंड: रोलबैक लागत को कम करें (सबसे कम लेनदेन, सबसे कम लॉक, सबसे छोटा पूर्ववत लॉग)। पीड़ित को पीछे की ओर घुमाया जाता है, उसके ताले खोल दिए जाते हैं, जिससे साइकिल टूट जाती है। जीवित लेनदेन आगे बढ़ते हैं। डिटेक्शन ओवरहेड: O(लेन-देन + लॉक)।