लेनदेन प्रबंधन और समवर्तीता
लेनदेन प्रबंधन और समवर्तीता नियंत्रण एक डेटाबेस को कई समवर्ती लेनदेन को सही ढंग से निष्पादित करने और विफलताओं से बचने की अनुमति देते हैं, जिससे परमाणुता, संगति, अलगाव और स्थायित्व (ACID) गुणों की गारंटी मिलती है।
Definition
एक लेनदेन डेटाबेस संचालन का एक क्रम है जिसे एक एकल तार्किक इकाई के रूप में निष्पादित किया जाता है जो परमाणु होता है, संगति-संरक्षण करता है, समवर्ती लेनदेन से अलग होता है, और एक बार प्रतिबद्ध होने के बाद टिकाऊ होता है; लेनदेन प्रबंधन उन तंत्रों का समूह है जो समवर्तीता और विफलता के तहत इन गुणों को लागू करते हैं।
Scope
यह क्षेत्र कार्य की इकाई के रूप में लेनदेन और उन तंत्रों को शामिल करता है जो समवर्ती, विफलता-प्रवण निष्पादन को सही बनाते हैं: ACID गुण; समवर्तीता के लिए शुद्धता मानदंड के रूप में क्रमबद्धता (serializability); इसे लागू करने वाले लॉकिंग, टाइमस्टैम्प और मल्टीवर्जन प्रोटोकॉल; कमजोर अलगाव स्तर जो प्रदर्शन के लिए संगति का व्यापार करते हैं; और लॉगिंग और रिकवरी तकनीकें जो क्रैश के दौरान परमाणुता और स्थायित्व सुनिश्चित करती हैं। इसमें कई साइटों पर वितरित प्रतिबद्धता शामिल नहीं है, जिसे वितरित और समानांतर डेटाबेस क्षेत्र में माना जाता है।
Sub-topics
Core questions
- ACID गुण क्या गारंटी देते हैं और उनकी आवश्यकता क्यों है?
- एक समवर्ती अनुसूची को क्या सही बनाता है, यानी क्रमबद्ध (serializable)?
- लॉकिंग, टाइमस्टैम्प और मल्टीवर्जन प्रोटोकॉल क्रमबद्धता को कैसे लागू करते हैं?
- लॉगिंग और रिकवरी क्रैश के बाद एक सुसंगत स्थिति को कैसे बहाल करते हैं?
- कमजोर अलगाव स्तर संगति के लिए समवर्तीता का व्यापार कैसे करते हैं?
Key concepts
- लेनदेन और प्रतिबद्ध/रद्द (commit/abort)
- ACID गुण
- क्रमबद्धता (serializability) और पूर्वता ग्राफ
- दो-चरण लॉकिंग (two-phase locking)
- टाइमस्टैम्प ऑर्डरिंग
- मल्टीवर्जन समवर्तीता नियंत्रण
- डेडलॉक का पता लगाना और रोकथाम
- राइट-अहेड लॉगिंग
- अलगाव स्तर
Key theories
- ACID गुण
- परमाणुता (all-or-nothing निष्पादन), संगति (अखंडता बाधाओं का संरक्षण), अलगाव (समवर्ती लेनदेन अकेले चलने लगते हैं), और स्थायित्व (प्रतिबद्ध प्रभाव विफलताओं से बचे रहते हैं) मिलकर सही लेनदेन व्यवहार को परिभाषित करते हैं।
- क्रमबद्धता (Serializability)
- एक समवर्ती अनुसूची सही है यदि यह कुछ क्रमिक निष्पादन के बराबर है; संघर्ष क्रमबद्धता (conflict serializability), जिसे पूर्वता (क्रमबद्धता) ग्राफ के माध्यम से परीक्षण किया जाता है, वह व्यावहारिक मानदंड है जिसे समवर्तीता-नियंत्रण प्रोटोकॉल लागू करते हैं।
- समवर्तीता नियंत्रण और रिकवरी
- लॉकिंग, टाइमस्टैम्प ऑर्डरिंग और मल्टीवर्जन विधियाँ गैर-क्रमबद्ध अंतर्विन्यास को रोकती हैं, जबकि राइट-अहेड लॉगिंग और रिकवरी एल्गोरिदम परमाणुता और स्थायित्व की गारंटी देते हैं, जो सही लेनदेन प्रसंस्करण के दो भाग हैं।
Clinical relevance
लेनदेन प्रबंधन ही वह है जो डेटाबेस को धन और रिकॉर्ड के लिए भरोसेमंद बनाता है: यह सुनिश्चित करता है कि एक बैंक हस्तांतरण कभी भी दूसरे खाते में जमा किए बिना एक खाते से डेबिट नहीं करता है, कि एक एयरलाइन समवर्ती अनुरोधों के तहत कभी भी एक सीट को दोबारा बुक नहीं करती है, और यह कि प्रतिबद्ध डेटा क्रैश से बचा रहता है, जो सभी विश्वसनीय लेनदेन प्रणालियों का आधार है।
History
लेनदेन की अवधारणा और ACID गुणों को 1970 के दशक में IBM के सिस्टम R में औपचारिक रूप दिया गया था; ईश्वरन और सहयोगियों (1976) ने संगति और लॉकिंग की धारणाओं को स्थापित किया, जिम ग्रे ने लेनदेन और रिकवरी को परिभाषित किया, और बर्नस्टीन, हैडज़िलाकोस और गुडमैन (1987) ने क्रमबद्धता सिद्धांत को व्यवस्थित किया। लेनदेन प्रसंस्करण में ग्रे के योगदान ने उन्हें ट्यूरिंग अवार्ड दिलाया।
Key figures
- Jim Gray
- Philip Bernstein
- Andreas Reuter
Related topics
Seminal works
- gray1992
- bernstein1987
- eswaran1976
Frequently asked questions
- लेनदेन की अनुसूची के क्रमबद्ध (serializable) होने का क्या अर्थ है?
- एक समवर्ती अनुसूची क्रमबद्ध होती है यदि इसका समग्र प्रभाव उन्हीं लेनदेन को किसी क्रम में एक के बाद एक चलाने के समान हो। क्रमबद्धता स्वर्ण-मानक शुद्धता मानदंड है: भले ही लेनदेन प्रदर्शन के लिए अंतर्विन्यास करते हों, परिणाम ऐसा होता है जैसे वे क्रमिक रूप से निष्पादित हुए हों, इसलिए कोई भी लेनदेन एक असंगत मध्यवर्ती स्थिति नहीं देखता है।
- यदि कमजोर अलगाव स्तर विसंगतियाँ उत्पन्न कर सकते हैं तो उन्हें क्यों अनुमति दी जाती है?
- पूर्ण क्रमबद्धता को लागू करने में लॉक विवाद और रद्द करने में प्रदर्शन लागत आती है। कई एप्लिकेशन उच्च समवर्तीता के बदले कुछ विसंगतियों को सहन कर सकते हैं, इसलिए SQL मानक कमजोर अलगाव स्तरों (पढ़ा गया प्रतिबद्ध, दोहराने योग्य पढ़ा गया, आदि) को परिभाषित करता है जो डेवलपर्स को जानबूझकर थ्रूपुट के लिए कुछ अलगाव का व्यापार करने देते हैं।