डीबीएमएस समवर्ती नियंत्रण: टाइमस्टैम्प और लॉक-आधारित प्रोटोकॉल

समवर्ती नियंत्रण क्या है?

समरूपता नियंत्रण डेटाबेस प्रबंधन प्रणाली में एक दूसरे के साथ टकराव के बिना एक साथ संचालन का प्रबंधन करने की एक प्रक्रिया है। यह सुनिश्चित करता है कि डेटाबेस लेनदेन संबंधित डेटाबेस की डेटा अखंडता का उल्लंघन किए बिना सही परिणाम देने के लिए समवर्ती और सटीक रूप से निष्पादित किए जाते हैं।

यदि सभी उपयोगकर्ता केवल डेटा पढ़ रहे हैं तो समवर्ती पहुँच काफी आसान है। ऐसा कोई तरीका नहीं है जिससे वे एक दूसरे के साथ हस्तक्षेप कर सकें। हालांकि किसी भी व्यावहारिक डेटाबेस के लिए, इसमें READ और WRITE संचालन का मिश्रण होगा और इसलिए समवर्तीता एक चुनौती है।

DBMS समवर्ती नियंत्रण का उपयोग ऐसे संघर्षों को संबोधित करने के लिए किया जाता है, जो अधिकतर बहु-उपयोगकर्ता सिस्टम के साथ होते हैं। इसलिए, समवर्ती नियंत्रण डेटाबेस प्रबंधन प्रणाली के समुचित संचालन के लिए सबसे महत्वपूर्ण तत्व है, जहाँ दो या अधिक डेटाबेस लेनदेन एक साथ निष्पादित होते हैं, जिसके लिए समान डेटा तक पहुँच की आवश्यकता होती है।

समवर्तीता की संभावित समस्याएं

यहां कुछ समस्याएं दी गई हैं जिनका सामना आपको DBMS समवर्ती नियंत्रण विधि का उपयोग करते समय करना पड़ सकता है:

  • खोए हुए अपडेट ऐसा तब होता है जब एकाधिक लेनदेन एक ही पंक्ति का चयन करते हैं और चयनित मान के आधार पर पंक्ति को अपडेट करते हैं
  • अप्रतिबद्ध निर्भरता समस्या तब उत्पन्न होती है जब दूसरा लेनदेन एक पंक्ति का चयन करता है जिसे किसी अन्य लेनदेन द्वारा अद्यतन किया जाता है (गंदा पढ़ा)
  • गैर-दोहराए जाने योग्य पठन यह तब होता है जब दूसरा लेनदेन कई बार एक ही पंक्ति तक पहुंचने का प्रयास करता है और हर बार अलग डेटा पढ़ता है।
  • ग़लत सारांश समस्या ऐसा तब होता है जब एक लेनदेन किसी दोहराए गए डेटा-आइटम के सभी इंस्टेंस के मूल्य पर सारांश लेता है, और दूसरा लेनदेन उस विशिष्ट डेटा-आइटम के कुछ इंस्टेंस को अपडेट करता है। उस स्थिति में, परिणामी सारांश सही परिणाम नहीं दर्शाता है।

समवर्ती विधि का उपयोग क्यों करें?

डीबीएमएस में समवर्ती नियंत्रण विधि का उपयोग करने के कारण:

  • परस्पर विरोधी लेन-देन के बीच पारस्परिक बहिष्कार के माध्यम से अलगाव लागू करना
  • पढ़ने-लिखने और लिखने-लिखने के संघर्ष के मुद्दों को हल करने के लिए
  • निष्पादन अवरोधों को लगातार संरक्षित करके डेटाबेस की स्थिरता को बनाए रखना
  • सिस्टम को समवर्ती लेनदेन के बीच की बातचीत को नियंत्रित करने की आवश्यकता है। यह नियंत्रण समवर्ती-नियंत्रण योजनाओं का उपयोग करके प्राप्त किया जाता है।
  • समवर्ती नियंत्रण क्रमबद्धता सुनिश्चित करने में मदद करता है

उदाहरण

मान लीजिए कि दो व्यक्ति एक ही समय पर एक ही फिल्म और एक ही शो के लिए मूवी टिकट खरीदने के लिए इलेक्ट्रॉनिक कियोस्क पर जाते हैं।

