समवर्ती नियंत्रण: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Measures to ensure concurrent computing operations generate correct results}}
{{Short description|Measures to ensure concurrent computing operations generate correct results}}


सूचना प्रौद्योगिकी और कंप्यूटर विज्ञान में, विशेष रूप से कंप्यूटर प्रोग्रामिंग, ऑपरेटिंग सिस्टम, मल्टीप्रोसेसर और डेटाबेस के क्षेत्र में, समवर्ती नियंत्रण यह सुनिश्चित करता है कि समवर्ती संचालन के लिए सही परिणाम उत्पन्न हों, जबकि उन परिणामों को जितनी जल्दी हो सकता है जिसे प्राप्त किया जा सकता है।


सूचना प्रौद्योगिकी और [[कंप्यूटर विज्ञान]] में, विशेष रूप से [[कंप्यूटर प्रोग्रामिंग]], [[ऑपरेटिंग सिस्टम]], [[मल्टीप्रोसेसर]] और [[डेटाबेस]] के क्षेत्र में, समवर्ती नियंत्रण यह सुनिश्चित करता है कि [[समवर्ती कंप्यूटिंग]] संचालन के लिए सही परिणाम उत्पन्न हों, जबकि उन परिणामों को जितनी जल्दी हो सके प्राप्त किया जा सके।
कंप्यूटर सिस्टम, [[ सॉफ़्टवेयर |सॉफ़्टवेयर]] और [[कंप्यूटर हार्डवेयर]] दोनों में मॉड्यूल या घटक सम्मिलित होते हैं। प्रत्येक घटक को सही रूप से संचालित करने के लिए डिज़ाइन किया गया है, अथार्त , कुछ स्थिरता नियमों का पालन करने या पूरा करने के लिए जब घटक जो समवर्ती रूप से संचालित होते हैं, मैसेजिंग द्वारा या एक्सेस किए गए डेटा ([[ स्मृति | मेमोरी]] या [[कंप्यूटर डेटा भंडारण|कंप्यूटर डेटा स्टोरेज]] में) साझा करके बातचीत करते हैं, तो एक निश्चित घटक की स्थिरता का उल्लंघन किसी अन्य घटक द्वारा किया जा सकता है। समवर्ती नियंत्रण का सामान्य क्षेत्र परस्पर क्रिया करते समय समवर्ती रूप से संचालित होने वाले घटकों की स्थिरता बनाए रखने के लिए नियम, विधियाँ, डिज़ाइन पद्धतियाँ और [[वैज्ञानिक सिद्धांत]] प्रदान करता है, और इस प्रकार पूरे सिस्टम की स्थिरता और शुद्धता बनाए रखता है। किसी सिस्टम में समवर्ती नियंत्रण का परिचय देने का अर्थ है संचालन बाधाओं को प्रयुक्त करना जिसके परिणामस्वरूप समान्यत: कुछ प्रदर्शन में कमी आती है। उचित स्तर से नीचे प्रदर्शन को कम किए बिना, संचालन की स्थिरता और शुद्धता को यथासंभव अच्छी दक्षता के साथ प्राप्त किया जाना चाहिए। सरल [[अनुक्रमिक एल्गोरिदम|कांकररेंट एल्गोरिदम]] की तुलना में [[समवर्ती एल्गोरिदम|सेक़ुएन्टिअल एल्गोरिदम]] में समवर्ती नियंत्रण के लिए महत्वपूर्ण अतिरिक्त समष्टि ता और ओवरहेड की आवश्यकता हो सकती है।


कंप्यूटर सिस्टम, [[ सॉफ़्टवेयर |सॉफ़्टवेयर]] और [[कंप्यूटर हार्डवेयर]] दोनों में मॉड्यूल या घटक शामिल होते हैं। प्रत्येक घटक को सही ढंग से संचालित करने के लिए डिज़ाइन किया गया है, यानी, कुछ स्थिरता नियमों का पालन करने या पूरा करने के लिए। जब घटक जो समवर्ती रूप से संचालित होते हैं, मैसेजिंग द्वारा या एक्सेस किए गए डेटा ([[ स्मृति | स्मृति]] या [[कंप्यूटर डेटा भंडारण]] में) साझा करके बातचीत करते हैं, तो एक निश्चित घटक की स्थिरता का उल्लंघन किसी अन्य घटक द्वारा किया जा सकता है। समवर्ती नियंत्रण का सामान्य क्षेत्र परस्पर क्रिया करते समय समवर्ती रूप से संचालित होने वाले घटकों की स्थिरता बनाए रखने के लिए नियम, विधियाँ, डिज़ाइन पद्धतियाँ और [[वैज्ञानिक सिद्धांत]] प्रदान करता है, और इस प्रकार पूरे सिस्टम की स्थिरता और शुद्धता बनाए रखता है। किसी सिस्टम में समवर्ती नियंत्रण का परिचय देने का अर्थ है संचालन बाधाओं को लागू करना जिसके परिणामस्वरूप आम तौर पर कुछ प्रदर्शन में कमी आती है। उचित स्तर से नीचे प्रदर्शन को कम किए बिना, संचालन की स्थिरता और शुद्धता को यथासंभव अच्छी दक्षता के साथ हासिल किया जाना चाहिए। सरल [[अनुक्रमिक एल्गोरिदम]] की तुलना में [[समवर्ती एल्गोरिदम]] में समवर्ती नियंत्रण के लिए महत्वपूर्ण अतिरिक्त जटिलता और ओवरहेड की आवश्यकता हो सकती है।
उदाहरण के लिए, समवर्ती नियंत्रण में विफलता के परिणामस्वरूप फटे हुए या राईट [[फटा हुआ डेटा-एक्सेस ऑपरेशन|ऑपरेशन]] से डेटा करप्शन हो सकता है।
 
उदाहरण के लिए, समवर्ती नियंत्रण में विफलता के परिणामस्वरूप [[फटा हुआ डेटा-एक्सेस ऑपरेशन]] से डेटा भ्रष्टाचार हो सकता है।


==डेटाबेस में समवर्ती नियंत्रण==
==डेटाबेस में समवर्ती नियंत्रण==
टिप्पणियाँ:
टिप्पणियाँ:
# यह अनुभाग सभी लेन-देन प्रणालियों पर लागू होता है, यानी, उन सभी प्रणालियों पर जो ''[[डेटाबेस लेनदेन]]'' (''परमाणु लेनदेन'') का उपयोग करते हैं; उदाहरण के लिए, [[सिस्टम प्रबंधन]] में लेनदेन संबंधी वस्तुएं और [[स्मार्टफोन]] के नेटवर्क में जो आम तौर पर निजी, समर्पित डेटाबेस लागू करते हैं सिस्टम), न केवल सामान्य प्रयोजन डेटाबेस प्रबंधन सिस्टम (डीबीएमएस)।
# यह अनुभाग सभी ट्रांसक्शन  सिस्टम पर प्रयुक्त होता है, अथार्त उन सभी सिस्टम पर जो ''[[डेटाबेस लेनदेन|डेटाबेस ट्रांसक्शन्स]]'' (''एटॉमिक लेनदेन'') का उपयोग करते हैं; उदाहरण के लिए, [[सिस्टम प्रबंधन|सिस्टम मैनजमेंट]] में ट्रांसक्शन संबंधी वस्तुएं और [[स्मार्टफोन]] के नेटवर्क में जो समान्यत: निजी, समर्पित डेटाबेस प्रयुक्त करते हैं सिस्टम), न केवल सामान्य प्रयोजन डेटाबेस मैनजमेंट सिस्टम (डीबीएमएस)।
# डीबीएमएस को समवर्ती नियंत्रण मुद्दों से भी निपटने की ज़रूरत है जो न केवल डेटाबेस लेनदेन के लिए विशिष्ट हैं, बल्कि सामान्य रूप से ऑपरेटिंग सिस्टम के लिए भी हैं। ये मुद्दे (उदाहरण के लिए, नीचे ''कॉन्करेंसी कंट्रोल#ऑपरेटिंग सिस्टम में कंकरेंसी कंट्रोल'' देखें) इस अनुभाग के दायरे से बाहर हैं।
# डीबीएमएस को समवर्ती नियंत्रण उद्देश्य से भी निपटने की ज़रूरत है जो न केवल डेटाबेस ट्रांसक्शन के लिए विशिष्ट हैं, किंतु सामान्य रूप से ऑपरेटिंग सिस्टम के लिए भी हैं। ये उद्देश्य (उदाहरण के लिए, नीचे ''कॉन्करेंसी कंट्रोल या ऑपरेटिंग सिस्टम में कंकरेंसी कंट्रोल'' देखें) इस अनुभाग के सीमा से बाहर हैं।
 
डेटाबेस मैनजमेंट सिस्टम (डीबीएमएस; उदाहरण के लिए, बर्नस्टीन एट अल 1987, वीकुम और वोसेन 2001), अन्य ट्रांसक्शन संबंधी वस्तुओं और संबंधित वितरित अनुप्रयोगों (उदाहरण के लिए, ग्रिड कंप्यूटिंग और क्लाउड कंप्यूटिंग) में समवर्ती नियंत्रण यह सुनिश्चित करता है कि डेटाबेस ट्रांसक्शन संबंधित डेटाबेस की डेटा अखंडता का उल्लंघन किए बिना समवर्ती रूप से किया जाता है। इस प्रकार समवर्ती नियंत्रण किसी भी प्रणाली में शुद्धता के लिए एक आवश्यक तत्व है जहां समय ओवरलैप के साथ निष्पादित दो या अधिक डेटाबेस लेनदेन, एक ही डेटा तक पहुंच सकते हैं, उदाहरण के लिए, वस्तुतः किसी भी सामान्य प्रयोजन डेटाबेस प्रणाली में। परिणाम स्वरुप , 1970 के दशक की प्रारंभ में डेटाबेस सिस्टम के उभरने के बाद से संबंधित अनुसंधान का एक विशाल संचय जमा हो गया है। डेटाबेस सिस्टम के लिए एक अच्छी तरह से स्थापित समवर्ती नियंत्रण सिद्धांत ऊपर उल्लिखित संदर्भों में उल्लिखित है: क्रमबद्धता सिद्धांत, जो समवर्ती नियंत्रण विधियों और तंत्रों को प्रभावी रूप से डिजाइन और विश्लेषण करने की अनुमति देता है। अमूर्त डेटा प्रकारों पर एटॉमिक ट्रांसक्शन के समवर्ती नियंत्रण के लिए एक वैकल्पिक सिद्धांत (लिंच एट अल. 1993) में प्रस्तुत किया गया है, और नीचे इसका उपयोग नहीं किया गया है। यह सिद्धांत अधिक परिष्कृत, समष्टि , व्यापक सीमा वाला है और उपरोक्त मौलिक सिद्धांत की तुलना में डेटाबेस साहित्य में इसका कम उपयोग किया गया है। प्रत्येक सिद्धांत के अपने पक्ष और विपक्ष, जोर और अंतर्दृष्टि होती है। कुछ सीमा तक वे पूरक हैं, और उनका विलय उपयोगी हो सकता है।


