समवर्ती नियंत्रण प्रोटोकॉल
समवर्ती नियंत्रण प्रोटोकॉल वे विधियाँ हैं — लॉकिंग, टाइमस्टैम्प ऑर्डरिंग, आशावादी सत्यापन, और मल्टीवर्जनिंग — जो समवर्ती लेनदेन को इस प्रकार निर्धारित करती हैं कि परिणाम एक क्रमिक निष्पादन के समतुल्य हो।
Definition
एक समवर्ती नियंत्रण प्रोटोकॉल नियमों का एक समूह है जो यह नियंत्रित करता है कि समवर्ती लेनदेन डेटा तक पहुंच कैसे प्राप्त करते हैं ताकि प्रत्येक अनुमत शेड्यूल क्रमबद्ध हो (या एक चुने हुए कमजोर अलगाव स्तर को संतुष्ट करता है), जिससे लेनदेन को एक-एक करके चलाने के लिए मजबूर किए बिना अलगाव बना रहता है।
Scope
यह विषय उन प्रोटोकॉल को शामिल करता है जो समवर्तीता के तहत क्रमबद्धता को लागू करते हैं: दो-चरण लॉकिंग और इसका सख्त संस्करण, डेडलॉक का पता लगाने और रोकथाम के साथ; टाइमस्टैम्प-ऑर्डरिंग प्रोटोकॉल; रीड-वैलिडेट-राइट चरणों के साथ आशावादी समवर्ती नियंत्रण; और स्नैपशॉट आइसोलेशन सहित मल्टीवर्जन समवर्ती नियंत्रण। यह बताता है कि प्रत्येक प्रोटोकॉल सही शेड्यूल की गारंटी कैसे देता है और ब्लॉकिंग, एबॉर्शन और थ्रूपुट के बीच क्या समझौता होता है। इसमें क्रमबद्धता की परिभाषा और समवर्ती नियंत्रण के पूरक पुनर्प्राप्ति तंत्र शामिल नहीं हैं।
Core questions
- दो-चरण लॉकिंग क्रमबद्ध शेड्यूल की गारंटी कैसे देता है?
- डेडलॉक का पता कैसे लगाया जाता है, रोका कैसे जाता है, या हल कैसे किया जाता है?
- टाइमस्टैम्प-ऑर्डरिंग और आशावादी प्रोटोकॉल लॉकिंग से कैसे भिन्न होते हैं?
- मल्टीवर्जन समवर्ती नियंत्रण पाठकों को लेखकों को ब्लॉक करने से कैसे बचाता है?
- निराशावादी और आशावादी विधियों के बीच थ्रूपुट के क्या समझौते हैं?
Key concepts
- दो-चरण लॉकिंग
- सख्त और कठोर 2PL
- साझा और अनन्य लॉक
- डेडलॉक का पता लगाना और रोकथाम
- टाइमस्टैम्प ऑर्डरिंग
- आशावादी समवर्ती नियंत्रण
- मल्टीवर्जन समवर्ती नियंत्रण
- स्नैपशॉट आइसोलेशन
Key theories
- दो-चरण लॉकिंग
- यदि प्रत्येक लेनदेन अपने सभी लॉक जारी करने से पहले उन्हें प्राप्त कर लेता है (एक बढ़ते चरण के बाद एक सिकुड़ता चरण), तो सभी परिणामी शेड्यूल संघर्ष-क्रमबद्ध होते हैं; सख्त दो-चरण लॉकिंग पुनर्प्राप्ति सुनिश्चित करने के लिए प्रतिबद्ध होने तक राइट लॉक को अतिरिक्त रूप से रखती है।
- आशावादी समवर्ती नियंत्रण
- लेनदेन बिना लॉकिंग के निष्पादित होते हैं और समवर्ती लेनदेन के विरुद्ध प्रतिबद्धता के समय मान्य होते हैं; परस्पर विरोधी लेनदेन को रद्द कर दिया जाता है और पुनः प्रयास किया जाता है, जो तब अच्छा प्रदर्शन करता है जब विवाद कम होता है।
- मल्टीवर्जन समवर्ती नियंत्रण
- प्रत्येक डेटा आइटम के कई संस्करणों को रखकर, सिस्टम रीड्स को राइट्स को ब्लॉक किए बिना एक सुसंगत स्नैपशॉट तक पहुंचने देता है; स्नैपशॉट आइसोलेशन एक व्यापक रूप से उपयोग की जाने वाली मल्टीवर्जन योजना है, हालांकि यह कुछ गैर-क्रमबद्ध विसंगतियों की अनुमति दे सकती है।
Clinical relevance
समवर्ती नियंत्रण प्रोटोकॉल यह निर्धारित करते हैं कि एक डेटाबेस लोड के तहत कैसे व्यवहार करता है: लॉकिंग मजबूत है लेकिन डेडलॉक और विवाद का कारण बन सकती है, आशावादी और मल्टीवर्जन विधियाँ उच्च रीड समवर्तीता को सक्षम करती हैं, और प्रोटोकॉल का चुनाव उच्च-ट्रैफिक लेनदेन प्रणालियों के थ्रूपुट और विलंबता को सीधे आकार देता है।
History
दो-चरण लॉकिंग और प्रेडिकेट लॉक्स को 1976 में सिस्टम आर में एस्वरन और उनके सहयोगियों द्वारा औपचारिक रूप दिया गया था; कुंग और रॉबिन्सन ने 1981 में आशावादी समवर्ती नियंत्रण की शुरुआत की; और बर्नस्टीन, हैडज़िलाकोस, और गुडमैन के 1987 के मोनोग्राफ ने सिद्धांत को एकीकृत किया। मल्टीवर्जन विधियाँ और स्नैपशॉट आइसोलेशन बाद में उनके रीड-फ्रेंडली व्यवहार के लिए व्यापक रूप से उपयोग किए जाने वाले डेटाबेस सिस्टम में प्रमुख हो गए।
Debates
- स्नैपशॉट आइसोलेशन बनाम क्रमबद्धता
- स्नैपशॉट आइसोलेशन पाठकों को एक सुसंगत स्नैपशॉट देखने की अनुमति देकर उच्च समवर्तीता प्रदान करता है, लेकिन यह राइट स्क्यू जैसी विसंगतियों की अनुमति देता है जिन्हें पूर्ण क्रमबद्धता प्रतिबंधित करती है; व्यवसायी इस बात पर बहस करते हैं कि इसकी कमजोर गारंटी कब स्वीकार्य है और कब क्रमबद्ध वेरिएंट की आवश्यकता होती है।
Key figures
- Jim Gray
- Philip Bernstein
- H. T. Kung
Related topics
Seminal works
- eswaran1976
- kung1981
- bernstein1987
Frequently asked questions
- डेडलॉक का क्या कारण है और इसे कैसे संभाला जाता है?
- एक डेडलॉक तब होता है जब दो या दो से अधिक लेनदेन प्रत्येक एक लॉक रखते हैं जिसकी दूसरे को आवश्यकता होती है, इसलिए कोई भी आगे नहीं बढ़ सकता है। सिस्टम इसे या तो पता लगाकर — एक वेट्स-फॉर ग्राफ बनाकर, एक चक्र ढूंढकर, और एक पीड़ित लेनदेन को रद्द करके — या रोकथाम योजनाओं द्वारा संभालते हैं जो लॉक अधिग्रहण को ऑर्डर करते हैं या यह तय करने के लिए टाइमस्टैम्प का उपयोग करते हैं कि कौन सा लेनदेन प्रतीक्षा करता है बनाम रद्द करता है।
- आशावादी समवर्ती नियंत्रण कब एक अच्छा विकल्प है?
- आशावादी विधियाँ तब चमकती हैं जब संघर्ष दुर्लभ होते हैं, क्योंकि लेनदेन बिना लॉकिंग ओवरहेड के चलते हैं और केवल कभी-कभी सत्यापन में विफल होते हैं और पुनः प्रयास करते हैं। उच्च विवाद के तहत वे रद्द करने और पुनः प्रयास करने पर काम बर्बाद करते हैं, इसलिए राइट-हैवी, संघर्ष-प्रवण वर्कलोड के लिए आमतौर पर निराशावादी लॉकिंग या मल्टीवर्जन विधियों को प्राथमिकता दी जाती है।