हालाँकि, उस विशेष थिएटर में मूवी शो के लिए केवल एक सीट बची है। DBMS में समवर्ती नियंत्रण के बिना, यह संभव है कि दोनों मूवी देखने वाले टिकट खरीद लें। हालाँकि, समवर्ती नियंत्रण विधि ऐसा होने की अनुमति नहीं देती है। दोनों मूवी देखने वाले अभी भी मूवी सीटिंग डेटाबेस में लिखी जानकारी तक पहुँच सकते हैं। लेकिन समवर्ती नियंत्रण केवल उस खरीदार को टिकट प्रदान करता है जिसने पहले लेनदेन प्रक्रिया पूरी कर ली है।

समवर्ती नियंत्रण प्रोटोकॉल

विभिन्न समवर्ती नियंत्रण प्रोटोकॉल उनके द्वारा अनुमत समवर्तीता की मात्रा और उनके द्वारा लगाए जाने वाले ओवरहेड की मात्रा के बीच अलग-अलग लाभ प्रदान करते हैं। DBMS में समवर्ती नियंत्रण तकनीकें निम्नलिखित हैं:

  • लॉक-आधारित प्रोटोकॉल
  • दो चरण लॉकिंग प्रोटोकॉल
  • टाइमस्टैम्प-आधारित प्रोटोकॉल
  • सत्यापन-आधारित प्रोटोकॉल

लॉक-आधारित प्रोटोकॉल

लॉक आधारित प्रोटोकॉल डीबीएमएस में एक ऐसा तंत्र है जिसमें कोई लेनदेन तब तक डेटा को पढ़ या लिख ​​नहीं सकता जब तक कि वह उचित लॉक प्राप्त न कर ले। लॉक आधारित प्रोटोकॉल डीबीएमएस में एक साथ होने वाले लेनदेन के लिए समवर्ती समस्या को खत्म करने में मदद करते हैं, किसी विशेष लेनदेन को एक ही उपयोगकर्ता के लिए लॉक या अलग करके।

लॉक एक डेटा वैरिएबल है जो डेटा आइटम से जुड़ा होता है। यह लॉक उन ऑपरेशनों को दर्शाता है जो डेटा आइटम पर किए जा सकते हैं। DBMS में लॉक समवर्ती लेनदेन द्वारा डेटाबेस आइटम तक पहुँच को सिंक्रनाइज़ करने में मदद करते हैं।

सभी लॉक अनुरोध समवर्ती-नियंत्रण प्रबंधक को किए जाते हैं। लेन-देन तभी आगे बढ़ता है जब लॉक अनुरोध स्वीकृत हो जाता है।

बाइनरी लॉक: किसी डेटा आइटम पर बाइनरी लॉक या तो लॉक या अनलॉक स्थिति में हो सकता है।

साझा/अनन्य: इस प्रकार का लॉकिंग तंत्र DBMS में लॉक को उनके उपयोग के आधार पर अलग करता है। यदि किसी डेटा आइटम पर कोई लॉक किसी लेखन ऑपरेशन को करने के लिए अधिग्रहित किया जाता है, तो उसे एक्सक्लूसिव लॉक कहा जाता है।

1. साझा लॉक (एस):

शेयर्ड लॉक को रीड-ओनली लॉक भी कहा जाता है। शेयर्ड लॉक के साथ, डेटा आइटम को ट्रांजेक्शन के बीच शेयर किया जा सकता है। ऐसा इसलिए है क्योंकि आपको डेटा आइटम पर डेटा अपडेट करने की अनुमति कभी नहीं होगी।

उदाहरण के लिए, एक ऐसे मामले पर विचार करें जहां दो लेनदेन एक व्यक्ति के खाते की शेष राशि को पढ़ रहे हैं। डेटाबेस एक साझा लॉक लगाकर उन्हें पढ़ने की अनुमति दी जाएगी। हालाँकि, यदि कोई अन्य लेनदेन उस खाते के शेष को अपडेट करना चाहता है, तो साझा लॉक उसे पढ़ने की प्रक्रिया समाप्त होने तक रोक देगा।

2. एक्सक्लूसिव लॉक (X):