डेटाबेस प्रबंधन प्रणालियों में समवर्ती नियंत्रण (DBMS; उदाहरण के लिए, #Bern87|Bernstein et al. 1987, #Weikum01), अन्य डेटाबेस लेनदेन ऑब्जेक्ट, और संबंधित वितरित अनुप्रयोग (उदाहरण के लिए, [[ग्रिड कंप्यूटिंग]] और [[ क्लाउड कम्प्यूटिंग |क्लाउड कम्प्यूटिंग]] ) यह सुनिश्चित करता है कि ''डेटाबेस लेनदेन'' संबंधित डेटाबेस की डेटा अखंडता का उल्लंघन किए बिना कॉन्करेंसी (कंप्यूटर विज्ञान) का प्रदर्शन किया जाता है। इस प्रकार समवर्ती नियंत्रण किसी भी प्रणाली में शुद्धता के लिए एक आवश्यक तत्व है जहां समय ओवरलैप के साथ निष्पादित दो या अधिक डेटाबेस लेनदेन, एक ही डेटा तक पहुंच सकते हैं, उदाहरण के लिए, वस्तुतः किसी भी सामान्य प्रयोजन डेटाबेस प्रणाली में। नतीजतन, 1970 के दशक की शुरुआत में डेटाबेस सिस्टम के उभरने के बाद से संबंधित अनुसंधान का एक विशाल भंडार जमा हो गया है। डेटाबेस सिस्टम के लिए एक अच्छी तरह से स्थापित समवर्ती नियंत्रण वैज्ञानिक सिद्धांत ऊपर उल्लिखित संदर्भों में उल्लिखित है: [[क्रमबद्धता]], जो समवर्ती नियंत्रण विधियों और तंत्रों को प्रभावी ढंग से डिजाइन और विश्लेषण करने की अनुमति देता है। [[अमूर्त डेटा प्रकार]]ों पर परमाणु लेनदेन के समवर्ती नियंत्रण के लिए एक वैकल्पिक सिद्धांत (#Lynch1993|Lynch et al. 1993) में प्रस्तुत किया गया है, और नीचे इसका उपयोग नहीं किया गया है। यह सिद्धांत अधिक परिष्कृत, जटिल, व्यापक दायरे वाला है और उपरोक्त शास्त्रीय सिद्धांत की तुलना में डेटाबेस साहित्य में इसका कम उपयोग किया गया है। प्रत्येक सिद्धांत के अपने पक्ष और विपक्ष, जोर और [[अंतर्दृष्टि]] होती है। कुछ हद तक वे पूरक हैं, और उनका विलय उपयोगी हो सकता है।
शुद्धता सुनिश्चित करने के लिए, एक डीबीएमएस समान्यत: आश्वासन देता है कि केवल ''सीरियलिज़ेबिलिटी'' ट्रांसक्शन [[अनुसूची (कंप्यूटर विज्ञान)]] उत्पन्न होती है, जब तक कि ''सीरियलिज़ेबिलिटी'' सीरियलिज़ेबिलिटी नहीं है या प्रदर्शन को बढ़ाने के लिए क्रमबद्धता को आराम देना, किंतु केवल उन स्थितियों में जहां एप्लिकेशन की शुद्धता को हानि नहीं होता है . विफल (निरस्त) ट्रांसक्शन (जो हमेशा कई कारणों से हो सकता है) के स्थितियों में शुद्धता बनाए रखने के लिए शेड्यूल में ''क्रमबद्धता या शुद्धता - पुनर्प्राप्ति'' (निरस्त होने से) गुण की भी आवश्यकता होती है। एक डीबीएमएस यह भी आश्वासन देता है कि ''प्रतिबद्ध'' ट्रांसक्शन का कोई प्रभाव नहीं खोता है, और ''निरस्त'' ([[रोलबैक (डेटा प्रबंधन)]]) ट्रांसक्शन का कोई प्रभाव संबंधित डेटाबेस में नहीं रहता है। समग्र ट्रांसक्शन  लक्षण वर्णन सामान्यतः नीचे दिए गए [[ACID|एकसीआइडी]] नियमों द्वारा संक्षेपित किया गया है। चूंकि डेटाबेस [[वितरित डेटाबेस]] बन गए हैं, या वितरित वातावरण में सहयोग करने की आवश्यकता है (उदाहरण के लिए, 1990 की प्रारंभ में [[फ़ेडरेटेड डेटाबेस]], और वर्तमान में क्लाउड कंप्यूटिंग), समवर्ती नियंत्रण मैकेनिज्म के प्रभावी वितरण पर विशेष ध्यान दिया गया है।


शुद्धता सुनिश्चित करने के लिए, एक डीबीएमएस आम तौर पर गारंटी देता है कि केवल ''सीरियलिज़ेबिलिटी'' लेनदेन [[अनुसूची (कंप्यूटर विज्ञान)]] उत्पन्न होती है, जब तक कि ''सीरियलिज़ेबिलिटी'' सीरियलिज़ेबिलिटी नहीं है#प्रदर्शन को बढ़ाने के लिए क्रमबद्धता को आराम देना, लेकिन केवल उन मामलों में जहां एप्लिकेशन की शुद्धता को नुकसान नहीं होता है . विफल (निरस्त) लेनदेन (जो हमेशा कई कारणों से हो सकता है) के मामलों में शुद्धता बनाए रखने के लिए शेड्यूल में ''क्रमबद्धता#शुद्धता - पुनर्प्राप्ति'' (निरस्त होने से) संपत्ति की भी आवश्यकता होती है। एक DBMS यह भी गारंटी देता है कि ''प्रतिबद्ध'' लेनदेन का कोई प्रभाव नहीं खोता है, और ''निरस्त'' ([[रोलबैक (डेटा प्रबंधन)]]) लेनदेन का कोई प्रभाव संबंधित डेटाबेस में नहीं रहता है। समग्र लेन-देन लक्षण वर्णन आमतौर पर नीचे दिए गए [[ACID]] नियमों द्वारा संक्षेपित किया गया है। चूंकि डेटाबेस [[वितरित डेटाबेस]] बन गए हैं, या वितरित वातावरण में सहयोग करने की आवश्यकता है (उदाहरण के लिए, 1990 की शुरुआत में [[फ़ेडरेटेड डेटाबेस]], और वर्तमान में क्लाउड कंप्यूटिंग), समवर्ती नियंत्रण तंत्र के प्रभावी वितरण पर विशेष ध्यान दिया गया है।
===डेटाबेस ट्रांसक्शन और एसीआइडी नियम===
{{main|डेटाबेस ट्रांसक्शन|एसीआइडी}}


===डेटाबेस लेनदेन और ACID नियम===
डेटाबेस ट्रांसक्शन (या एटॉमिक लेनदेन) की अवधारणा एक दोषपूर्ण वातावरण में एक अच्छी तरह से समझे गए डेटाबेस सिस्टम व्यवहार को सक्षम करने के लिए विकसित हुई है, जहां क्रैश किसी भी समय हो सकता है, और क्रैश से एक अच्छी तरह से समझे गए डेटाबेस स्थिति में पुनर्प्राप्ति दोनों को सक्षम करने के लिए विकसित किया गया है। डेटाबेस ट्रांसक्शन कार्य की एक इकाई है, जो समान्यत: डेटाबेस पर कई परिचालनों को समाहित करती है (उदाहरण के लिए, डेटाबेस ऑब्जेक्ट को पढ़ना, लिखना, लॉक प्राप्त करना इत्यादि), डेटाबेस और अन्य सिस्टम में समर्थित एक अमूर्त प्रत्येक ट्रांसक्शन में अच्छी तरह से परिभाषित सीमाएँ होती हैं, जिसके संदर्भ में प्रोग्राम/कोड निष्पादन उस ट्रांसक्शन  में सम्मिलित होते हैं (ट्रांसक्शन  के प्रोग्रामर द्वारा विशेष ट्रांसक्शन  आदेशों के माध्यम से निर्धारित)। प्रत्येक डेटाबेस ट्रांसक्शन निम्नलिखित नियमों का पालन करता है (डेटाबेस सिस्टम में समर्थन द्वारा; अथार्त , एक डेटाबेस सिस्टम को उसके द्वारा चलाए जाने वाले ट्रांसक्शन की आश्वासन देने के लिए डिज़ाइन किया गया है):
{{main|Database transaction|ACID}}
*'[[ परमाणुता (डेटाबेस सिस्टम) | एटॉमिसिटी (डेटाबेस सिस्टम)]] ' - जब डेटाबेस ट्रांसक्शन पूरा हो जाता है (क्रमशः प्रतिबद्ध या निरस्त) तो या तो इसके सभी या किसी भी ऑपरेशन का प्रभाव नहीं रहता है (सभी या कुछ भी नहीं)। दूसरे शब्दों में, बाहरी दुनिया के लिए एक प्रतिबद्ध ट्रांसक्शन (डेटाबेस पर इसके प्रभाव से) अविभाज्य (एटॉमिक) प्रतीत होता है, और एक निरस्त ट्रांसक्शन डेटाबेस को बिल्कुल भी प्रभावित नहीं करता है। या तो सभी ऑपरेशन पूरे हो गए हैं या उनमें से कोई भी नहीं है।
डेटाबेस लेनदेन (या परमाणु लेनदेन) की अवधारणा एक दोषपूर्ण वातावरण में एक अच्छी तरह से समझे गए डेटाबेस सिस्टम व्यवहार को सक्षम करने के लिए विकसित हुई है, जहां क्रैश किसी भी समय हो सकता है, और क्रैश से एक अच्छी तरह से समझे गए डेटाबेस स्थिति में पुनर्प्राप्ति दोनों को सक्षम करने के लिए विकसित किया गया है। डेटाबेस लेनदेन कार्य की एक इकाई है, जो आम तौर पर डेटाबेस पर कई परिचालनों को समाहित करती है (उदाहरण के लिए, डेटाबेस ऑब्जेक्ट को पढ़ना, लिखना, लॉक प्राप्त करना इत्यादि), डेटाबेस और अन्य प्रणालियों में समर्थित एक अमूर्त। प्रत्येक लेन-देन में अच्छी तरह से परिभाषित सीमाएँ होती हैं, जिसके संदर्भ में प्रोग्राम/कोड निष्पादन उस लेन-देन में शामिल होते हैं (लेन-देन के प्रोग्रामर द्वारा विशेष लेन-देन आदेशों के माध्यम से निर्धारित)। प्रत्येक डेटाबेस लेनदेन निम्नलिखित नियमों का पालन करता है (डेटाबेस सिस्टम में समर्थन द्वारा; यानी, एक डेटाबेस सिस्टम को उसके द्वारा चलाए जाने वाले लेनदेन की गारंटी देने के लिए डिज़ाइन किया गया है):
*'[[संगति (डेटाबेस सिस्टम)|कंसिस्टेंसी (डेटाबेस सिस्टम)]]' - प्रत्येक ट्रांसक्शन को डेटाबेस को एक सुसंगत (सही) स्थिति में छोड़ना चाहिए, अथार्त , डेटाबेस के पूर्व निर्धारित अखंडता नियमों (डेटाबेस की वस्तुओं पर और उनके बीच की बाधाएं) को बनाए रखना चाहिए। ट्रांसक्शन  को डेटाबेस को एक सुसंगत स्थिति से दूसरी सुसंगत स्थिति में बदलना होगा (चूँकि , यह ट्रांसक्शन  के प्रोग्रामर की उत्तरदाई है कि वह यह सुनिश्चित करे कि ट्रांसक्शन  स्वयं सही है, अथार्त , वह जो करना चाहता है उसे सही रूप से निष्पादित करता है (एप्लिकेशन के दृष्टिकोण से) देखें) जबकि पूर्वनिर्धारित अखंडता नियम डीबीएमएस द्वारा प्रयुक्त किए जाते हैं)। इस प्रकार चूंकि डेटाबेस को समान्यत: केवल ट्रांसक्शन द्वारा ही बदला जा सकता है, इसलिए डेटाबेस की सभी स्थितियाँ सुसंगत होती हैं।
*'[[ परमाणुता (डेटाबेस सिस्टम) ]]' - जब डेटाबेस लेनदेन पूरा हो जाता है (क्रमशः प्रतिबद्ध या निरस्त) तो या तो इसके सभी या किसी भी ऑपरेशन का प्रभाव नहीं रहता है (सभी या कुछ भी नहीं)। दूसरे शब्दों में, बाहरी दुनिया के लिए एक प्रतिबद्ध लेनदेन (डेटाबेस पर इसके प्रभाव से) अविभाज्य (परमाणु) प्रतीत होता है, और एक निरस्त लेनदेन डेटाबेस को बिल्कुल भी प्रभावित नहीं करता है। या तो सभी ऑपरेशन पूरे हो गए हैं या उनमें से कोई भी नहीं।
*'[[अलगाव (डेटाबेस सिस्टम)|आइसोलेशन  (डेटाबेस सिस्टम)]]' - ट्रांसक्शन एक दूसरे के साथ हस्तक्षेप नहीं कर सकते (उनके निष्पादन के अंतिम परिणाम के रूप में) इसके अतिरिक्त , सामान्यतः (समवर्ती नियंत्रण विधि के आधार पर) एक अपूर्ण ट्रांसक्शन के प्रभाव दूसरे ट्रांसक्शन पर भी दिखाई नहीं देते हैं। आइसोलेशन प्रदान करना समवर्ती नियंत्रण का मुख्य लक्ष्य है।
*'[[संगति (डेटाबेस सिस्टम)]]' - प्रत्येक लेनदेन को डेटाबेस को एक सुसंगत (सही) स्थिति में छोड़ना चाहिए, यानी, डेटाबेस के पूर्व निर्धारित अखंडता नियमों (डेटाबेस की वस्तुओं पर और उनके बीच की बाधाएं) को बनाए रखना चाहिए। लेन-देन को डेटाबेस को एक सुसंगत स्थिति से दूसरी सुसंगत स्थिति में बदलना होगा (हालाँकि, यह लेन-देन के प्रोग्रामर की ज़िम्मेदारी है कि वह यह सुनिश्चित करे कि लेन-देन स्वयं सही है, यानी, वह जो करना चाहता है उसे सही ढंग से निष्पादित करता है (एप्लिकेशन के दृष्टिकोण से) देखें) जबकि पूर्वनिर्धारित अखंडता नियम DBMS द्वारा लागू किए जाते हैं)। इस प्रकार चूंकि डेटाबेस को आम तौर पर केवल लेनदेन द्वारा ही बदला जा सकता है, इसलिए डेटाबेस की सभी स्थितियाँ सुसंगत होती हैं।
*'[[स्थायित्व (डेटाबेस सिस्टम)]]' - सफल (प्रतिबद्ध) ट्रांसक्शन के प्रभाव [[क्रैश (कंप्यूटिंग)]] के माध्यम से बने रहने चाहिए (सामान्यतः ट्रांसक्शन के प्रभावों और इसकी प्रतिबद्ध घटना को नॉन-वोलेटाइल मेमोरी में रिकॉर्ड करते है )।
*'[[अलगाव (डेटाबेस सिस्टम)]]' - लेनदेन एक दूसरे के साथ हस्तक्षेप नहीं कर सकते (उनके निष्पादन के अंतिम परिणाम के रूप में)इसके अलावा, आमतौर पर (समवर्ती नियंत्रण विधि के आधार पर) एक अपूर्ण लेनदेन के प्रभाव दूसरे लेनदेन पर भी दिखाई नहीं देते हैं। अलगाव प्रदान करना समवर्ती नियंत्रण का मुख्य लक्ष्य है।
*'[[स्थायित्व (डेटाबेस सिस्टम)]]' - सफल (प्रतिबद्ध) लेनदेन के प्रभाव [[क्रैश (कंप्यूटिंग)]] के माध्यम से बने रहने चाहिए (आमतौर पर लेनदेन के प्रभावों और इसकी प्रतिबद्ध घटना को गैर-वाष्पशील मेमोरी में रिकॉर्ड करके)।


परमाणु लेन-देन की अवधारणा को वर्षों के दौरान व्यावसायिक लेन-देन प्रबंधन तक विस्तारित किया गया है जो वास्तव में [[ कार्यप्रवाह |कार्यप्रवाह]] के प्रकारों को लागू करता है और परमाणु नहीं हैं। हालाँकि, ऐसे उन्नत लेनदेन भी आम तौर पर घटकों के रूप में परमाणु लेनदेन का उपयोग करते हैं।
एटॉमिक ट्रांसक्शन  की अवधारणा को वर्षों के समय व्यावसायिक ट्रांसक्शन  मैनजमेंट तक विस्तारित किया गया है जो वास्तव में [[ कार्यप्रवाह |वर्कफ़्लो]] के प्रकारों को प्रयुक्त करता है और एटॉमिक नहीं हैं। चूँकि , ऐसे उन्नत ट्रांसक्शन भी समान्यत: घटकों के रूप में एटॉमिक ट्रांसक्शन का उपयोग करते हैं।


===समवर्ती नियंत्रण की आवश्यकता क्यों है?===
===समवर्ती नियंत्रण की आवश्यकता क्यों है?===
यदि लेन-देन क्रमिक रूप से निष्पादित किया जाता है, अर्थात, समय में ओवरलैप किए बिना क्रमिक रूप से, तो कोई लेन-देन समवर्ती मौजूद नहीं होता है। हालाँकि, यदि इंटरलीविंग ऑपरेशंस के साथ समवर्ती लेनदेन को अनियंत्रित तरीके से अनुमति दी जाती है, तो कुछ अप्रत्याशित, अवांछनीय परिणाम हो सकते हैं, जैसे:
यदि ट्रांसक्शन  क्रमिक रूप से निष्पादित किया जाता है, अर्थात, समय में ओवरलैप किए बिना क्रमिक रूप से, तो कोई ट्रांसक्शन  समवर्ती उपस्थित  नहीं होता है। चूँकि  यदि इंटरलीविंग ऑपरेशंस के साथ कांकररेंट ट्रांसक्शन को अनियंत्रित विधि  से अनुमति दी जाती है, तो कुछ अप्रत्याशित, अवांछनीय परिणाम हो सकते हैं, जैसे:
# खोई हुई अद्यतन समस्या: दूसरा लेन-देन पहले समवर्ती लेन-देन द्वारा लिखे गए पहले मान के शीर्ष पर डेटा-आइटम (डेटा) का दूसरा मान लिखता है, और पहला मान समवर्ती रूप से चलने वाले अन्य लेनदेन के लिए खो जाता है, जिनकी आवश्यकता होती है। प्राथमिकता, पहला मान पढ़ने के लिए। जिन लेन-देन में गलत मान पढ़ा गया है, उनका परिणाम गलत है।
# लॉस्ट अपडेट प्रॉब्लम: दूसरा ट्रांसक्शन  पहले समवर्ती ट्रांसक्शन  द्वारा लिखे गए पहले मान के शीर्ष पर डेटा-आइटम (डेटा) का दूसरा मान लिखता है, और पहला मान समवर्ती रूप से चलने वाले अन्य ट्रांसक्शन के लिए खो जाता है, जिनकी आवश्यकता होती है। प्राथमिकता, पहला मान पढ़ने के लिए जिन ट्रांसक्शन  में गलत मान पढ़ा गया है, उनका परिणाम गलत है।
# गंदी पढ़ने की समस्या: लेन-देन एक लेन-देन द्वारा लिखे गए मूल्य को पढ़ता है जिसे बाद में निरस्त कर दिया गया है। यह मान निरस्त होने पर डेटाबेस से गायब हो जाता है, और इसे किसी भी लेनदेन (गंदा पढ़ा) द्वारा नहीं पढ़ा जाना चाहिए। रीडिंग लेनदेन गलत परिणामों के साथ समाप्त होता है।
# डर्टी रीड प्रॉब्लम: ट्रांसक्शन  एक ट्रांसक्शन  द्वारा लिखे गए मूल्य को पढ़ता है जिसे बाद में निरस्त कर दिया गया है। यह मान निरस्त होने पर डेटाबेस से विलुप्त हो जाता है, और इसे किसी भी ट्रांसक्शन (डर्टी रीड) द्वारा नहीं पढ़ा जाना चाहिए। रीडिंग ट्रांसक्शन गलत परिणामों के साथ समाप्त होता है।
# गलत सारांश समस्या: जबकि एक लेनदेन दोहराए गए डेटा-आइटम के सभी उदाहरणों के मूल्यों पर सारांश लेता है, दूसरा लेनदेन उस डेटा-आइटम के कुछ उदाहरणों को अपडेट करता है। परिणामी सारांश दो लेन-देन (यदि एक को दूसरे से पहले निष्पादित किया जाता है) के बीच किसी भी (आमतौर पर शुद्धता के लिए आवश्यक) पूर्वता क्रम के लिए सही परिणाम नहीं दर्शाता है, बल्कि अपडेट के समय के आधार पर कुछ यादृच्छिक परिणाम दिखाता है, और क्या निश्चित है अद्यतन परिणामों को सारांश में शामिल किया गया है या नहीं।
# इंकोर्रेक्ट समरी प्रॉब्लम: जबकि एक ट्रांसक्शन दोहराए गए डेटा-आइटम के सभी उदाहरणों के मूल्यों पर सारांश लेता है, दूसरा ट्रांसक्शन उस डेटा-आइटम के कुछ उदाहरणों को अपडेट करता है। परिणामी सारांश दो ट्रांसक्शन  (यदि एक को दूसरे से पहले निष्पादित किया जाता है) के बीच किसी भी (सामान्यतः शुद्धता के लिए आवश्यक) पूर्वता क्रम के लिए सही परिणाम नहीं दर्शाता है, किंतु अपडेट के समय के आधार पर कुछ यादृच्छिक परिणाम दिखाता है, और क्या निश्चित है अपडेट परिणामों को सारांश में सम्मिलित किया गया है या नहीं किया गया है ।


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


===समवर्ती नियंत्रण तंत्र===
===समवर्ती नियंत्रण तंत्र===