एक्सक्लूसिव लॉक के साथ, डेटा आइटम को पढ़ा जा सकता है और साथ ही लिखा भी जा सकता है। यह एक्सक्लूसिव है और इसे एक ही डेटा आइटम पर एक साथ नहीं रखा जा सकता है। X-लॉक का अनुरोध लॉक-x निर्देश का उपयोग करके किया जाता है। लेन-देन 'राइट' ऑपरेशन समाप्त करने के बाद डेटा आइटम को अनलॉक कर सकता है।

उदाहरण के लिए, जब किसी व्यक्ति के खाते की शेष राशि को अपडेट करने के लिए किसी लेनदेन की आवश्यकता होती है। आप इस लेनदेन पर एक्स लॉक लगाकर इसकी अनुमति दे सकते हैं। इसलिए, जब दूसरा लेनदेन पढ़ना या लिखना चाहता है, तो एक्सक्लूसिव लॉक इस ऑपरेशन को रोकता है।

3. सरल लॉक प्रोटोकॉल

इस प्रकार के लॉक-आधारित प्रोटोकॉल लेनदेन को ऑपरेशन शुरू करने से पहले हर ऑब्जेक्ट पर लॉक प्राप्त करने की अनुमति देते हैं। लेनदेन 'राइट' ऑपरेशन खत्म करने के बाद डेटा आइटम को अनलॉक कर सकते हैं।

4. प्री-क्लेमिंग लॉकिंग

प्री-क्लेमिंग लॉक प्रोटोकॉल संचालन का मूल्यांकन करने और आवश्यक डेटा आइटम की सूची बनाने में मदद करता है जो निष्पादन प्रक्रिया शुरू करने के लिए आवश्यक हैं। ऐसी स्थिति में जब सभी लॉक दिए जाते हैं, तो लेनदेन निष्पादित होता है। उसके बाद, जब इसके सभी ऑपरेशन समाप्त हो जाते हैं तो सभी लॉक रिलीज़ हो जाते हैं।

भुखमरी

भुखमरी वह स्थिति है जब किसी लेनदेन को लॉक प्राप्त करने के लिए अनिश्चित अवधि तक प्रतीक्षा करनी पड़ती है।

भुखमरी के निम्नलिखित कारण हैं:

  • जब लॉक किए गए आइटम के लिए प्रतीक्षा योजना ठीक से प्रबंधित नहीं की जाती है
  • संसाधन लीक के मामले में
  • एक ही लेनदेन को बार-बार शिकार के रूप में चुना जाता है

गतिरोध

डेडलॉक एक विशिष्ट स्थिति को संदर्भित करता है, जहां दो या अधिक प्रक्रियाएं एक दूसरे के संसाधन जारी करने की प्रतीक्षा कर रही हों या दो से अधिक प्रक्रियाएं एक चक्राकार श्रृंखला में संसाधन की प्रतीक्षा कर रही हों।

दो चरण लॉकिंग प्रोटोकॉल

दो चरण लॉकिंग प्रोटोकॉल 2PL प्रोटोकॉल के रूप में भी जाना जाता है, यह DBMS में समवर्ती नियंत्रण की एक विधि है जो लेनदेन डेटा पर लॉक लगाकर क्रमबद्धता सुनिश्चित करता है जो अन्य लेनदेन को एक ही समय में समान डेटा तक पहुँचने से रोकता है। दो चरण लॉकिंग प्रोटोकॉल DBMS में समवर्ती समस्या को खत्म करने में मदद करता है।

यह लॉकिंग प्रोटोकॉल लेनदेन के निष्पादन चरण को तीन अलग-अलग भागों में विभाजित करता है।

  • पहले चरण में, जब लेनदेन निष्पादित होना शुरू होता है, तो उसे आवश्यक लॉक के लिए अनुमति की आवश्यकता होती है।
  • दूसरा भाग वह है जहाँ लेनदेन सभी लॉक प्राप्त करता है। जब कोई लेनदेन अपना पहला लॉक रिलीज़ करता है, तो तीसरा चरण शुरू होता है।
  • इस तीसरे चरण में, लेनदेन किसी नए लॉक की मांग नहीं कर सकता है। इसके बजाय, यह केवल अधिग्रहित लॉक को ही रिलीज़ करता है।

दो चरण लॉकिंग प्रोटोकॉल