====श्रेणियाँ====
====श्रेणियाँ====
समवर्ती नियंत्रण तंत्र की मुख्य श्रेणियां हैं:
समवर्ती नियंत्रण मैकेनिज्म की मुख्य श्रेणियां हैं:
* [[आशावादी समवर्ती नियंत्रण]] - कोई लेन-देन अलगाव और अन्य अखंडता नियमों (उदाहरण के लिए, क्रमबद्धता और क्रमबद्धता #शुद्धता - पुनर्प्राप्ति) को पूरा करता है या नहीं, इसकी जांच में देरी करें, इसके किसी भी (पढ़ने, लिखने) संचालन को अवरुद्ध किए बिना ( ...और नियमों को पूरा करने के बारे में आशावादी रहें...), और फिर उल्लंघन को रोकने के लिए लेनदेन को रद्द कर दें, यदि इसके प्रतिबद्ध होने पर वांछित नियमों का उल्लंघन किया जाता है। एक निरस्त लेन-देन तुरंत पुनः आरंभ और पुन: निष्पादित किया जाता है, जिसमें एक स्पष्ट ओवरहेड लगता है (बनाम इसे केवल एक बार अंत तक निष्पादित करने पर)। यदि बहुत अधिक लेन-देन निरस्त नहीं किए जाते हैं, तो आशावादी होना आमतौर पर एक अच्छी रणनीति है।
* [[आशावादी समवर्ती नियंत्रण|ऑप्टिमिस्टिक]] - कोई ट्रांसक्शन  आइसोलेशन और अन्य अखंडता नियमों (उदाहरण के लिए, क्रमबद्धता और क्रमबद्धता या शुद्धता - पुनर्प्राप्ति) को पूरा करता है या नहीं, इसकी जांच में देरी करें, इसके किसी भी (पढ़ने, लिखने) संचालन को अवरुद्ध किए बिना ( ...और नियमों को पूरा करने के बारे में आशावादी रहें...), और फिर उल्लंघन को रोकने के लिए ट्रांसक्शन को समाप्त कर दें, यदि इसके प्रतिबद्ध होने पर वांछित नियमों का उल्लंघन किया जाता है। एक निरस्त ट्रांसक्शन  तुरंत पुनः आरंभ और पुन: निष्पादित किया जाता है, जिसमें एक स्पष्ट ओवरहेड लगता है (बनाम इसे केवल एक बार अंत तक निष्पादित करने पर)। यदि बहुत अधिक ट्रांसक्शन  निरस्त नहीं किए जाते हैं, तो आशावादी होना सामान्यतः एक अच्छी रणनीति है।
* निराशावादी - यदि किसी लेन-देन से नियमों का उल्लंघन हो सकता है, तो उसे तब तक रोकें, जब तक कि उल्लंघन की संभावना समाप्त न हो जाए। ब्लॉकिंग ऑपरेशन आम तौर पर प्रदर्शन में कमी के साथ शामिल होते हैं।
* पेसिमिस्टिक- यदि किसी ट्रांसक्शन  से नियमों का उल्लंघन हो सकता है, तो उसे तब तक रोकें, जब तक कि उल्लंघन की संभावना समाप्त न हो जाए। ब्लॉकिंग ऑपरेशन समान्यत: प्रदर्शन में कमी के साथ सम्मिलित होते हैं।
*अर्ध-आशावादी - कुछ स्थितियों में संचालन को ब्लॉक करें, यदि वे कुछ नियमों का उल्लंघन कर सकते हैं, और लेन-देन के अंत तक नियमों की जाँच (यदि आवश्यक हो) में देरी करते हुए अन्य स्थितियों में ब्लॉक न करें, जैसा कि आशावादी के साथ किया जाता है।
*सेमी-[[आशावादी समवर्ती नियंत्रण|ऑप्टिमिस्टिक]] - कुछ स्थितियों में संचालन को ब्लॉक करें, यदि वे कुछ नियमों का उल्लंघन कर सकते हैं, और ट्रांसक्शन  के अंत तक नियमों की जाँच (यदि आवश्यक हो) में देरी करते हुए अन्य स्थितियों में ब्लॉक न करें, जैसा कि आशावादी के साथ किया जाता है।


अलग-अलग श्रेणियां अलग-अलग प्रदर्शन प्रदान करती हैं, यानी, लेनदेन के प्रकार के मिश्रण, समानता के कंप्यूटिंग स्तर और अन्य कारकों के आधार पर अलग-अलग औसत लेनदेन पूर्णता दर (''थ्रूपुट'')। यदि ट्रेड-ऑफ के बारे में चयन और ज्ञान उपलब्ध है, तो उच्चतम प्रदर्शन प्रदान करने के लिए श्रेणी और विधि का चयन किया जाना चाहिए।
अलग-अलग श्रेणियां अलग-अलग प्रदर्शन प्रदान करती हैं, अथार्त , ट्रांसक्शन के प्रकार के मिश्रण, समानता के कंप्यूटिंग स्तर और अन्य कारकों के आधार पर अलग-अलग औसत ट्रांसक्शन पूर्णता दर (''थ्रूपुट'')। यदि ट्रेड-ऑफ के बारे में चयन और ज्ञान उपलब्ध है, तो उच्चतम प्रदर्शन प्रदान करने के लिए श्रेणी और विधि का चयन किया जाना चाहिए।


दो लेनदेन (जहां प्रत्येक एक दूसरे को अवरुद्ध करता है) या अधिक के बीच आपसी अवरोधन के परिणामस्वरूप [[गतिरोध]] उत्पन्न होता है, जहां शामिल लेनदेन रुक जाते हैं और पूर्ण नहीं हो पाते हैं। अधिकांश गैर-आशावादी तंत्र (अवरुद्ध करने के साथ) गतिरोध से ग्रस्त होते हैं जिन्हें एक रुके हुए लेनदेन को जानबूझकर निरस्त करने (जो उस गतिरोध में अन्य लेनदेन को मुक्त करता है) और इसके तत्काल पुनः आरंभ और पुन: निष्पादन द्वारा हल किया जाता है। गतिरोध की संभावना आम तौर पर कम होती है।
दो ट्रांसक्शन (जहां प्रत्येक एक दूसरे को अवरुद्ध करता है) या अधिक के बीच आपसी अवरोधन के परिणामस्वरूप [[गतिरोध|डेडलॉक]] उत्पन्न होता है, जहां सम्मिलित ट्रांसक्शन रुक जाते हैं और पूर्ण नहीं हो पाते हैं। अधिकांश गैर-आशावादी मैकेनिज्म (अवरुद्ध करने के साथ) गतिरोध से ग्रस्त होते हैं जिन्हें एक रुके हुए ट्रांसक्शन को जानबूझकर निरस्त करने (जो उस गतिरोध में अन्य ट्रांसक्शन को मुक्त करता है) और इसके तत्काल पुनः आरंभ और पुन: निष्पादन द्वारा हल किया जाता है। गतिरोध की संभावना समान्यत: कम होती है।


अवरोधन, गतिरोध और निरस्तीकरण के परिणामस्वरूप प्रदर्शन में कमी आती है, और इसलिए श्रेणियों के बीच व्यापार-बंद हो जाता है।
अवरोधन, गतिरोध और निरस्तीकरण के परिणामस्वरूप प्रदर्शन में कमी आती है, और इसलिए श्रेणियों के बीच व्यापार-संवर्त हो जाता है।


====तरीके====
====विधि ====
समवर्ती नियंत्रण के लिए कई विधियाँ मौजूद हैं। उनमें से अधिकांश को उपरोक्त किसी भी मुख्य श्रेणी में लागू किया जा सकता है। प्रमुख विधियाँ,<ref name=Bern2009>[[Phil Bernstein|Philip A. Bernstein]], Eric Newcomer (2009): [http://www.elsevierdirect.com/product.jsp?isbn=9781558606234 ''Principles of Transaction Processing'', 2nd Edition] {{Webarchive|url=https://web.archive.org/web/20100807151625/http://www.elsevierdirect.com/product.jsp?isbn=9781558606234 |date=2010-08-07 }}, [[Morgan Kaufmann]] (Elsevier), June 2009, {{ISBN|978-1-55860-623-4}} (page 145)</ref> जिनमें से प्रत्येक के कई प्रकार हैं, और कुछ मामलों में ओवरलैप हो सकते हैं या संयुक्त हो सकते हैं, ये हैं:
समवर्ती नियंत्रण के लिए कई विधियाँ उपस्थित  हैं। उनमें से अधिकांश को उपरोक्त किसी भी मुख्य श्रेणी में प्रयुक्त किया जा सकता है। प्रमुख विधियाँ,<ref name=Bern2009>[[Phil Bernstein|Philip A. Bernstein]], Eric Newcomer (2009): [http://www.elsevierdirect.com/product.jsp?isbn=9781558606234 ''Principles of Transaction Processing'', 2nd Edition] {{Webarchive|url=https://web.archive.org/web/20100807151625/http://www.elsevierdirect.com/product.jsp?isbn=9781558606234 |date=2010-08-07 }}, [[Morgan Kaufmann]] (Elsevier), June 2009, {{ISBN|978-1-55860-623-4}} (page 145)</ref> जिनमें से प्रत्येक के कई प्रकार हैं, और कुछ स्थितियों में ओवरलैप हो सकते हैं या संयुक्त हो सकते हैं, ये हैं:
#लॉकिंग (जैसे, [[दो-चरण लॉकिंग]] - 2PL) - डेटा को आवंटित [[लॉक (कंप्यूटर विज्ञान)]] द्वारा डेटा तक पहुंच को नियंत्रित करना। किसी अन्य लेनदेन द्वारा लॉक किए गए डेटा आइटम (डेटाबेस ऑब्जेक्ट) तक लेनदेन की पहुंच को लॉक रिलीज होने तक ब्लॉक किया जा सकता है (लॉक प्रकार और एक्सेस ऑपरेशन प्रकार के आधार पर)।
#लॉकिंग (जैसे, [[दो-चरण लॉकिंग|दो-फेज लॉकिंग]] - 2PL) - डेटा को आवंटित [[लॉक (कंप्यूटर विज्ञान)]] द्वारा डेटा तक पहुंच को नियंत्रित करना और किसी अन्य ट्रांसक्शन द्वारा लॉक किए गए डेटा आइटम (डेटाबेस ऑब्जेक्ट) तक ट्रांसक्शन की पहुंच को लॉक प्रसारित होने तक ब्लॉक किया जा सकता है (लॉक प्रकार और एक्सेस ऑपरेशन प्रकार के आधार पर)।
#क्रमबद्धता क्रमबद्धता#संघर्ष क्रमबद्धता का परीक्षण (जिसे क्रमबद्धता, या संघर्ष, या प्राथमिकता ग्राफ जांच भी कहा जाता है) - शेड्यूल के [[निर्देशित ग्राफ]] में चक्र (ग्राफ सिद्धांत) की जांच करना और उन्हें निरस्त करके तोड़ना।
#क्रमबद्धता क्रमबद्धता या संघर्ष क्रमबद्धता का परीक्षण (जिसे क्रमबद्धता, या संघर्ष, या प्राथमिकता ग्राफ जांच भी कहा जाता है) - शेड्यूल के [[निर्देशित ग्राफ]] में चक्र (ग्राफ सिद्धांत) की जांच करना और उन्हें निरस्त कर दिया जाता है
#टाइमस्टैंप-आधारित समवर्ती नियंत्रण (टीओ) - लेनदेन के लिए टाइमस्टैंप निर्दिष्ट करना, और टाइमस्टैंप क्रम द्वारा डेटा तक पहुंच को नियंत्रित करना या जांचना।
#टाइमस्टैंप-आधारित समवर्ती नियंत्रण (टीओ) - ट्रांसक्शन के लिए टाइमस्टैंप निर्दिष्ट करना, और टाइमस्टैंप क्रम द्वारा डेटा तक पहुंच को नियंत्रित करना या जांचना।
#कमिटमेंट ऑर्डरिंग (या कमिट ऑर्डरिंग; सीओ) - प्रतिबद्ध घटनाओं के लेन-देन के कालानुक्रमिक क्रम को नियंत्रित करना या जांचना ताकि उनकी संबंधित क्रमबद्धता के साथ संगत हो#संघर्ष क्रमबद्धता का परीक्षण किया जा सके।
#कमिटमेंट ऑर्डरिंग (या कमिट ऑर्डरिंग; सीओ) - प्रतिबद्ध घटनाओं के ट्रांसक्शन  के कालानुक्रमिक क्रम को नियंत्रित करना या जांचना जिससे उनकी संबंधित क्रमबद्धता के साथ संगत हो या संघर्ष क्रमबद्धता का परीक्षण किया जा सकता है ।


अन्य प्रमुख समवर्ती नियंत्रण प्रकार जिनका उपयोग उपरोक्त विधियों के संयोजन में किया जाता है उनमें शामिल हैं:
अन्य प्रमुख समवर्ती नियंत्रण प्रकार जिनका उपयोग उपरोक्त विधियों के संयोजन में किया जाता है उनमें सम्मिलित हैं:


* मल्टीवर्जन समवर्ती नियंत्रण (एमवीसीसी) - हर बार ऑब्जेक्ट लिखे जाने पर डेटाबेस ऑब्जेक्ट का एक नया संस्करण उत्पन्न करके समवर्ती और प्रदर्शन बढ़ाना, और शेड्यूलिंग विधि के आधार पर (प्रत्येक ऑब्जेक्ट के) कई अंतिम प्रासंगिक संस्करणों के लेनदेन के पढ़ने के संचालन की अनुमति देना।
* मल्टीवर्जन समवर्ती नियंत्रण (एमवीसीसी) - हर बार ऑब्जेक्ट लिखे जाने पर डेटाबेस ऑब्जेक्ट का एक नया संस्करण उत्पन्न करके समवर्ती और प्रदर्शन बढ़ाना, और शेड्यूलिंग विधि के आधार पर (प्रत्येक ऑब्जेक्ट के) कई अंतिम प्रासंगिक संस्करणों के ट्रांसक्शन के पढ़ने के संचालन की अनुमति देता है।
* [[इंडेक्स लॉकिंग]] - उपयोगकर्ता डेटा के बजाय [[ सूचकांक (डेटाबेस) |सूचकांक (डेटाबेस)]] तक पहुंच संचालन को सिंक्रनाइज़ करना। विशिष्ट तरीके पर्याप्त प्रदर्शन लाभ प्रदान करते हैं।
* [[इंडेक्स लॉकिंग]] - उपयोगकर्ता डेटा के बजाय [[ सूचकांक (डेटाबेस) |सूचकांक (डेटाबेस)]] तक पहुंच संचालन को सिंक्रनाइज़ करना। विशिष्ट विधि  पर्याप्त प्रदर्शन लाभ प्रदान करते हैं।
* निजी कार्यक्षेत्र मॉडल (स्थगित अद्यतन) - प्रत्येक लेनदेन अपने एक्सेस किए गए डेटा के लिए एक निजी कार्यक्षेत्र बनाए रखता है, और इसका बदला हुआ डेटा लेनदेन के बाहर केवल इसके प्रतिबद्ध होने पर ही दिखाई देता है (उदाहरण के लिए, #Weikum01)। यह मॉडल कई मामलों में लाभ के साथ एक अलग समवर्ती नियंत्रण व्यवहार प्रदान करता है।
* निजी कार्यक्षेत्र मॉडल (स्थगित अद्यतन) - प्रत्येक ट्रांसक्शन अपने एक्सेस किए गए डेटा के लिए एक निजी कार्यक्षेत्र बनाए रखता है, और इसका बदला हुआ डेटा ट्रांसक्शन के बाहर केवल इसके प्रतिबद्ध होने पर ही दिखाई देता है (उदाहरण के लिए, या वेइकुम01)। यह मॉडल कई स्थितियों में लाभ के साथ एक अलग समवर्ती नियंत्रण व्यवहार प्रदान करता है।


1970 के दशक के शुरुआती दिनों से ही डेटाबेस सिस्टम में सबसे आम तंत्र प्रकार ''दो-चरण लॉकिंग|मजबूत सख्त दो-चरण लॉकिंग'' (SS2PL; जिसे ''कठोर शेड्यूलिंग'' या ''कठोर 2PL'' भी कहा जाता है) रहा है। ) जो दो-चरण लॉकिंग (2पीएल) और [[प्रतिबद्धता आदेश]] (सीओ) दोनों का एक विशेष मामला (संस्करण) है। यह निराशावादी है. इसके लंबे नाम के बावजूद (ऐतिहासिक कारणों से) SS2PL तंत्र का विचार सरल है: लेन-देन समाप्त होने के बाद ही लेन-देन द्वारा लागू किए गए सभी ताले जारी करें। SS2PL (या कठोरता) उन सभी अनुसूचियों के सेट का नाम भी है जो इस तंत्र द्वारा उत्पन्न किए जा सकते हैं, यानी, इन SS2PL (या कठोरता) अनुसूचियों में SS2PL (या कठोरता) संपत्ति है।
1970 के दशक के प्रारंम्भिक  दिनों से ही डेटाबेस सिस्टम में सबसे समान्य  मैकेनिज्म प्रकार दो-फेज लॉकिंग या अशक्मत सख्त दो-फेज लॉकिंग (SS2PL; जिसे कठोर शेड्यूलिंग या कठोर ''2PL'' भी कहा जाता है) रहा है। ) जो दो-फेज लॉकिंग (2पीएल) और [[प्रतिबद्धता आदेश]] (सीओ) दोनों का एक विशेष स्थिति (संस्करण) है। यह निराशावादी है. इसके लंबे नाम के अतिरिक्त (ऐतिहासिक कारणों से) SS2PL मैकेनिज्म का विचार सरल है: ट्रांसक्शन  समाप्त होने के बाद ही ट्रांसक्शन  द्वारा प्रयुक्त किए गए सभी ताले प्रसारित करते है। SS2PL (या कठोरता) उन सभी अनुसूचियों के सेट का नाम भी है जो इस मैकेनिज्म द्वारा उत्पन्न किए जा सकते हैं, अथार्त , इन SS2PL (या कठोरता) अनुसूचियों में SS2PL (या कठोरता) प्रॉपर्टी  है।


===समवर्ती नियंत्रण तंत्र के प्रमुख लक्ष्य===
===समवर्ती नियंत्रण मैकेनिज्म के प्रमुख लक्ष्य===
समवर्ती नियंत्रण तंत्र को सबसे पहले सही ढंग से संचालित करने की आवश्यकता होती है, यानी, प्रत्येक लेनदेन की अखंडता नियमों को बनाए रखने के लिए (जैसा कि समवर्ती से संबंधित है; एप्लिकेशन-विशिष्ट अखंडता नियम यहां दायरे से बाहर हैं) जबकि लेनदेन समवर्ती रूप से चल रहे हैं, और इस प्रकार संपूर्ण लेनदेन प्रणाली की अखंडता . यथासंभव अच्छे प्रदर्शन के साथ शुद्धता हासिल की जानी चाहिए। इसके अलावा, लेन-देन [[प्रक्रिया (कंप्यूटिंग)]], [[कंप्यूटर]] और [[ संगणक संजाल |संगणक संजाल]] पर [[वितरित लेनदेन]] होने पर प्रभावी ढंग से संचालित करने की आवश्यकता बढ़ती जा रही है। अन्य विषय जो समवर्ती नियंत्रण को प्रभावित कर सकते हैं वे हैं [[डेटा पुनर्प्राप्ति]] और [[प्रतिकृति (कंप्यूटर विज्ञान)]]।
स'''मवर्ती नियंत्रण मैकेनिज्म को सब'''से पहले सही रूप से संचालित करने की आवश्यकता होती है, अथार्त , प्रत्येक ट्रांसक्शन की अखंडता नियमों को बनाए रखने के लिए (जैसा कि समवर्ती से संबंधित है; एप्लिकेशन-विशिष्ट अखंडता नियम यहां सीमा से बाहर हैं) जबकि ट्रांसक्शन समवर्ती रूप से चल रहे हैं, और इस प्रकार संपूर्ण ट्रांसक्शन प्रणाली की अखंडता . यथासंभव अच्छे प्रदर्शन के साथ शुद्धता प्राप्त की जानी चाहिए। इसके अतिरिक्त , ट्रांसक्शन  [[प्रक्रिया (कंप्यूटिंग)]], [[कंप्यूटर]] और [[ संगणक संजाल |संगणक संजाल]] पर [[वितरित लेनदेन|वितरित]] ट्रांसक्शन होने पर प्रभावी रूप से संचालित करने की आवश्यकता बढ़ती जा रही है। अन्य विषय जो समवर्ती नियंत्रण को प्रभावित कर सकते हैं वे हैं [[डेटा पुनर्प्राप्ति]] और [[प्रतिकृति (कंप्यूटर विज्ञान)]]।


====शुद्धता====
====शुद्धता====
Line 72: Line 72:
{{Main|Serializability}}
{{Main|Serializability}}


शुद्धता के लिए, अधिकांश समवर्ती नियंत्रण तंत्रों का एक सामान्य प्रमुख लक्ष्य क्रमबद्धता संपत्ति के साथ शेड्यूल (कंप्यूटर विज्ञान) उत्पन्न करना है। क्रमबद्धता के बिना अवांछनीय घटनाएं घटित हो सकती हैं, उदाहरण के लिए, खातों से पैसा गायब हो सकता है, या कहीं से भी उत्पन्न हो सकता है। किसी शेड्यूल की 'क्रमबद्धता' का अर्थ समान लेन-देन के साथ कुछ सीरियल शेड्यूल के समतुल्यता (परिणामी डेटाबेस मानों में) है (यानी, जिसमें लेनदेन समय में ओवरलैप के बिना अनुक्रमिक होते हैं, और इस प्रकार एक दूसरे से पूरी तरह से अलग होते हैं: किसी के द्वारा कोई समवर्ती पहुंच नहीं) एक ही डेटा पर दो लेनदेन संभव है)। क्रमबद्धता को डेटाबेस लेनदेन के बीच अलगाव (डेटाबेस सिस्टम) का उच्चतम स्तर और समवर्ती लेनदेन के लिए प्रमुख शुद्धता मानदंड माना जाता है। समझौता किए गए कुछ मामलों में, क्रमबद्धता#क्रमबद्धता की शिथिलता को बेहतर प्रदर्शन के लिए अनुमति दी जाती है (उदाहरण के लिए, लोकप्रिय [[स्नैपशॉट अलगाव]] तंत्र) या अत्यधिक वितरित सिस्टम में [[उपलब्धता]] आवश्यकताओं को पूरा करने के लिए (अंतिम स्थिरता देखें), लेकिन केवल तभी जब एप्लिकेशन की शुद्धता का उल्लंघन नहीं किया जाता है छूट (उदाहरण के लिए, पैसे के लेनदेन के लिए कोई छूट की अनुमति नहीं है, क्योंकि छूट से पैसा गायब हो सकता है, या कहीं से भी प्रकट हो सकता है)।
शुद्धता के लिए, अधिकांश समवर्ती नियंत्रण तंत्रों का एक सामान्य प्रमुख लक्ष्य क्रमबद्धता प्रॉपर्टी  के साथ शेड्यूल (कंप्यूटर विज्ञान) उत्पन्न करना है। क्रमबद्धता के बिना अवांछनीय घटनाएं घटित हो सकती हैं, उदाहरण के लिए, खातों से पैसा विलुप्त हो सकता है, या कहीं से भी उत्पन्न हो सकता है। किसी शेड्यूल की 'क्रमबद्धता' का अर्थ समान ट्रांसक्शन  के साथ कुछ सीरियल शेड्यूल के समतुल्यता (परिणामी डेटाबेस मानों में) है (अथार्त , जिसमें ट्रांसक्शन समय में ओवरलैप के बिना अनुक्रमिक होते हैं, और इस प्रकार एक दूसरे से पूरी तरह से अलग होते हैं: किसी के द्वारा कोई समवर्ती पहुंच नहीं) एक ही डेटा पर दो ट्रांसक्शन संभव है)। क्रमबद्धता को डेटाबेस ट्रांसक्शन के बीच आइसोलेशन (डेटाबेस सिस्टम) का उच्चतम स्तर और समवर्ती ट्रांसक्शन के लिए प्रमुख शुद्धता मानदंड माना जाता है। समझौता किए गए कुछ स्थितियों में, क्रमबद्धता या क्रमबद्धता की शिथिलता को बेहतर प्रदर्शन के लिए अनुमति दी जाती है (उदाहरण के लिए, लोकप्रिय [[स्नैपशॉट अलगाव|स्नैपशॉट]] आइसोलेशन तंत्र) या अत्यधिक वितरित सिस्टम में [[उपलब्धता]] आवश्यकताओं को पूरा करने के लिए (अंतिम स्थिरता देखें), किंतु केवल तभी जब एप्लिकेशन की शुद्धता का उल्लंघन नहीं किया जाता है छूट (उदाहरण के लिए, पैसे के ट्रांसक्शन के लिए कोई छूट की अनुमति नहीं है, क्योंकि छूट से पैसा विलुप्त हो सकता है, या कहीं से भी प्रकट हो सकता है)।


लगभग सभी कार्यान्वित समवर्ती नियंत्रण तंत्र क्रमबद्धता #दृश्य और संघर्ष क्रमबद्धता प्रदान करके क्रमबद्धता प्राप्त करते हैं, क्रमबद्धता का एक व्यापक विशेष मामला (यानी, यह अधिकांश क्रमबद्ध शेड्यूल को कवर करता है, सक्षम बनाता है, और महत्वपूर्ण अतिरिक्त देरी पैदा करने वाली बाधाओं को लागू नहीं करता है) जिसे कुशलतापूर्वक कार्यान्वित किया जा सकता है .
लगभग सभी कार्यान्वित समवर्ती नियंत्रण मैकेनिज्म क्रमबद्धता या दृश्य और संघर्ष क्रमबद्धता प्रदान करके क्रमबद्धता प्राप्त करते हैं, क्रमबद्धता का एक व्यापक विशेष स्थिति (अथार्त , यह अधिकांश क्रमबद्ध शेड्यूल को कवर करता है, सक्षम बनाता है, और महत्वपूर्ण अतिरिक्त देरी पैदा करने वाली बाधाओं को प्रयुक्त नहीं करता है) जिसे कुशलतापूर्वक कार्यान्वित किया जा सकता है .


=====पुनर्प्राप्ति=====
=====पुनर्प्राप्ति=====
:क्रमबद्धता#शुद्धता - क्रमबद्धता में पुनर्प्राप्ति देखें
:क्रमबद्धता या शुद्धता - क्रमबद्धता में पुनर्प्राप्ति देखें


'टिप्पणी:' जबकि सिस्टम के सामान्य क्षेत्र में रिकवरीबिलिटी शब्द किसी सिस्टम की विफलता या गलत/निषिद्ध स्थिति से उबरने की क्षमता को संदर्भित कर सकता है, डेटाबेस सिस्टम के समवर्ती नियंत्रण के भीतर इस शब्द को एक विशिष्ट अर्थ प्राप्त हुआ है।
'टिप्पणी:' जबकि सिस्टम के सामान्य क्षेत्र में रिकवरीबिलिटी शब्द किसी सिस्टम की विफलता या गलत/निषिद्ध स्थिति से उबरने की क्षमता को संदर्भित कर सकता है, डेटाबेस सिस्टम के समवर्ती नियंत्रण के भीतर इस शब्द को एक विशिष्ट अर्थ प्राप्त हुआ है।


समवर्ती नियंत्रण आम तौर पर निरस्त लेनदेन (जो हमेशा कई कारणों से हो सकता है) के मामलों में शुद्धता बनाए रखने के लिए शेड्यूल की क्रमबद्धता #शुद्धता - पुनर्प्राप्ति योग्यता सुनिश्चित करता है। 'पुनर्प्राप्ति' (निरस्त होने से) का अर्थ है कि शेड्यूल में किसी भी प्रतिबद्ध लेनदेन ने निरस्त लेनदेन द्वारा लिखे गए डेटा को नहीं पढ़ा है। ऐसा डेटा डेटाबेस से गायब हो जाता है (निरस्त होने पर) और गलत डेटाबेस स्थिति का हिस्सा होता है। ऐसे डेटा को पढ़ना ACID के संगति नियम का उल्लंघन करता है। क्रमबद्धता के विपरीत, किसी भी मामले में पुनर्प्राप्ति योग्यता से समझौता नहीं किया जा सकता है, क्योंकि किसी भी छूट के परिणामस्वरूप गर्भपात पर त्वरित डेटाबेस अखंडता का उल्लंघन होता है। ऊपर सूचीबद्ध प्रमुख विधियाँ क्रमबद्धता तंत्र प्रदान करती हैं। उनमें से कोई भी अपने सामान्य रूप में स्वचालित रूप से पुनर्प्राप्ति प्रदान नहीं करता है, और पुनर्प्राप्ति का समर्थन करने के लिए विशेष विचार और तंत्र संवर्द्धन की आवश्यकता होती है। पुनर्प्राप्ति योग्यता का आमतौर पर उपयोग किया जाने वाला विशेष मामला शेड्यूल (कंप्यूटर विज्ञान)#स्ट्रिक्ट है, जो विफलता से कुशल डेटाबेस पुनर्प्राप्ति की अनुमति देता है (लेकिन आशावादी कार्यान्वयन को शामिल नहीं करता है; उदाहरण के लिए, प्रतिबद्धता आदेश#सख्त सीओ (एससीओ)|स्ट्रिक्ट सीओ (एससीओ) का आशावादी कार्यान्वयन नहीं हो सकता है , लेकिन प्रतिबद्धता आदेश का इतिहास#अर्ध-आशावादी डेटाबेस अनुसूचक|अर्ध-आशावादी हैं)।
समवर्ती नियंत्रण समान्यत: निरस्त ट्रांसक्शन (जो हमेशा कई कारणों से हो सकता है) के स्थितियों में शुद्धता बनाए रखने के लिए शेड्यूल की क्रमबद्धता या शुद्धता - पुनर्प्राप्ति योग्यता सुनिश्चित करता है। 'पुनर्प्राप्ति' (निरस्त होने से) का अर्थ है कि शेड्यूल में किसी भी प्रतिबद्ध ट्रांसक्शन ने निरस्त ट्रांसक्शन द्वारा लिखे गए डेटा को नहीं पढ़ा है। ऐसा डेटा डेटाबेस से विलुप्त हो जाता है (निरस्त होने पर) और गलत डेटाबेस स्थिति का हिस्सा होता है। ऐसे डेटा को पढ़ना एसीआइडी के संगति नियम का उल्लंघन करता है। क्रमबद्धता के विपरीत, किसी भी मामले में पुनर्प्राप्ति योग्यता से समझौता नहीं किया जा सकता है, क्योंकि किसी भी छूट के परिणामस्वरूप गर्भपात पर त्वरित डेटाबेस अखंडता का उल्लंघन होता है। ऊपर सूचीबद्ध प्रमुख विधियाँ क्रमबद्धता मैकेनिज्म प्रदान करती हैं। उनमें से कोई भी अपने सामान्य रूप में स्वचालित रूप से पुनर्प्राप्ति प्रदान नहीं करता है, और पुनर्प्राप्ति का समर्थन करने के लिए विशेष विचार और मैकेनिज्म संवर्द्धन की आवश्यकता होती है। पुनर्प्राप्ति योग्यता का सामान्यतः उपयोग किया जाने वाला विशेष स्थिति शेड्यूल (कंप्यूटर विज्ञान) या स्ट्रिक्ट है, जो विफलता से कुशल डेटाबेस पुनर्प्राप्ति की अनुमति देता है (किंतु आशावादी कार्यान्वयन को सम्मिलित नहीं करता है; उदाहरण के लिए, प्रतिबद्धता आदेश या सख्त सीओ (एससीओ)|स्ट्रिक्ट सीओ (एससीओ) का आशावादी कार्यान्वयन नहीं हो सकता है , किंतु प्रतिबद्धता आदेश का इतिहास या अर्ध-आशावादी डेटाबेस अनुसूचक|अर्ध-आशावादी हैं)।


'टिप्पणी:' ध्यान दें कि पुनर्प्राप्ति योग्यता संपत्ति की आवश्यकता है, भले ही कोई डेटाबेस विफलता न हो और विफलता से किसी डेटाबेस पुनर्प्राप्ति की आवश्यकता न हो। लेन-देन निरस्त होने को स्वचालित रूप से सही ढंग से संभालने के लिए इसकी आवश्यकता है, जो डेटाबेस विफलता और उससे पुनर्प्राप्ति से असंबंधित हो सकता है।
'टिप्पणी:' ध्यान दें कि पुनर्प्राप्ति योग्यता प्रॉपर्टी  की आवश्यकता है, भले ही कोई डेटाबेस विफलता न हो और विफलता से किसी डेटाबेस पुनर्प्राप्ति की आवश्यकता न हो। ट्रांसक्शन  निरस्त होने को स्वचालित रूप से सही रूप से संभालने के लिए इसकी आवश्यकता है, जो डेटाबेस विफलता और उससे पुनर्प्राप्ति से असंबंधित हो सकता है।