दो-चरण लॉकिंग प्रोटोकॉल प्रत्येक लेनदेन को दो चरणों में लॉक या अनलॉक अनुरोध करने की अनुमति देता है:

  • बढ़ता हुआ चरणइस चरण में लेनदेन लॉक प्राप्त कर सकता है लेकिन किसी भी लॉक को जारी नहीं कर सकता है।
  • सिकुड़ता चरणइस चरण में, लेनदेन लॉक जारी कर सकता है लेकिन कोई नया लॉक प्राप्त नहीं कर सकता है

यह सच है कि 2PL प्रोटोकॉल क्रमबद्धता प्रदान करता है। हालाँकि, यह सुनिश्चित नहीं करता है कि डेडलॉक न हो।

ऊपर दिए गए आरेख में, आप देख सकते हैं कि स्थानीय और वैश्विक डेडलॉक डिटेक्टर डेडलॉक की खोज कर रहे हैं और लेनदेन को उनकी प्रारंभिक अवस्था में फिर से शुरू करके उन्हें हल कर रहे हैं।

सख्त दो-चरण लॉकिंग विधि

स्ट्रिक्ट-टू फेज लॉकिंग सिस्टम लगभग 2PL जैसा ही है। फर्क सिर्फ इतना है कि स्ट्रिक्ट-2PL इस्तेमाल करने के बाद कभी भी लॉक नहीं छोड़ता। यह कमिट पॉइंट तक सभी लॉक को होल्ड करता है और प्रक्रिया खत्म होने पर एक बार में सभी लॉक को रिलीज़ कर देता है।

केंद्रीकृत 2PL

सेंट्रलाइज्ड 2 PL में, लॉक प्रबंधन प्रक्रिया के लिए एक ही साइट जिम्मेदार होती है। इसमें पूरे DBMS के लिए केवल एक ही लॉक मैनेजर होता है।

प्राथमिक प्रतिलिपि 2PL

प्राथमिक प्रतिलिपि 2PL तंत्र, कई लॉक मैनेजर विभिन्न साइटों पर वितरित किए जाते हैं। उसके बाद, एक विशेष लॉक मैनेजर डेटा आइटम के एक सेट के लिए लॉक को प्रबंधित करने के लिए जिम्मेदार होता है। जब प्राथमिक प्रतिलिपि अपडेट की जाती है, तो परिवर्तन को स्लेव में प्रसारित किया जाता है।

वितरित 2PL

इस तरह के दो-चरणीय लॉकिंग तंत्र में, लॉक मैनेजर सभी साइटों पर वितरित किए जाते हैं। वे उस साइट पर डेटा के लिए लॉक प्रबंधित करने के लिए जिम्मेदार होते हैं। यदि कोई डेटा प्रतिकृति नहीं है, तो यह प्राथमिक कॉपी 2PL के बराबर है। वितरित 2PL की संचार लागत प्राथमिक कॉपी 2PL की तुलना में काफी अधिक है

टाइमस्टैम्प-आधारित प्रोटोकॉल

टाइमस्टैम्प आधारित प्रोटोकॉल डीबीएमएस में एक एल्गोरिथ्म है जो समवर्ती लेनदेन के निष्पादन को क्रमबद्ध करने के लिए सिस्टम टाइम या लॉजिकल काउंटर को टाइमस्टैम्प के रूप में उपयोग करता है। टाइमस्टैम्प-आधारित प्रोटोकॉल यह सुनिश्चित करता है कि प्रत्येक परस्पर विरोधी पढ़ने और लिखने के संचालन को टाइमस्टैम्प क्रम में निष्पादित किया जाए।

इस विधि में हमेशा पुराने लेनदेन को प्राथमिकता दी जाती है। यह लेनदेन के समय का निर्धारण करने के लिए सिस्टम समय का उपयोग करता है। यह सबसे अधिक इस्तेमाल किया जाने वाला समवर्ती प्रोटोकॉल है।

लॉक-आधारित प्रोटोकॉल आपको परस्पर विरोधी लेनदेन के बीच क्रम को प्रबंधित करने में मदद करते हैं जब वे निष्पादित होंगे। टाइमस्टैम्प-आधारित प्रोटोकॉल ऑपरेशन बनते ही टकरावों का प्रबंधन करते हैं।

उदाहरण:

Suppose there are there transactions T1, T2, and T3. 
T1 has entered the system at time 0010 
T2 has entered the system at 0020
T3 has entered the system at 0030
Priority will be given to transaction T1, then transaction T2 and lastly Transaction T3.