====वितरण====
====वितरण====
कंप्यूटिंग के तेज़ तकनीकी विकास के साथ कम विलंबता वाले कंप्यूटर नेटवर्क या [[बस (कंप्यूटिंग)]] पर स्थानीय और वितरित कंप्यूटिंग के बीच अंतर धुंधला हो रहा है। इस प्रकार ऐसे वितरित वातावरणों में स्थानीय तकनीकों का काफी प्रभावी उपयोग आम है, उदाहरण के लिए, [[कंप्यूटर क्लस्टर]] और [[मल्टी-कोर प्रोसेसर]] में। हालाँकि, स्थानीय तकनीकों की अपनी सीमाएँ हैं और वे बड़े पैमाने पर मल्टी-प्रोसेसर (या मल्टी-कोर) द्वारा समर्थित मल्टी-प्रोसेस (या थ्रेड्स) का उपयोग करते हैं। यह अक्सर लेन-देन को वितरित लेन-देन में बदल देता है, यदि उन्हें स्वयं बहु-प्रक्रियाओं को फैलाने की आवश्यकता होती है। इन मामलों में अधिकांश स्थानीय समवर्ती नियंत्रण तकनीकें अच्छी तरह से स्केल नहीं करती हैं।
कंप्यूटिंग के तेज़ तकनीकी विकास के साथ कम विलंबता वाले कंप्यूटर नेटवर्क या [[बस (कंप्यूटिंग)]] पर स्थानीय और वितरित कंप्यूटिंग के बीच अंतर धुंधला हो रहा है। इस प्रकार ऐसे वितरित वातावरणों में स्थानीय तकनीकों का काफी प्रभावी उपयोग आम है, उदाहरण के लिए, [[कंप्यूटर क्लस्टर]] और [[मल्टी-कोर प्रोसेसर]] में। चूँकि , स्थानीय तकनीकों की अपनी सीमाएँ हैं और वे बड़े पैमाने पर मल्टी-प्रोसेसर (या मल्टी-कोर) द्वारा समर्थित मल्टी-प्रोसेस (या थ्रेड्स) का उपयोग करते हैं। यह अक्सर ट्रांसक्शन  को वितरित ट्रांसक्शन  में बदल देता है, यदि उन्हें स्वयं बहु-प्रक्रियाओं को फैलाने की आवश्यकता होती है। इन स्थितियों में अधिकांश स्थानीय समवर्ती नियंत्रण तकनीकें अच्छी तरह से स्केल नहीं करती हैं।


=====वितरित क्रमबद्धता और प्रतिबद्धता क्रम=====
=====वितरित क्रमबद्धता और प्रतिबद्धता क्रम=====
:Serializability#Distributed क्रमबद्धता को Serializability में देखें
:Serializability या Distributed क्रमबद्धता को Serializability में देखें
{{Main|Global serializability}} {{Main|Commitment ordering}}
{{Main|Global serializability}} {{Main|Commitment ordering}}
चूंकि डेटाबेस सिस्टम वितरित डेटाबेस बन गए हैं, या वितरित वातावरण में सहयोग करना शुरू कर दिया है (उदाहरण के लिए, 1990 के दशक की शुरुआत में फ़ेडरेटेड डेटाबेस, और आजकल ग्रिड कंप्यूटिंग, क्लाउड कंप्यूटिंग और स्मार्टफ़ोन के साथ नेटवर्क), कुछ लेनदेन वितरित हो गए हैं। एक वितरित लेनदेन का मतलब है कि लेनदेन प्रक्रिया (कंप्यूटिंग) तक फैला हुआ है, और कंप्यूटर और भौगोलिक साइटों तक फैल सकता है। यह प्रभावी [[वितरित समवर्ती नियंत्रण]] तंत्र की आवश्यकता उत्पन्न करता है। एक वितरित प्रणाली के शेड्यूल की क्रमबद्धता संपत्ति को प्राप्त करना (देखें क्रमबद्धता#वितरित क्रमबद्धता और [[वैश्विक क्रमबद्धता]] (मॉड्यूलर क्रमबद्धता)) प्रभावी ढंग से विशेष चुनौतियों का सामना करता है जो आम तौर पर अधिकांश नियमित क्रमबद्धता तंत्रों द्वारा पूरी नहीं की जाती हैं, जो मूल रूप से स्थानीय रूप से संचालित करने के लिए डिज़ाइन की गई हैं। यह विशेष रूप से संचार और कंप्यूटर [[विलंबता (इंजीनियरिंग)]] के बीच समवर्ती नियंत्रण जानकारी के महंगे वितरण की आवश्यकता के कारण है। वितरण के लिए एकमात्र ज्ञात सामान्य प्रभावी तकनीक कमिटमेंट ऑर्डरिंग है, जिसे 1991 में ([[पेटेंट]] होने के बाद) सार्वजनिक रूप से प्रकट किया गया था। 'कमिटमेंट ऑर्डरिंग' (कमिट ऑर्डरिंग, सीओ; #Raz92) का अर्थ है कि प्रतिबद्ध घटनाओं के लेन-देन के कालानुक्रमिक क्रम को उनके संबंधित क्रमबद्धता#परीक्षण संघर्ष क्रमबद्धता के साथ संगत रखा जाता है। सीओ को समवर्ती नियंत्रण जानकारी के वितरण की आवश्यकता नहीं है और वितरित और वैश्विक क्रमबद्धता दोनों के लिए एक सामान्य प्रभावी समाधान (विश्वसनीयता इंजीनियरिंग, उच्च-प्रदर्शन और [[ अनुमापकता |अनुमापकता]] ) प्रदान करता है, साथ ही डेटाबेस सिस्टम (या अन्य लेनदेन वस्तुओं) के साथ एक विषम वातावरण में भी। (कोई भी) समवर्ती नियंत्रण तंत्र।<ref name=Bern2009/>सीओ इस बात के प्रति उदासीन है कि किस तंत्र का उपयोग किया जाता है, क्योंकि यह किसी भी लेनदेन संचालन शेड्यूलिंग (जिसे अधिकांश तंत्र नियंत्रित करते हैं) में हस्तक्षेप नहीं करता है, और केवल प्रतिबद्ध घटनाओं के क्रम को निर्धारित करता है। इस प्रकार, CO वितरित और वैश्विक क्रमबद्धता प्राप्त करने के लिए अन्य सभी तंत्रों के कुशल वितरण और विभिन्न (किसी भी) स्थानीय तंत्र के मिश्रण के वितरण को भी सक्षम बनाता है। इस तरह के समाधान के अस्तित्व को 1991 तक असंभाव्य माना गया है, और कई विशेषज्ञों द्वारा बाद में भी, प्रतिबद्धता आदेश #सारांश की गलतफहमी के कारण (वैश्विक क्रमबद्धता #वैश्विक क्रमबद्धता में उद्धरण देखें)। सीओ का एक महत्वपूर्ण पक्ष-लाभ वैश्विक चक्रों द्वारा मतदान-गतिरोधों का प्रतिबद्धता आदेश#सटीक लक्षण वर्णन है। सीओ के विपरीत, वस्तुतः सभी अन्य तकनीकें (जब सीओ के साथ संयुक्त नहीं होती हैं) डेडलॉक#वितरित गतिरोध (जिसे वैश्विक गतिरोध भी कहा जाता है) का खतरा होता है, जिन्हें विशेष रूप से संभालने की आवश्यकता होती है। सीओ परिणामी शेड्यूल संपत्ति का नाम भी है: एक शेड्यूल में सीओ संपत्ति होती है यदि उसके लेनदेन की प्रतिबद्ध घटनाओं का कालानुक्रमिक क्रम संबंधित लेनदेन के क्रमबद्धता#परीक्षण संघर्ष क्रमबद्धता|प्राथमिकता (आंशिक) क्रम के साथ संगत है।
चूंकि डेटाबेस सिस्टम वितरित डेटाबेस बन गए हैं, या वितरित वातावरण में सहयोग करना शुरू कर दिया है (उदाहरण के लिए, 1990 के दशक की प्रारंभ में फ़ेडरेटेड डेटाबेस, और आजकल ग्रिड कंप्यूटिंग, क्लाउड कंप्यूटिंग और स्मार्टफ़ोन के साथ नेटवर्क), कुछ ट्रांसक्शन वितरित हो गए हैं। एक वितरित ट्रांसक्शन का मतलब है कि ट्रांसक्शन प्रक्रिया (कंप्यूटिंग) तक फैला हुआ है, और कंप्यूटर और भौगोलिक साइटों तक फैल सकता है। यह प्रभावी [[वितरित समवर्ती नियंत्रण]] मैकेनिज्म की आवश्यकता उत्पन्न करता है। एक वितरित प्रणाली के शेड्यूल की क्रमबद्धता प्रॉपर्टी  को प्राप्त करना (देखें क्रमबद्धता या वितरित क्रमबद्धता और [[वैश्विक क्रमबद्धता]] (मॉड्यूलर क्रमबद्धता)) प्रभावी रूप से विशेष चुनौतियों का सामना करता है जो समान्यत: अधिकांश नियमित क्रमबद्धता तंत्रों द्वारा पूरी नहीं की जाती हैं, जो मूल रूप से स्थानीय रूप से संचालित करने के लिए डिज़ाइन की गई हैं। यह विशेष रूप से संचार और कंप्यूटर [[विलंबता (इंजीनियरिंग)]] के बीच समवर्ती नियंत्रण जानकारी के महंगे वितरण की आवश्यकता के कारण है। वितरण के लिए एकमात्र ज्ञात सामान्य प्रभावी तकनीक कमिटमेंट ऑर्डरिंग है, जिसे 1991 में ([[पेटेंट]] होने के बाद) सार्वजनिक रूप से प्रकट किया गया था। 'कमिटमेंट ऑर्डरिंग' (कमिट ऑर्डरिंग, सीओ; या Raz92) का अर्थ है कि प्रतिबद्ध घटनाओं के ट्रांसक्शन  के कालानुक्रमिक क्रम को उनके संबंधित क्रमबद्धता या परीक्षण संघर्ष क्रमबद्धता के साथ संगत रखा जाता है। सीओ को समवर्ती नियंत्रण जानकारी के वितरण की आवश्यकता नहीं है और वितरित और वैश्विक क्रमबद्धता दोनों के लिए एक सामान्य प्रभावी समाधान (विश्वसनीयता इंजीनियरिंग, उच्च-प्रदर्शन और [[ अनुमापकता |अनुमापकता]] ) प्रदान करता है, साथ ही डेटाबेस सिस्टम (या अन्य ट्रांसक्शन वस्तुओं) के साथ एक विषम वातावरण में भी। (कोई भी) समवर्ती नियंत्रण तंत्र।<ref name=Bern2009/>सीओ इस बात के प्रति उदासीन है कि किस मैकेनिज्म का उपयोग किया जाता है, क्योंकि यह किसी भी ट्रांसक्शन संचालन शेड्यूलिंग (जिसे अधिकांश मैकेनिज्म नियंत्रित करते हैं) में हस्तक्षेप नहीं करता है, और केवल प्रतिबद्ध घटनाओं के क्रम को निर्धारित करता है। इस प्रकार, CO वितरित और वैश्विक क्रमबद्धता प्राप्त करने के लिए अन्य सभी तंत्रों के कुशल वितरण और विभिन्न (किसी भी) स्थानीय मैकेनिज्म के मिश्रण के वितरण को भी सक्षम बनाता है। इस तरह के समाधान के अस्तित्व को 1991 तक असंभाव्य माना गया है, और कई विशेषज्ञों द्वारा बाद में भी, प्रतिबद्धता आदेश या सारांश की गलतफहमी के कारण (वैश्विक क्रमबद्धता या वैश्विक क्रमबद्धता में उद्धरण देखें)। सीओ का एक महत्वपूर्ण पक्ष-लाभ वैश्विक चक्रों द्वारा मतदान-गतिरोधों का प्रतिबद्धता आदेश या सटीक लक्षण वर्णन है। सीओ के विपरीत, वस्तुतः सभी अन्य तकनीकें (जब सीओ के साथ संयुक्त नहीं होती हैं) डेडलॉक या वितरित गतिरोध (जिसे वैश्विक गतिरोध भी कहा जाता है) का खतरा होता है, जिन्हें विशेष रूप से संभालने की आवश्यकता होती है। सीओ परिणामी शेड्यूल प्रॉपर्टी  का नाम भी है: एक शेड्यूल में सीओ प्रॉपर्टी  होती है यदि उसके ट्रांसक्शन की प्रतिबद्ध घटनाओं का कालानुक्रमिक क्रम संबंधित ट्रांसक्शन के क्रमबद्धता या परीक्षण संघर्ष क्रमबद्धता|प्राथमिकता (आंशिक) क्रम के साथ संगत है।


ऊपर उल्लिखित दो-चरण लॉकिंग सीओ का एक प्रकार (विशेष मामला) है और इस प्रकार वितरित और वैश्विक क्रमबद्धता प्राप्त करने के लिए भी प्रभावी है। यह स्वचालित रूप से वितरित गतिरोध समाधान (सीओ के प्रकाशन के बाद भी शोध साहित्य में अनदेखा तथ्य) प्रदान करता है, साथ ही कठोरता और इस प्रकार पुनर्प्राप्ति भी प्रदान करता है। ज्ञात कुशल लॉकिंग आधारित कार्यान्वयन के साथ इन वांछित गुणों का होना SS2PL की लोकप्रियता को स्पष्ट करता है। SS2PL का उपयोग 1980 के बाद से वितरित और वैश्विक क्रमबद्धता को कुशलतापूर्वक प्राप्त करने के लिए किया गया है, और यह इसके लिए [[वास्तविक मानक]] बन गया है। हालाँकि, SS2PL अवरुद्ध और बाधित (निराशावादी) है, और पारंपरिक डेटाबेस सिस्टम (उदाहरण के लिए, क्लाउड कंप्यूटिंग में) से भिन्न प्रणालियों के वितरण और उपयोग के प्रसार के साथ, CO के कम अवरोधक प्रकार (उदाहरण के लिए, प्रतिबद्धता आदेश#वितरित आशावादी CO) बेहतर प्रदर्शन के लिए DOCO)) की आवश्यकता हो सकती है।
ऊपर उल्लिखित दो-फेज लॉकिंग सीओ का एक प्रकार (विशेष मामला) है और इस प्रकार वितरित और वैश्विक क्रमबद्धता प्राप्त करने के लिए भी प्रभावी है। यह स्वचालित रूप से वितरित गतिरोध समाधान (सीओ के प्रकाशन के बाद भी शोध साहित्य में अनदेखा तथ्य) प्रदान करता है, साथ ही कठोरता और इस प्रकार पुनर्प्राप्ति भी प्रदान करता है। ज्ञात कुशल लॉकिंग आधारित कार्यान्वयन के साथ इन वांछित गुणों का होना SS2PL की लोकप्रियता को स्पष्ट करता है। SS2PL का उपयोग 1980 के बाद से वितरित और वैश्विक क्रमबद्धता को कुशलतापूर्वक प्राप्त करने के लिए किया गया है, और यह इसके लिए [[वास्तविक मानक]] बन गया है। चूँकि , SS2PL अवरुद्ध और बाधित (निराशावादी) है, और पारंपरिक डेटाबेस सिस्टम (उदाहरण के लिए, क्लाउड कंप्यूटिंग में) से भिन्न सिस्टम के वितरण और उपयोग के प्रसार के साथ, CO के कम अवरोधक प्रकार (उदाहरण के लिए, प्रतिबद्धता आदेश या वितरित आशावादी CO) बेहतर प्रदर्शन के लिए DOCO)) की आवश्यकता हो सकती है।


'टिप्पणियाँ:'
'टिप्पणियाँ:'
# वितरित संघर्ष क्रमबद्धता संपत्ति को उसके सामान्य रूप में कुशलतापूर्वक हासिल करना मुश्किल है, लेकिन इसे इसके विशेष मामले वितरित सीओ के माध्यम से कुशलतापूर्वक हासिल किया जाता है: प्रत्येक स्थानीय घटक (उदाहरण के लिए, एक स्थानीय डीबीएमएस) को सीओ के कुछ रूप प्रदान करने और लागू करने दोनों की आवश्यकता होती है [[दो-चरण प्रतिबद्ध प्रोटोकॉल]] (2PC: वितरित लेनदेन करने के लिए उपयोग किया जाता है) के लिए विशेष वोट ऑर्डरिंग रणनीति। सामान्य वितरित CO से भिन्न, वितरित SS2PL प्रतिबद्धता आदेश#मजबूत सख्त दो चरण लॉकिंग (SS2PL) (प्रत्येक घटक में CO मौजूद है, निहित है, और वोट ऑर्डरिंग रणनीति अब स्वचालित रूप से पूरी हो जाती है)। इस तथ्य को 1980 के दशक से जाना और उपयोग किया गया है (यानी, CO के बारे में जाने बिना, SS2PL विश्व स्तर पर मौजूद है), कुशल वितरित SS2PL के लिए, जिसका अर्थ है वितरित क्रमबद्धता और कठोरता (उदाहरण के लिए, #Raz92, पृष्ठ 293 देखें; यह # में भी निहित है) बर्न87|बर्नस्टीन एट अल. 1987, पृष्ठ 78)। वितरित प्रतिबद्धता आदेश #स्ट्रिक्ट सीओ (एससीओ)|स्ट्रिक्ट सीओ (एससीओ), या एसएस2पीएल आधारित और एससीओ आधारित स्थानीय घटकों के मिश्रण से कम बाधित वितरित क्रमबद्धता और सख्ती को कुशलतापूर्वक प्राप्त किया जा सकता है।
# वितरित संघर्ष क्रमबद्धता प्रॉपर्टी  को उसके सामान्य रूप में कुशलतापूर्वक प्राप्त करना मुश्किल है, किंतु इसे इसके विशेष मामले वितरित सीओ के माध्यम से कुशलतापूर्वक प्राप्त किया जाता है: प्रत्येक स्थानीय घटक (उदाहरण के लिए, एक स्थानीय डीबीएमएस) को सीओ के कुछ रूप प्रदान करने और प्रयुक्त करने दोनों की आवश्यकता होती है [[दो-चरण प्रतिबद्ध प्रोटोकॉल|दो-फेज प्रतिबद्ध प्रोटोकॉल]] (2PC: वितरित ट्रांसक्शन करने के लिए उपयोग किया जाता है) के लिए विशेष वोट ऑर्डरिंग रणनीति। सामान्य वितरित CO से भिन्न, वितरित SS2PL प्रतिबद्धता आदेश या मजबूत सख्त दो फेज लॉकिंग (SS2PL) (प्रत्येक घटक में CO उपस्थित  है, निहित है, और वोट ऑर्डरिंग रणनीति अब स्वचालित रूप से पूरी हो जाती है)। इस तथ्य को 1980 के दशक से जाना और उपयोग किया गया है (अथार्त , CO के बारे में जाने बिना, SS2PL विश्व स्तर पर उपस्थित  है), कुशल वितरित SS2PL के लिए, जिसका अर्थ है वितरित क्रमबद्धता और कठोरता (उदाहरण के लिए, या Raz92, पृष्ठ 293 देखें; यह या  में भी निहित है) बर्न87|बर्नस्टीन एट अल. 1987, पृष्ठ 78)। वितरित प्रतिबद्धता आदेश या स्ट्रिक्ट सीओ (एससीओ)|स्ट्रिक्ट सीओ (एससीओ), या एसएस2पीएल आधारित और एससीओ आधारित स्थानीय घटकों के मिश्रण से कम बाधित वितरित क्रमबद्धता और सख्ती को कुशलतापूर्वक प्राप्त किया जा सकता है।
# संदर्भों और प्रतिबद्धता क्रम के बारे में: (#बर्न87|बर्नस्टीन एट अल. 1987) 1990 में सीओ की खोज से पहले प्रकाशित किया गया था। सीओ अनुसूची संपत्ति को द हिस्ट्री ऑफ कमिटमेंट ऑर्डरिंग#डायनामिक एटोमिसिटी (#लिंच1993|लिंच एट अल) कहा जाता है। .1993, पृष्ठ 201)। CO का वर्णन (#Weikum2001, पृष्ठ 102, 700) में किया गया है, लेकिन विवरण आंशिक है और प्रतिबद्धता आदेश#सारांश|CO का सार गायब है। (#Raz92) CO एल्गोरिदम के बारे में पहला रेफरीड और प्रकाशन के लिए स्वीकृत लेख था (हालाँकि, समतुल्य गतिशील परमाणु संपत्ति के बारे में प्रकाशन 1988 से पता लगाया जा सकता है)। अन्य प्रतिबद्धता आदेश#संदर्भों का पालन किया गया। (बर्नस्टेईएन और नवागंतुक 2009)<ref name=Bern2009/>चार प्रमुख संगामिति नियंत्रण विधियों में से एक के रूप में CO पर ध्यान दें, और अन्य विधियों के बीच अंतर-संचालनीयता प्रदान करने की CO की क्षमता पर ध्यान दें।
# संदर्भों और प्रतिबद्धता क्रम के बारे में: ( या बर्न87|बर्नस्टीन एट अल. 1987) 1990 में सीओ की खोज से पहले प्रकाशित किया गया था। सीओ अनुसूची प्रॉपर्टी  को द हिस्ट्री ऑफ कमिटमेंट ऑर्डरिंग या डायनामिक एटोमिसिटी ( या लिंच1993|लिंच एट अल) कहा जाता है। .1993, पृष्ठ 201)। CO का वर्णन ( या Weikum2001, पृष्ठ 102, 700) में किया गया है, किंतु विवरण आंशिक है और प्रतिबद्धता आदेश या सारांश|CO का सार विलुप्त है। ( या Raz92) CO एल्गोरिदम के बारे में पहला रेफरीड और प्रकाशन के लिए स्वीकृत लेख था (चूँकि , समतुल्य गतिशील एटॉमिक प्रॉपर्टी  के बारे में प्रकाशन 1988 से पता लगाया जा सकता है)। अन्य प्रतिबद्धता आदेश या संदर्भों का पालन किया गया। (बर्नस्टेईएन और नवागंतुक 2009)<ref name=Bern2009/>चार प्रमुख संगामिति नियंत्रण विधियों में से एक के रूप में CO पर ध्यान दें, और अन्य विधियों के बीच अंतर-संचालनीयता प्रदान करने की CO की क्षमता पर ध्यान दें।


=====वितरित पुनर्प्राप्ति=====
=====वितरित पुनर्प्राप्ति=====
क्रमबद्धता के विपरीत, वितरित पुनर्प्राप्ति और वितरित सख्ती को सीधे तरीके से कुशलतापूर्वक प्राप्त किया जा सकता है, उसी तरह जिस तरह से वितरित सीओ प्राप्त किया जाता है: प्रत्येक डेटाबेस प्रणाली में उन्हें स्थानीय रूप से लागू किया जाना चाहिए, और दो-चरण प्रतिबद्ध प्रोटोकॉल के लिए वोट ऑर्डरिंग रणनीति को नियोजित करना होगा। (2पीसी; #रेज़92, पृष्ठ 307)।
क्रमबद्धता के विपरीत, वितरित पुनर्प्राप्ति और वितरित सख्ती को सीधे विधि  से कुशलतापूर्वक प्राप्त किया जा सकता है, उसी तरह जिस तरह से वितरित सीओ प्राप्त किया जाता है: प्रत्येक डेटाबेस प्रणाली में उन्हें स्थानीय रूप से प्रयुक्त किया जाना चाहिए, और दो-फेज प्रतिबद्ध प्रोटोकॉल के लिए वोट ऑर्डरिंग रणनीति को नियोजित करना होगा। (2पीसी; या रेज़92, पृष्ठ 307)।


जैसा कि ऊपर उल्लेख किया गया है, वितरित कठोरता (पुनर्प्राप्ति) और वितरित प्रतिबद्धता आदेश (क्रमबद्धता) सहित वितरित दो-चरण लॉकिंग, स्वचालित रूप से आवश्यक वोट ऑर्डरिंग रणनीति को नियोजित करती है, और प्रत्येक (स्थानीय) डेटाबेस सिस्टम में स्थानीय रूप से नियोजित होने पर (वैश्विक स्तर पर) हासिल की जाती है। (जैसा कि कई वर्षों से ज्ञात और उपयोग किया गया है; वास्तव में स्थानीयता को 2PC प्रतिभागी (#Raz92) की सीमा द्वारा परिभाषित किया गया है)।
जैसा कि ऊपर उल्लेख किया गया है, वितरित कठोरता (पुनर्प्राप्ति) और वितरित प्रतिबद्धता आदेश (क्रमबद्धता) सहित वितरित दो-फेज लॉकिंग, स्वचालित रूप से आवश्यक वोट ऑर्डरिंग रणनीति को नियोजित करती है, और प्रत्येक (स्थानीय) डेटाबेस सिस्टम में स्थानीय रूप से नियोजित होने पर (वैश्विक स्तर पर) प्राप्त की जाती है। (जैसा कि कई वर्षों से ज्ञात और उपयोग किया गया है; वास्तव में स्थानीयता को 2PC प्रतिभागी ( या Raz92) की सीमा द्वारा परिभाषित किया गया है)।


=====वसूली=====
=====वसूली=====
{{Main|Data recovery}}
{{Main|Data recovery}}
सभी सिस्टम विफलताओं से ग्रस्त हैं, और विफलता से डेटा पुनर्प्राप्ति को संभालना जरूरी है। उत्पन्न शेड्यूल के गुण, जो समवर्ती नियंत्रण तंत्र द्वारा निर्धारित होते हैं, पुनर्प्राप्ति की प्रभावशीलता और दक्षता को प्रभावित कर सकते हैं। उदाहरण के लिए, स्ट्रिक्टनेस प्रॉपर्टी (उपरोक्त कॉन्करेंसी कंट्रोल#रिकवरेबिलिटी अनुभाग में उल्लिखित) एक कुशल पुनर्प्राप्ति के लिए अक्सर वांछनीय होती है।
सभी सिस्टम विफलताओं से ग्रस्त हैं, और विफलता से डेटा पुनर्प्राप्ति को संभालना जरूरी है। उत्पन्न शेड्यूल के गुण, जो समवर्ती नियंत्रण मैकेनिज्म द्वारा निर्धारित होते हैं, पुनर्प्राप्ति की प्रभावशीलता और दक्षता को प्रभावित कर सकते हैं। उदाहरण के लिए, स्ट्रिक्टनेस प्रॉपर्टी (उपरोक्त कॉन्करेंसी कंट्रोल या रिकवरेबिलिटी अनुभाग में उल्लिखित) एक कुशल पुनर्प्राप्ति के लिए अक्सर वांछनीय होती है।


=====प्रतिकृति=====
=====प्रतिकृति=====
{{Main|Replication (computer science)}}
{{Main|Replication (computer science)}}
उच्च उपलब्धता के लिए डेटाबेस ऑब्जेक्ट अक्सर प्रतिकृति (कंप्यूटर विज्ञान) होते हैं। एक ही डेटाबेस ऑब्जेक्ट की प्रतिकृतियों के अपडेट को सिंक्रनाइज़ रखने की आवश्यकता है। यह समवर्ती नियंत्रण के तरीके को प्रभावित कर सकता है (उदाहरण के लिए, ग्रे एट अल. 1996)<ref name=Gray1996>{{cite conference
उच्च उपलब्धता के लिए डेटाबेस ऑब्जेक्ट अक्सर प्रतिकृति (कंप्यूटर विज्ञान) होते हैं। एक ही डेटाबेस ऑब्जेक्ट की प्रतिकृतियों के अपडेट को सिंक्रनाइज़ रखने की आवश्यकता है। यह समवर्ती नियंत्रण के विधि  को प्रभावित कर सकता है (उदाहरण के लिए, ग्रे एट अल. 1996)<ref name=Gray1996>{{cite conference
  | author = Gray, J.
  | author = Gray, J.
  | author2 = Helland, P.
  | author2 = Helland, P.
Line 129: Line 129:
=== यह भी देखें ===
=== यह भी देखें ===
* अनुसूची (कंप्यूटर विज्ञान)
* अनुसूची (कंप्यूटर विज्ञान)
* [[अलगाव (कंप्यूटर विज्ञान)]]
* [[अलगाव (कंप्यूटर विज्ञान)|आइसोलेशन (कंप्यूटर विज्ञान)]]
* वितरित समवर्ती नियंत्रण
* वितरित समवर्ती नियंत्रण


Line 146: Line 146:


== ऑपरेटिंग सिस्टम में समवर्ती नियंत्रण ==
== ऑपरेटिंग सिस्टम में समवर्ती नियंत्रण ==
[[कंप्यूटर मल्टीटास्किंग]] ऑपरेटिंग सिस्टम, विशेष रूप से [[वास्तविक समय ऑपरेटिंग सिस्टम]], को यह भ्रम बनाए रखने की आवश्यकता है कि उनके ऊपर चल रहे सभी कार्य एक ही समय में चल रहे हैं, भले ही किसी भी समय वास्तव में केवल एक या कुछ कार्य ही चल रहे हों। ऑपरेटिंग सिस्टम जिस हार्डवेयर पर चल रहा है उसकी सीमाएँ। जब सभी कार्य एक-दूसरे से स्वतंत्र हों तो ऐसी मल्टीटास्किंग काफी सरल होती है। हालाँकि, जब कई कार्य एक ही संसाधन का उपयोग करने का प्रयास करते हैं, या जब कार्य जानकारी साझा करने का प्रयास करते हैं, तो इससे भ्रम और असंगति पैदा हो सकती है। समवर्ती कंप्यूटिंग का कार्य उस समस्या को हल करना है। कुछ समाधानों में डेटाबेस में उपयोग किए जाने वाले लॉक के समान लॉक शामिल होते हैं, लेकिन वे गतिरोध जैसी अपनी समस्याएं पैदा करने का जोखिम उठाते हैं। अन्य समाधान [[नॉन-ब्लॉकिंग एल्गोरिदम]] और [[ पढ़ें-कॉपी-अपडेट करें |पढ़ें-कॉपी-अपडेट करें]] हैं।
[[कंप्यूटर मल्टीटास्किंग]] ऑपरेटिंग सिस्टम, विशेष रूप से [[वास्तविक समय ऑपरेटिंग सिस्टम]], को यह भ्रम बनाए रखने की आवश्यकता है कि उनके ऊपर चल रहे सभी कार्य एक ही समय में चल रहे हैं, भले ही किसी भी समय वास्तव में केवल एक या कुछ कार्य ही चल रहे हों। ऑपरेटिंग सिस्टम जिस हार्डवेयर पर चल रहा है उसकी सीमाएँ। जब सभी कार्य एक-दूसरे से स्वमैकेनिज्म हों तो ऐसी मल्टीटास्किंग काफी सरल होती है। चूँकि , जब कई कार्य एक ही संसाधन का उपयोग करने का प्रयास करते हैं, या जब कार्य जानकारी साझा करने का प्रयास करते हैं, तो इससे भ्रम और असंगति पैदा हो सकती है। समवर्ती कंप्यूटिंग का कार्य उस समस्या को हल करना है। कुछ समाधानों में डेटाबेस में उपयोग किए जाने वाले लॉक के समान लॉक सम्मिलित होते हैं, किंतु वे गतिरोध जैसी अपनी समस्याएं पैदा करने का जोखिम उठाते हैं। अन्य समाधान [[नॉन-ब्लॉकिंग एल्गोरिदम]] और [[ पढ़ें-कॉपी-अपडेट करें |पढ़ें-कॉपी-अपडेट करें]] हैं।


=== यह भी देखें ===
=== यह भी देखें ===

Revision as of 15:55, 23 July 2023

सूचना प्रौद्योगिकी और कंप्यूटर विज्ञान में, विशेष रूप से कंप्यूटर प्रोग्रामिंग, ऑपरेटिंग सिस्टम, मल्टीप्रोसेसर और डेटाबेस के क्षेत्र में, समवर्ती नियंत्रण यह सुनिश्चित करता है कि समवर्ती संचालन के लिए सही परिणाम उत्पन्न हों, जबकि उन परिणामों को जितनी जल्दी हो सकता है जिसे प्राप्त किया जा सकता है।

कंप्यूटर सिस्टम, सॉफ़्टवेयर और कंप्यूटर हार्डवेयर दोनों में मॉड्यूल या घटक सम्मिलित होते हैं। प्रत्येक घटक को सही रूप से संचालित करने के लिए डिज़ाइन किया गया है, अथार्त , कुछ स्थिरता नियमों का पालन करने या पूरा करने के लिए जब घटक जो समवर्ती रूप से संचालित होते हैं, मैसेजिंग द्वारा या एक्सेस किए गए डेटा ( मेमोरी या कंप्यूटर डेटा स्टोरेज में) साझा करके बातचीत करते हैं, तो एक निश्चित घटक की स्थिरता का उल्लंघन किसी अन्य घटक द्वारा किया जा सकता है। समवर्ती नियंत्रण का सामान्य क्षेत्र परस्पर क्रिया करते समय समवर्ती रूप से संचालित होने वाले घटकों की स्थिरता बनाए रखने के लिए नियम, विधियाँ, डिज़ाइन पद्धतियाँ और वैज्ञानिक सिद्धांत प्रदान करता है, और इस प्रकार पूरे सिस्टम की स्थिरता और शुद्धता बनाए रखता है। किसी सिस्टम में समवर्ती नियंत्रण का परिचय देने का अर्थ है संचालन बाधाओं को प्रयुक्त करना जिसके परिणामस्वरूप समान्यत: कुछ प्रदर्शन में कमी आती है। उचित स्तर से नीचे प्रदर्शन को कम किए बिना, संचालन की स्थिरता और शुद्धता को यथासंभव अच्छी दक्षता के साथ प्राप्त किया जाना चाहिए। सरल कांकररेंट एल्गोरिदम की तुलना में सेक़ुएन्टिअल एल्गोरिदम में समवर्ती नियंत्रण के लिए महत्वपूर्ण अतिरिक्त समष्टि ता और ओवरहेड की आवश्यकता हो सकती है।

उदाहरण के लिए, समवर्ती नियंत्रण में विफलता के परिणामस्वरूप फटे हुए या राईट ऑपरेशन से डेटा करप्शन हो सकता है।

डेटाबेस में समवर्ती नियंत्रण

टिप्पणियाँ:

  1. यह अनुभाग सभी ट्रांसक्शन सिस्टम पर प्रयुक्त होता है, अथार्त उन सभी सिस्टम पर जो डेटाबेस ट्रांसक्शन्स (एटॉमिक लेनदेन) का उपयोग करते हैं; उदाहरण के लिए, सिस्टम मैनजमेंट में ट्रांसक्शन संबंधी वस्तुएं और स्मार्टफोन के नेटवर्क में जो समान्यत: निजी, समर्पित डेटाबेस प्रयुक्त करते हैं सिस्टम), न केवल सामान्य प्रयोजन डेटाबेस मैनजमेंट सिस्टम (डीबीएमएस)।
  2. डीबीएमएस को समवर्ती नियंत्रण उद्देश्य से भी निपटने की ज़रूरत है जो न केवल डेटाबेस ट्रांसक्शन के लिए विशिष्ट हैं, किंतु सामान्य रूप से ऑपरेटिंग सिस्टम के लिए भी हैं। ये उद्देश्य (उदाहरण के लिए, नीचे कॉन्करेंसी कंट्रोल या ऑपरेटिंग सिस्टम में कंकरेंसी कंट्रोल देखें) इस अनुभाग के सीमा से बाहर हैं।

डेटाबेस मैनजमेंट सिस्टम (डीबीएमएस; उदाहरण के लिए, बर्नस्टीन एट अल 1987, वीकुम और वोसेन 2001), अन्य ट्रांसक्शन संबंधी वस्तुओं और संबंधित वितरित अनुप्रयोगों (उदाहरण के लिए, ग्रिड कंप्यूटिंग और क्लाउड कंप्यूटिंग) में समवर्ती नियंत्रण यह सुनिश्चित करता है कि डेटाबेस ट्रांसक्शन संबंधित डेटाबेस की डेटा अखंडता का उल्लंघन किए बिना समवर्ती रूप से किया जाता है। इस प्रकार समवर्ती नियंत्रण किसी भी प्रणाली में शुद्धता के लिए एक आवश्यक तत्व है जहां समय ओवरलैप के साथ निष्पादित दो या अधिक डेटाबेस लेनदेन, एक ही डेटा तक पहुंच सकते हैं, उदाहरण के लिए, वस्तुतः किसी भी सामान्य प्रयोजन डेटाबेस प्रणाली में। परिणाम स्वरुप , 1970 के दशक की प्रारंभ में डेटाबेस सिस्टम के उभरने के बाद से संबंधित अनुसंधान का एक विशाल संचय जमा हो गया है। डेटाबेस सिस्टम के लिए एक अच्छी तरह से स्थापित समवर्ती नियंत्रण सिद्धांत ऊपर उल्लिखित संदर्भों में उल्लिखित है: क्रमबद्धता सिद्धांत, जो समवर्ती नियंत्रण विधियों और तंत्रों को प्रभावी रूप से डिजाइन और विश्लेषण करने की अनुमति देता है। अमूर्त डेटा प्रकारों पर एटॉमिक ट्रांसक्शन के समवर्ती नियंत्रण के लिए एक वैकल्पिक सिद्धांत (लिंच एट अल. 1993) में प्रस्तुत किया गया है, और नीचे इसका उपयोग नहीं किया गया है। यह सिद्धांत अधिक परिष्कृत, समष्टि , व्यापक सीमा वाला है और उपरोक्त मौलिक सिद्धांत की तुलना में डेटाबेस साहित्य में इसका कम उपयोग किया गया है। प्रत्येक सिद्धांत के अपने पक्ष और विपक्ष, जोर और अंतर्दृष्टि होती है। कुछ सीमा तक वे पूरक हैं, और उनका विलय उपयोगी हो सकता है।

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

डेटाबेस ट्रांसक्शन और एसीआइडी नियम

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

  • ' एटॉमिसिटी (डेटाबेस सिस्टम) ' - जब डेटाबेस ट्रांसक्शन पूरा हो जाता है (क्रमशः प्रतिबद्ध या निरस्त) तो या तो इसके सभी या किसी भी ऑपरेशन का प्रभाव नहीं रहता है (सभी या कुछ भी नहीं)। दूसरे शब्दों में, बाहरी दुनिया के लिए एक प्रतिबद्ध ट्रांसक्शन (डेटाबेस पर इसके प्रभाव से) अविभाज्य (एटॉमिक) प्रतीत होता है, और एक निरस्त ट्रांसक्शन डेटाबेस को बिल्कुल भी प्रभावित नहीं करता है। या तो सभी ऑपरेशन पूरे हो गए हैं या उनमें से कोई भी नहीं है।
  • 'कंसिस्टेंसी (डेटाबेस सिस्टम)' - प्रत्येक ट्रांसक्शन को डेटाबेस को एक सुसंगत (सही) स्थिति में छोड़ना चाहिए, अथार्त , डेटाबेस के पूर्व निर्धारित अखंडता नियमों (डेटाबेस की वस्तुओं पर और उनके बीच की बाधाएं) को बनाए रखना चाहिए। ट्रांसक्शन को डेटाबेस को एक सुसंगत स्थिति से दूसरी सुसंगत स्थिति में बदलना होगा (चूँकि , यह ट्रांसक्शन के प्रोग्रामर की उत्तरदाई है कि वह यह सुनिश्चित करे कि ट्रांसक्शन स्वयं सही है, अथार्त , वह जो करना चाहता है उसे सही रूप से निष्पादित करता है (एप्लिकेशन के दृष्टिकोण से) देखें) जबकि पूर्वनिर्धारित अखंडता नियम डीबीएमएस द्वारा प्रयुक्त किए जाते हैं)। इस प्रकार चूंकि डेटाबेस को समान्यत: केवल ट्रांसक्शन द्वारा ही बदला जा सकता है, इसलिए डेटाबेस की सभी स्थितियाँ सुसंगत होती हैं।
  • 'आइसोलेशन (डेटाबेस सिस्टम)' - ट्रांसक्शन एक दूसरे के साथ हस्तक्षेप नहीं कर सकते (उनके निष्पादन के अंतिम परिणाम के रूप में) इसके अतिरिक्त , सामान्यतः (समवर्ती नियंत्रण विधि के आधार पर) एक अपूर्ण ट्रांसक्शन के प्रभाव दूसरे ट्रांसक्शन पर भी दिखाई नहीं देते हैं। आइसोलेशन प्रदान करना समवर्ती नियंत्रण का मुख्य लक्ष्य है।
  • 'स्थायित्व (डेटाबेस सिस्टम)' - सफल (प्रतिबद्ध) ट्रांसक्शन के प्रभाव क्रैश (कंप्यूटिंग) के माध्यम से बने रहने चाहिए (सामान्यतः ट्रांसक्शन के प्रभावों और इसकी प्रतिबद्ध घटना को नॉन-वोलेटाइल मेमोरी में रिकॉर्ड करते है )।

एटॉमिक ट्रांसक्शन की अवधारणा को वर्षों के समय व्यावसायिक ट्रांसक्शन मैनजमेंट तक विस्तारित किया गया है जो वास्तव में वर्कफ़्लो के प्रकारों को प्रयुक्त करता है और एटॉमिक नहीं हैं। चूँकि , ऐसे उन्नत ट्रांसक्शन भी समान्यत: घटकों के रूप में एटॉमिक ट्रांसक्शन का उपयोग करते हैं।

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

यदि ट्रांसक्शन क्रमिक रूप से निष्पादित किया जाता है, अर्थात, समय में ओवरलैप किए बिना क्रमिक रूप से, तो कोई ट्रांसक्शन समवर्ती उपस्थित नहीं होता है। चूँकि यदि इंटरलीविंग ऑपरेशंस के साथ कांकररेंट ट्रांसक्शन को अनियंत्रित विधि से अनुमति दी जाती है, तो कुछ अप्रत्याशित, अवांछनीय परिणाम हो सकते हैं, जैसे:

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

अधिकांश उच्च-प्रदर्शन ट्रांसक्शन सिस्टम को अपनी प्रदर्शन आवश्यकताओं को पूरा करने के लिए ट्रांसक्शन को समवर्ती रूप से चलाने की आवश्यकता होती है। इस प्रकार, समवर्ती नियंत्रण के बिना ऐसी प्रणालियाँ न तो सही परिणाम प्रदान कर सकती हैं और न ही अपने डेटाबेस को निरंतर बनाए रख सकती हैं।

समवर्ती नियंत्रण तंत्र

श्रेणियाँ

समवर्ती नियंत्रण मैकेनिज्म की मुख्य श्रेणियां हैं:

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

अलग-अलग श्रेणियां अलग-अलग प्रदर्शन प्रदान करती हैं, अथार्त , ट्रांसक्शन के प्रकार के मिश्रण, समानता के कंप्यूटिंग स्तर और अन्य कारकों के आधार पर अलग-अलग औसत ट्रांसक्शन पूर्णता दर (थ्रूपुट)। यदि ट्रेड-ऑफ के बारे में चयन और ज्ञान उपलब्ध है, तो उच्चतम प्रदर्शन प्रदान करने के लिए श्रेणी और विधि का चयन किया जाना चाहिए।

दो ट्रांसक्शन (जहां प्रत्येक एक दूसरे को अवरुद्ध करता है) या अधिक के बीच आपसी अवरोधन के परिणामस्वरूप डेडलॉक उत्पन्न होता है, जहां सम्मिलित ट्रांसक्शन रुक जाते हैं और पूर्ण नहीं हो पाते हैं। अधिकांश गैर-आशावादी मैकेनिज्म (अवरुद्ध करने के साथ) गतिरोध से ग्रस्त होते हैं जिन्हें एक रुके हुए ट्रांसक्शन को जानबूझकर निरस्त करने (जो उस गतिरोध में अन्य ट्रांसक्शन को मुक्त करता है) और इसके तत्काल पुनः आरंभ और पुन: निष्पादन द्वारा हल किया जाता है। गतिरोध की संभावना समान्यत: कम होती है।

अवरोधन, गतिरोध और निरस्तीकरण के परिणामस्वरूप प्रदर्शन में कमी आती है, और इसलिए श्रेणियों के बीच व्यापार-संवर्त हो जाता है।

विधि

समवर्ती नियंत्रण के लिए कई विधियाँ उपस्थित हैं। उनमें से अधिकांश को उपरोक्त किसी भी मुख्य श्रेणी में प्रयुक्त किया जा सकता है। प्रमुख विधियाँ,[1] जिनमें से प्रत्येक के कई प्रकार हैं, और कुछ स्थितियों में ओवरलैप हो सकते हैं या संयुक्त हो सकते हैं, ये हैं:

  1. लॉकिंग (जैसे, दो-फेज लॉकिंग - 2PL) - डेटा को आवंटित लॉक (कंप्यूटर विज्ञान) द्वारा डेटा तक पहुंच को नियंत्रित करना और किसी अन्य ट्रांसक्शन द्वारा लॉक किए गए डेटा आइटम (डेटाबेस ऑब्जेक्ट) तक ट्रांसक्शन की पहुंच को लॉक प्रसारित होने तक ब्लॉक किया जा सकता है (लॉक प्रकार और एक्सेस ऑपरेशन प्रकार के आधार पर)।
  2. क्रमबद्धता क्रमबद्धता या संघर्ष क्रमबद्धता का परीक्षण (जिसे क्रमबद्धता, या संघर्ष, या प्राथमिकता ग्राफ जांच भी कहा जाता है) - शेड्यूल के निर्देशित ग्राफ में चक्र (ग्राफ सिद्धांत) की जांच करना और उन्हें निरस्त कर दिया जाता है
  3. टाइमस्टैंप-आधारित समवर्ती नियंत्रण (टीओ) - ट्रांसक्शन के लिए टाइमस्टैंप निर्दिष्ट करना, और टाइमस्टैंप क्रम द्वारा डेटा तक पहुंच को नियंत्रित करना या जांचना।
  4. कमिटमेंट ऑर्डरिंग (या कमिट ऑर्डरिंग; सीओ) - प्रतिबद्ध घटनाओं के ट्रांसक्शन के कालानुक्रमिक क्रम को नियंत्रित करना या जांचना जिससे उनकी संबंधित क्रमबद्धता के साथ संगत हो या संघर्ष क्रमबद्धता का परीक्षण किया जा सकता है ।

अन्य प्रमुख समवर्ती नियंत्रण प्रकार जिनका उपयोग उपरोक्त विधियों के संयोजन में किया जाता है उनमें सम्मिलित हैं:

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

1970 के दशक के प्रारंम्भिक दिनों से ही डेटाबेस सिस्टम में सबसे समान्य मैकेनिज्म प्रकार दो-फेज लॉकिंग या अशक्मत सख्त दो-फेज लॉकिंग (SS2PL; जिसे कठोर शेड्यूलिंग या कठोर 2PL भी कहा जाता है) रहा है। ) जो दो-फेज लॉकिंग (2पीएल) और प्रतिबद्धता आदेश (सीओ) दोनों का एक विशेष स्थिति (संस्करण) है। यह निराशावादी है. इसके लंबे नाम के अतिरिक्त (ऐतिहासिक कारणों से) SS2PL मैकेनिज्म का विचार सरल है: ट्रांसक्शन समाप्त होने के बाद ही ट्रांसक्शन द्वारा प्रयुक्त किए गए सभी ताले प्रसारित करते है। SS2PL (या कठोरता) उन सभी अनुसूचियों के सेट का नाम भी है जो इस मैकेनिज्म द्वारा उत्पन्न किए जा सकते हैं, अथार्त , इन SS2PL (या कठोरता) अनुसूचियों में SS2PL (या कठोरता) प्रॉपर्टी है।

समवर्ती नियंत्रण मैकेनिज्म के प्रमुख लक्ष्य

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

शुद्धता

क्रमबद्धता

शुद्धता के लिए, अधिकांश समवर्ती नियंत्रण तंत्रों का एक सामान्य प्रमुख लक्ष्य क्रमबद्धता प्रॉपर्टी के साथ शेड्यूल (कंप्यूटर विज्ञान) उत्पन्न करना है। क्रमबद्धता के बिना अवांछनीय घटनाएं घटित हो सकती हैं, उदाहरण के लिए, खातों से पैसा विलुप्त हो सकता है, या कहीं से भी उत्पन्न हो सकता है। किसी शेड्यूल की 'क्रमबद्धता' का अर्थ समान ट्रांसक्शन के साथ कुछ सीरियल शेड्यूल के समतुल्यता (परिणामी डेटाबेस मानों में) है (अथार्त , जिसमें ट्रांसक्शन समय में ओवरलैप के बिना अनुक्रमिक होते हैं, और इस प्रकार एक दूसरे से पूरी तरह से अलग होते हैं: किसी के द्वारा कोई समवर्ती पहुंच नहीं) एक ही डेटा पर दो ट्रांसक्शन संभव है)। क्रमबद्धता को डेटाबेस ट्रांसक्शन के बीच आइसोलेशन (डेटाबेस सिस्टम) का उच्चतम स्तर और समवर्ती ट्रांसक्शन के लिए प्रमुख शुद्धता मानदंड माना जाता है। समझौता किए गए कुछ स्थितियों में, क्रमबद्धता या क्रमबद्धता की शिथिलता को बेहतर प्रदर्शन के लिए अनुमति दी जाती है (उदाहरण के लिए, लोकप्रिय स्नैपशॉट आइसोलेशन तंत्र) या अत्यधिक वितरित सिस्टम में उपलब्धता आवश्यकताओं को पूरा करने के लिए (अंतिम स्थिरता देखें), किंतु केवल तभी जब एप्लिकेशन की शुद्धता का उल्लंघन नहीं किया जाता है छूट (उदाहरण के लिए, पैसे के ट्रांसक्शन के लिए कोई छूट की अनुमति नहीं है, क्योंकि छूट से पैसा विलुप्त हो सकता है, या कहीं से भी प्रकट हो सकता है)।

लगभग सभी कार्यान्वित समवर्ती नियंत्रण मैकेनिज्म क्रमबद्धता या दृश्य और संघर्ष क्रमबद्धता प्रदान करके क्रमबद्धता प्राप्त करते हैं, क्रमबद्धता का एक व्यापक विशेष स्थिति (अथार्त , यह अधिकांश क्रमबद्ध शेड्यूल को कवर करता है, सक्षम बनाता है, और महत्वपूर्ण अतिरिक्त देरी पैदा करने वाली बाधाओं को प्रयुक्त नहीं करता है) जिसे कुशलतापूर्वक कार्यान्वित किया जा सकता है .

पुनर्प्राप्ति
क्रमबद्धता या शुद्धता - क्रमबद्धता में पुनर्प्राप्ति देखें

'टिप्पणी:' जबकि सिस्टम के सामान्य क्षेत्र में रिकवरीबिलिटी शब्द किसी सिस्टम की विफलता या गलत/निषिद्ध स्थिति से उबरने की क्षमता को संदर्भित कर सकता है, डेटाबेस सिस्टम के समवर्ती नियंत्रण के भीतर इस शब्द को एक विशिष्ट अर्थ प्राप्त हुआ है।

समवर्ती नियंत्रण समान्यत: निरस्त ट्रांसक्शन (जो हमेशा कई कारणों से हो सकता है) के स्थितियों में शुद्धता बनाए रखने के लिए शेड्यूल की क्रमबद्धता या शुद्धता - पुनर्प्राप्ति योग्यता सुनिश्चित करता है। 'पुनर्प्राप्ति' (निरस्त होने से) का अर्थ है कि शेड्यूल में किसी भी प्रतिबद्ध ट्रांसक्शन ने निरस्त ट्रांसक्शन द्वारा लिखे गए डेटा को नहीं पढ़ा है। ऐसा डेटा डेटाबेस से विलुप्त हो जाता है (निरस्त होने पर) और गलत डेटाबेस स्थिति का हिस्सा होता है। ऐसे डेटा को पढ़ना एसीआइडी के संगति नियम का उल्लंघन करता है। क्रमबद्धता के विपरीत, किसी भी मामले में पुनर्प्राप्ति योग्यता से समझौता नहीं किया जा सकता है, क्योंकि किसी भी छूट के परिणामस्वरूप गर्भपात पर त्वरित डेटाबेस अखंडता का उल्लंघन होता है। ऊपर सूचीबद्ध प्रमुख विधियाँ क्रमबद्धता मैकेनिज्म प्रदान करती हैं। उनमें से कोई भी अपने सामान्य रूप में स्वचालित रूप से पुनर्प्राप्ति प्रदान नहीं करता है, और पुनर्प्राप्ति का समर्थन करने के लिए विशेष विचार और मैकेनिज्म संवर्द्धन की आवश्यकता होती है। पुनर्प्राप्ति योग्यता का सामान्यतः उपयोग किया जाने वाला विशेष स्थिति शेड्यूल (कंप्यूटर विज्ञान) या स्ट्रिक्ट है, जो विफलता से कुशल डेटाबेस पुनर्प्राप्ति की अनुमति देता है (किंतु आशावादी कार्यान्वयन को सम्मिलित नहीं करता है; उदाहरण के लिए, प्रतिबद्धता आदेश या सख्त सीओ (एससीओ)|स्ट्रिक्ट सीओ (एससीओ) का आशावादी कार्यान्वयन नहीं हो सकता है , किंतु प्रतिबद्धता आदेश का इतिहास या अर्ध-आशावादी डेटाबेस अनुसूचक|अर्ध-आशावादी हैं)।

'टिप्पणी:' ध्यान दें कि पुनर्प्राप्ति योग्यता प्रॉपर्टी की आवश्यकता है, भले ही कोई डेटाबेस विफलता न हो और विफलता से किसी डेटाबेस पुनर्प्राप्ति की आवश्यकता न हो। ट्रांसक्शन निरस्त होने को स्वचालित रूप से सही रूप से संभालने के लिए इसकी आवश्यकता है, जो डेटाबेस विफलता और उससे पुनर्प्राप्ति से असंबंधित हो सकता है।

वितरण

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

वितरित क्रमबद्धता और प्रतिबद्धता क्रम
Serializability या Distributed क्रमबद्धता को Serializability में देखें

चूंकि डेटाबेस सिस्टम वितरित डेटाबेस बन गए हैं, या वितरित वातावरण में सहयोग करना शुरू कर दिया है (उदाहरण के लिए, 1990 के दशक की प्रारंभ में फ़ेडरेटेड डेटाबेस, और आजकल ग्रिड कंप्यूटिंग, क्लाउड कंप्यूटिंग और स्मार्टफ़ोन के साथ नेटवर्क), कुछ ट्रांसक्शन वितरित हो गए हैं। एक वितरित ट्रांसक्शन का मतलब है कि ट्रांसक्शन प्रक्रिया (कंप्यूटिंग) तक फैला हुआ है, और कंप्यूटर और भौगोलिक साइटों तक फैल सकता है। यह प्रभावी वितरित समवर्ती नियंत्रण मैकेनिज्म की आवश्यकता उत्पन्न करता है। एक वितरित प्रणाली के शेड्यूल की क्रमबद्धता प्रॉपर्टी को प्राप्त करना (देखें क्रमबद्धता या वितरित क्रमबद्धता और वैश्विक क्रमबद्धता (मॉड्यूलर क्रमबद्धता)) प्रभावी रूप से विशेष चुनौतियों का सामना करता है जो समान्यत: अधिकांश नियमित क्रमबद्धता तंत्रों द्वारा पूरी नहीं की जाती हैं, जो मूल रूप से स्थानीय रूप से संचालित करने के लिए डिज़ाइन की गई हैं। यह विशेष रूप से संचार और कंप्यूटर विलंबता (इंजीनियरिंग) के बीच समवर्ती नियंत्रण जानकारी के महंगे वितरण की आवश्यकता के कारण है। वितरण के लिए एकमात्र ज्ञात सामान्य प्रभावी तकनीक कमिटमेंट ऑर्डरिंग है, जिसे 1991 में (पेटेंट होने के बाद) सार्वजनिक रूप से प्रकट किया गया था। 'कमिटमेंट ऑर्डरिंग' (कमिट ऑर्डरिंग, सीओ; या Raz92) का अर्थ है कि प्रतिबद्ध घटनाओं के ट्रांसक्शन के कालानुक्रमिक क्रम को उनके संबंधित क्रमबद्धता या परीक्षण संघर्ष क्रमबद्धता के साथ संगत रखा जाता है। सीओ को समवर्ती नियंत्रण जानकारी के वितरण की आवश्यकता नहीं है और वितरित और वैश्विक क्रमबद्धता दोनों के लिए एक सामान्य प्रभावी समाधान (विश्वसनीयता इंजीनियरिंग, उच्च-प्रदर्शन और अनुमापकता ) प्रदान करता है, साथ ही डेटाबेस सिस्टम (या अन्य ट्रांसक्शन वस्तुओं) के साथ एक विषम वातावरण में भी। (कोई भी) समवर्ती नियंत्रण तंत्र।[1]सीओ इस बात के प्रति उदासीन है कि किस मैकेनिज्म का उपयोग किया जाता है, क्योंकि यह किसी भी ट्रांसक्शन संचालन शेड्यूलिंग (जिसे अधिकांश मैकेनिज्म नियंत्रित करते हैं) में हस्तक्षेप नहीं करता है, और केवल प्रतिबद्ध घटनाओं के क्रम को निर्धारित करता है। इस प्रकार, CO वितरित और वैश्विक क्रमबद्धता प्राप्त करने के लिए अन्य सभी तंत्रों के कुशल वितरण और विभिन्न (किसी भी) स्थानीय मैकेनिज्म के मिश्रण के वितरण को भी सक्षम बनाता है। इस तरह के समाधान के अस्तित्व को 1991 तक असंभाव्य माना गया है, और कई विशेषज्ञों द्वारा बाद में भी, प्रतिबद्धता आदेश या सारांश की गलतफहमी के कारण (वैश्विक क्रमबद्धता या वैश्विक क्रमबद्धता में उद्धरण देखें)। सीओ का एक महत्वपूर्ण पक्ष-लाभ वैश्विक चक्रों द्वारा मतदान-गतिरोधों का प्रतिबद्धता आदेश या सटीक लक्षण वर्णन है। सीओ के विपरीत, वस्तुतः सभी अन्य तकनीकें (जब सीओ के साथ संयुक्त नहीं होती हैं) डेडलॉक या वितरित गतिरोध (जिसे वैश्विक गतिरोध भी कहा जाता है) का खतरा होता है, जिन्हें विशेष रूप से संभालने की आवश्यकता होती है। सीओ परिणामी शेड्यूल प्रॉपर्टी का नाम भी है: एक शेड्यूल में सीओ प्रॉपर्टी होती है यदि उसके ट्रांसक्शन की प्रतिबद्ध घटनाओं का कालानुक्रमिक क्रम संबंधित ट्रांसक्शन के क्रमबद्धता या परीक्षण संघर्ष क्रमबद्धता|प्राथमिकता (आंशिक) क्रम के साथ संगत है।

ऊपर उल्लिखित दो-फेज लॉकिंग सीओ का एक प्रकार (विशेष मामला) है और इस प्रकार वितरित और वैश्विक क्रमबद्धता प्राप्त करने के लिए भी प्रभावी है। यह स्वचालित रूप से वितरित गतिरोध समाधान (सीओ के प्रकाशन के बाद भी शोध साहित्य में अनदेखा तथ्य) प्रदान करता है, साथ ही कठोरता और इस प्रकार पुनर्प्राप्ति भी प्रदान करता है। ज्ञात कुशल लॉकिंग आधारित कार्यान्वयन के साथ इन वांछित गुणों का होना SS2PL की लोकप्रियता को स्पष्ट करता है। SS2PL का उपयोग 1980 के बाद से वितरित और वैश्विक क्रमबद्धता को कुशलतापूर्वक प्राप्त करने के लिए किया गया है, और यह इसके लिए वास्तविक मानक बन गया है। चूँकि , SS2PL अवरुद्ध और बाधित (निराशावादी) है, और पारंपरिक डेटाबेस सिस्टम (उदाहरण के लिए, क्लाउड कंप्यूटिंग में) से भिन्न सिस्टम के वितरण और उपयोग के प्रसार के साथ, CO के कम अवरोधक प्रकार (उदाहरण के लिए, प्रतिबद्धता आदेश या वितरित आशावादी CO) बेहतर प्रदर्शन के लिए DOCO)) की आवश्यकता हो सकती है।

'टिप्पणियाँ:'

  1. वितरित संघर्ष क्रमबद्धता प्रॉपर्टी को उसके सामान्य रूप में कुशलतापूर्वक प्राप्त करना मुश्किल है, किंतु इसे इसके विशेष मामले वितरित सीओ के माध्यम से कुशलतापूर्वक प्राप्त किया जाता है: प्रत्येक स्थानीय घटक (उदाहरण के लिए, एक स्थानीय डीबीएमएस) को सीओ के कुछ रूप प्रदान करने और प्रयुक्त करने दोनों की आवश्यकता होती है दो-फेज प्रतिबद्ध प्रोटोकॉल (2PC: वितरित ट्रांसक्शन करने के लिए उपयोग किया जाता है) के लिए विशेष वोट ऑर्डरिंग रणनीति। सामान्य वितरित CO से भिन्न, वितरित SS2PL प्रतिबद्धता आदेश या मजबूत सख्त दो फेज लॉकिंग (SS2PL) (प्रत्येक घटक में CO उपस्थित है, निहित है, और वोट ऑर्डरिंग रणनीति अब स्वचालित रूप से पूरी हो जाती है)। इस तथ्य को 1980 के दशक से जाना और उपयोग किया गया है (अथार्त , CO के बारे में जाने बिना, SS2PL विश्व स्तर पर उपस्थित है), कुशल वितरित SS2PL के लिए, जिसका अर्थ है वितरित क्रमबद्धता और कठोरता (उदाहरण के लिए, या Raz92, पृष्ठ 293 देखें; यह या में भी निहित है) बर्न87|बर्नस्टीन एट अल. 1987, पृष्ठ 78)। वितरित प्रतिबद्धता आदेश या स्ट्रिक्ट सीओ (एससीओ)|स्ट्रिक्ट सीओ (एससीओ), या एसएस2पीएल आधारित और एससीओ आधारित स्थानीय घटकों के मिश्रण से कम बाधित वितरित क्रमबद्धता और सख्ती को कुशलतापूर्वक प्राप्त किया जा सकता है।
  2. संदर्भों और प्रतिबद्धता क्रम के बारे में: ( या बर्न87|बर्नस्टीन एट अल. 1987) 1990 में सीओ की खोज से पहले प्रकाशित किया गया था। सीओ अनुसूची प्रॉपर्टी को द हिस्ट्री ऑफ कमिटमेंट ऑर्डरिंग या डायनामिक एटोमिसिटी ( या लिंच1993|लिंच एट अल) कहा जाता है। .1993, पृष्ठ 201)। CO का वर्णन ( या Weikum2001, पृष्ठ 102, 700) में किया गया है, किंतु विवरण आंशिक है और प्रतिबद्धता आदेश या सारांश|CO का सार विलुप्त है। ( या Raz92) CO एल्गोरिदम के बारे में पहला रेफरीड और प्रकाशन के लिए स्वीकृत लेख था (चूँकि , समतुल्य गतिशील एटॉमिक प्रॉपर्टी के बारे में प्रकाशन 1988 से पता लगाया जा सकता है)। अन्य प्रतिबद्धता आदेश या संदर्भों का पालन किया गया। (बर्नस्टेईएन और नवागंतुक 2009)[1]चार प्रमुख संगामिति नियंत्रण विधियों में से एक के रूप में CO पर ध्यान दें, और अन्य विधियों के बीच अंतर-संचालनीयता प्रदान करने की CO की क्षमता पर ध्यान दें।
वितरित पुनर्प्राप्ति

क्रमबद्धता के विपरीत, वितरित पुनर्प्राप्ति और वितरित सख्ती को सीधे विधि से कुशलतापूर्वक प्राप्त किया जा सकता है, उसी तरह जिस तरह से वितरित सीओ प्राप्त किया जाता है: प्रत्येक डेटाबेस प्रणाली में उन्हें स्थानीय रूप से प्रयुक्त किया जाना चाहिए, और दो-फेज प्रतिबद्ध प्रोटोकॉल के लिए वोट ऑर्डरिंग रणनीति को नियोजित करना होगा। (2पीसी; या रेज़92, पृष्ठ 307)।

जैसा कि ऊपर उल्लेख किया गया है, वितरित कठोरता (पुनर्प्राप्ति) और वितरित प्रतिबद्धता आदेश (क्रमबद्धता) सहित वितरित दो-फेज लॉकिंग, स्वचालित रूप से आवश्यक वोट ऑर्डरिंग रणनीति को नियोजित करती है, और प्रत्येक (स्थानीय) डेटाबेस सिस्टम में स्थानीय रूप से नियोजित होने पर (वैश्विक स्तर पर) प्राप्त की जाती है। (जैसा कि कई वर्षों से ज्ञात और उपयोग किया गया है; वास्तव में स्थानीयता को 2PC प्रतिभागी ( या Raz92) की सीमा द्वारा परिभाषित किया गया है)।

वसूली

सभी सिस्टम विफलताओं से ग्रस्त हैं, और विफलता से डेटा पुनर्प्राप्ति को संभालना जरूरी है। उत्पन्न शेड्यूल के गुण, जो समवर्ती नियंत्रण मैकेनिज्म द्वारा निर्धारित होते हैं, पुनर्प्राप्ति की प्रभावशीलता और दक्षता को प्रभावित कर सकते हैं। उदाहरण के लिए, स्ट्रिक्टनेस प्रॉपर्टी (उपरोक्त कॉन्करेंसी कंट्रोल या रिकवरेबिलिटी अनुभाग में उल्लिखित) एक कुशल पुनर्प्राप्ति के लिए अक्सर वांछनीय होती है।

प्रतिकृति

उच्च उपलब्धता के लिए डेटाबेस ऑब्जेक्ट अक्सर प्रतिकृति (कंप्यूटर विज्ञान) होते हैं। एक ही डेटाबेस ऑब्जेक्ट की प्रतिकृतियों के अपडेट को सिंक्रनाइज़ रखने की आवश्यकता है। यह समवर्ती नियंत्रण के विधि को प्रभावित कर सकता है (उदाहरण के लिए, ग्रे एट अल. 1996)[2]).

यह भी देखें

संदर्भ

  • Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman (1987): Concurrency Control and Recovery in Database Systems (free PDF download), Addison Wesley Publishing Company, 1987, ISBN 0-201-10715-5
  • Gerhard Weikum, Gottfried Vossen (2001): Transactional Information Systems, Elsevier, ISBN 1-55860-508-8
  • Nancy Lynch, Michael Merritt, William Weihl, Alan Fekete (1993): Atomic Transactions in Concurrent and Distributed Systems , Morgan Kaufmann (Elsevier), August 1993, ISBN 978-1-55860-104-8, ISBN 1-55860-104-X
  • Yoav Raz (1992): "The Principle of Commitment Ordering, or Guaranteeing Serializability in a Heterogeneous Environment of Multiple Autonomous Resource Managers Using Atomic Commitment." (PDF), Proceedings of the Eighteenth International Conference on Very Large Data Bases (VLDB), pp. 292-312, Vancouver, Canada, August 1992. (also DEC-TR 841, Digital Equipment Corporation, November 1990)



उद्धरण


ऑपरेटिंग सिस्टम में समवर्ती नियंत्रण

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

यह भी देखें

संदर्भ