फायदे:

  • अनुसूचियाँ 2PL प्रोटोकॉल की तरह ही क्रमबद्ध होती हैं
  • लेन-देन के लिए प्रतीक्षा करने की आवश्यकता नहीं होती, जिससे गतिरोध की संभावना समाप्त हो जाती है!

नुकसान:

यदि एक ही लेनदेन को पुनः आरंभ किया जाए और बार-बार निरस्त किया जाए तो भुखमरी संभव है

सत्यापन आधारित प्रोटोकॉल

सत्यापन आधारित प्रोटोकॉल डीबीएमएस में ऑप्टिमिस्टिक कंकरेंसी कंट्रोल तकनीक के रूप में भी जाना जाता है, यह लेनदेन में कंकरेंसी से बचने का एक तरीका है। इस प्रोटोकॉल में, डेटा के बजाय लेनदेन डेटा की स्थानीय प्रतियों को अपडेट किया जाता है, जिसके परिणामस्वरूप लेनदेन के निष्पादन के दौरान कम हस्तक्षेप होता है।

सत्यापन आधारित प्रोटोकॉल निम्नलिखित तीन चरणों में निष्पादित किया जाता है:

  1. चरण पढ़ें
  2. सत्यापन चरण
  3. चरण लिखें

चरण पढ़ें

पठन चरण में, डाटाबेस से डाटा मानों को लेनदेन द्वारा पढ़ा जा सकता है, लेकिन लेखन कार्य या अद्यतन केवल स्थानीय डाटा प्रतियों पर लागू होते हैं, वास्तविक डाटाबेस पर नहीं।

सत्यापन चरण

सत्यापन चरण में, यह सुनिश्चित करने के लिए डेटा की जांच की जाती है कि डेटाबेस में लेनदेन अद्यतन लागू करते समय क्रमबद्धता का कोई उल्लंघन नहीं हो रहा है।

चरण लिखें

लेखन चरण में, यदि सत्यापन सफल होता है तो अद्यतनों को डेटाबेस पर लागू किया जाता है, अन्यथा अद्यतनों को लागू नहीं किया जाता है, तथा लेनदेन को वापस ले लिया जाता है।

अच्छे समवर्ती प्रोटोकॉल की विशेषताएं

एक आदर्श समवर्ती नियंत्रण DBMS तंत्र के निम्नलिखित उद्देश्य हैं:

  • साइट और संचार विफलताओं के प्रति लचीला होना चाहिए।
  • यह अधिकतम समवर्तीता प्राप्त करने के लिए लेनदेन के समानांतर निष्पादन की अनुमति देता है।
  • ओवरहेड को न्यूनतम करने के लिए इसकी भंडारण प्रणाली और गणना पद्धतियां सरल होनी चाहिए।
  • इसे लेन-देन की परमाणु क्रियाओं की संरचना पर कुछ प्रतिबंध लागू करने होंगे।

सारांश

  • समवर्ती नियंत्रण वह प्रक्रिया है जिसमें डीबीएमएस एक दूसरे के साथ संघर्ष किए बिना एक साथ संचालन का प्रबंधन करने के लिए।
  • खोए हुए अपडेट, गंदे रीड, नॉन-रिपीटेबल रीड और गलत सारांश समस्याएँ समवर्ती नियंत्रण की कमी के कारण सामने आती हैं।
  • लॉक-आधारित, दो-चरण, टाइमस्टैम्प-आधारित, सत्यापन-आधारित समवर्ती हैंडलिंग प्रोटोकॉल के प्रकार हैं
  • लॉक साझा (S) या अनन्य (X) हो सकता है
  • दो-चरण लॉकिंग प्रोटोकॉल जिसे 2PL प्रोटोकॉल के रूप में भी जाना जाता है, के लिए आवश्यक है कि लेनदेन अपने लॉक को रिलीज़ करने के बाद लॉक प्राप्त करे। इसके 2 चरण होते हैं - बढ़ना और सिकुड़ना।
  • टाइमस्टैम्प-आधारित एल्गोरिथ्म समवर्ती लेनदेन के निष्पादन को क्रमबद्ध करने के लिए टाइमस्टैम्प का उपयोग करता है। प्रोटोकॉल का उपयोग करता है सिस्टम समय या तार्किक गणना एक टाइमस्टैम्प.

इस पोस्ट को संक्षेप में इस प्रकार लिखें: