क्रमणीयता: Difference between revisions
From Vigyanwiki
No edit summary |
mNo edit summary |
||
| Line 9: | Line 9: | ||
=== क्रमबद्धता === | === क्रमबद्धता === | ||
क्रमबद्धता का उपयोग डेटा आइटम में डेटा को एक सुसंगत स्थिति में रखने के लिए किया जाता है। क्रमबद्धता एक लेन-देन (इतिहास) | क्रमबद्धता का उपयोग डेटा आइटम में डेटा को एक सुसंगत स्थिति में रखने के लिए किया जाता है। क्रमबद्धता एक लेन-देन अनुसूची (इतिहास) की गुणवत्ता है। यह डेटाबेस लेनदेन की ''[[ अलगाव (डेटाबेस सिस्टम) | अलगाव (डेटाबेस प्रणाली)]]''गुणवत्ता से संबंधित है। | ||
: एक | : एक सूची की क्रमबद्धता का अर्थ समान लेनदेन के साथ एक 'क्रमिक सूची' (यानी, समय में बिना किसी लेनदेन के ओवरलैप के साथ अनुक्रमिक) के लिए समानता (परिणाम में, डेटाबेस स्थिति, डेटा मान) है। यह समवर्ती लेन-देन की अनुसूची की शुद्धता के लिए प्रमुख मानदंड है, और इस प्रकार सभी सामान्य प्रयोजन डेटाबेस प्रणाली में समर्थित है।{{citation needed|date=July 2018}} | ||
:क्रमबद्धता के पीछे तर्क निम्नलिखित है: | :क्रमबद्धता के पीछे तर्क निम्नलिखित है: | ||
: यदि प्रत्येक लेन-देन अपने आप में सही है, अर्थात, कुछ | : यदि प्रत्येक लेन-देन अपने आप में सही है, अर्थात, कुछ पूर्णता अनुबंध को पूरा करता है, तो एक सूची जिसमें इन लेन-देन का कोई भी 'क्रमिक' निष्पादन सम्मिलित है सही है (इसके लेन-देन अभी भी उनकी अनुबंध को पूरा करते हैं) । क्रमिक का अर्थ है कि लेन-देन समय पर ओवरलैप नहीं होता है और नहीं हो सकता है, एक दूसरे के साथ हस्तक्षेप, यानी एक दूसरे के बीच पूर्ण अलगाव मौजूद है। लेन-देन का कोई भी आदेश वैध है, यदि उनके बीच कोई निर्भरता मौजूद नहीं है, जिसे मान लिया गया है (नीचे टिप्पणी देखें)। नतीजतन, एक सूची जिसमें इन लेनदेन के किसी भी क्रमिक निष्पादन के बराबर (इसके परिणाम में) कोई निष्पादन (जरूरी नहीं कि सीरियल) सम्मिलित है, सही है। | ||
सूचीयां जो क्रमबद्ध नहीं हैं, गलत परिणाम उत्पन्न करने की संभावना है। जाने-माने उदाहरण लेन-देन के साथ हैं जो पैसे के साथ डेबिट और क्रेडिट खाते हैं यदि संबंधित सूची क्रमबद्ध नहीं हैं, तो धन की कुल राशि को संरक्षित नहीं किया जा सकता है पैसा गायब हो सकता है, या कहीं से उत्पन्न हो सकता है।यह और संभावित रूप से आवश्यक अन्य अपरिवर्तनीय संरक्षणों का उल्लंघन एक लेन-देन लेखन, "स्टेपिंग ऑन" और डेटाबेस में स्थायी होने से पहले किसी अन्य लेनदेन द्वारा लिखे गए को मिटाने के कारण होता है। यदि क्रमबद्धता बनी रहती है तो ऐसा नहीं होता है। | |||
यदि किसी | यदि किसी आवेदन द्वारा कुछ लेन-देन के बीच किसी विशिष्ट आदेश का अनुरोध किया जाता है, तो इसे अंतर्निहित क्रमबद्धता क्रियाविधि से स्वतंत्र रूप से लागू किया जाता है। ये क्रियाविधि सामान्यतः किसी विशिष्ट आदेश के प्रति उदासीन होते हैं, और कुछ अप्रत्याशित [[आंशिक आदेश]] उत्पन्न करते हैं जो सामान्यतः इन लेनदेन के कई क्रमिक आदेश के साथ संगत होते हैं। यह आंशिक आदेश समवर्ती लेन-देन के डेटा एक्सेस ऑपरेशंस के सूची ऑर्डर से उत्पन्न होता है, जो कई कारकों पर निर्भर करता है। | ||
डेटाबेस लेनदेन की एक प्रमुख विशेषता ''[[परमाणुता (डेटाबेस सिस्टम)|परमाणुता | डेटाबेस लेनदेन की एक प्रमुख विशेषता ''[[परमाणुता (डेटाबेस सिस्टम)|परमाणुता]]'' है, जिसका अर्थ है कि यह या तो ''प्रतिबद्ध'' है, यानी, इसके सभी संचालन 'परिणाम डेटाबेस में प्रभावी होते हैं, या ''निरस्त'' (लुढ़के हुए), इसके सभी परिचालनों के परिणामों का डेटाबेस पर कोई प्रभाव नहीं पड़ता है (लेन-देन के शब्दार्थ "सभी या कुछ नहीं")। सभी वास्तविक प्रणालियों में लेन-देन कई कारणों से निरस्त हो सकता है, और शुद्धता के लिए क्रमबद्धता अपने आप में पर्याप्त नहीं है। अनुसूचियों को पुनर्प्राप्ति योग्यता (अवरोध से) संपत्ति रखने की भी आवश्यकता है।। पुनर्प्राप्ति योग्यता का अर्थ है कि प्रतिबद्ध लेन-देन ने निरस्त किए गए लेनदेन द्वारा लिखे गए डेटा को नहीं पढ़ा है (जिसका प्रभाव परिणामी डेटाबेस स्थिति में उपस्थित नहीं है)। यद्यपि वर्तमान में बेहतर प्रदर्शन के लिए कई अनुप्रयोगों में क्रमबद्धता के उद्देश्य से समझौता किया गया है (केवल ऐसे मामलों में जब आवेदन की शुद्धता को नुकसान नहीं पहुंचाया जाता है), पुनर्प्राप्ति से समझौता करने से डेटाबेस की पूर्णता का उल्लंघन होगा, साथ ही लेनदेन के परिणाम डेटाबेस से बाहर हो जाएंगे। पुनर्प्राप्ति योग्यता गुण (एक ''पुनर्प्राप्ति योग्य'' सूची) के साथ सूची अपने आप निरस्त होने से ठीक हो जाता है, अर्थात, अवरोध इसके प्रतिबद्ध लेनदेन और परिणामी डेटाबेस की पूर्णता को नुकसान नहीं पहुंचाता है। पुनर्प्राप्ति योग्यता के बिना यह झूठा है, जहां संभावित पूर्णता उल्लंघन (जिसके परिणामस्वरूप गलत डेटाबेस डेटा) को डेटाबेस में विशेष, सामान्यतः नियमावली, सुधारात्मक कार्यों की आवश्यकता होती है। | ||
अपने सामान्य रूप में पुनर्प्राप्ति को लागू करने से ' | अपने सामान्य रूप में पुनर्प्राप्ति को लागू करने से 'व्यापक अवरोध' हो सकता है: एक लेन-देन को समाप्त करने के परिणामस्वरूप दूसरे लेनदेन को निरस्त करने की आवश्यकता हो सकती है, और फिर तीसरा, और इसी तरह बाकि सब। यह पहले से ही आंशिक रूप से निष्पादित लेनदेन की बर्बादी का परिणाम है, और इसके परिणामस्वरूप प्रदर्शन जुर्माना भी हो सकता [[कैस्केडिंग गर्भपात से बचना|'व्यापक अवरोध से बचना]] (एसीए, या कैस्केडलेसनेस) से बचना पुनर्प्राप्ति का एक विशेष मामला है जो वास्तव में ऐसी घटनाओं को रोकता है। सामान्यतःव्यवहार में ACA के एक विशेष मामले का उपयोग किया जाता है: '''कठोरता'''। कठोरता कुशल डेटाबेस पुनर्प्राप्ति को विफलता से अनुमति देती है। | ||
ध्यान दें कि यदि कोई डेटाबेस विफल नहीं होता है तो भी ''पुनर्प्राप्ति'' गुण की आवश्यकता | ध्यान दें कि यदि कोई डेटाबेस विफल नहीं होता है तो भी ''पुनर्प्राप्ति'' गुण की आवश्यकता होता है और विफलता से कोई डेटाबेस ''पुनर्प्राप्ति '' की आवश्यकता नहीं होती है। इसके के स्थान पर, स्वचालित रूप से अवरोध को सही ढंग से संभालने की आवश्यकता है, जो डेटाबेस विफलता और विफलता से पुनर्प्राप्ति से संबंधित नहीं हो सकता है। | ||
=== आराम से क्रमबद्धता === | === आराम से क्रमबद्धता === | ||
कई अनुप्रयोगों में, वित्त के विपरीत, पूर्ण शुद्धता की आवश्यकता नहीं होती है। उदाहरण के लिए, विनिर्देश के अनुसार उत्पादों की सूची प्राप्त करते समय, ज्यादातर मामलों में इससे कोई फर्क नहीं पड़ता कि कोई उत्पाद, जिसका डेटा थोड़े समय पहले अद्यतन किया गया था, सूची में प्रकट नहीं होता है, भले ही वह विनिर्देश को पूरा करता हो। कुछ समय बाद पुन: प्रयास करने पर यह सामान्यतः ऐसी सूची में दिखाई देगा। वाणिज्यिक डेटाबेस अलगाव ([[कंप्यूटर]] विज्ञान) | कई अनुप्रयोगों में, वित्त के विपरीत, पूर्ण शुद्धता की आवश्यकता नहीं होती है। उदाहरण के लिए, विनिर्देश के अनुसार उत्पादों की सूची प्राप्त करते समय, ज्यादातर मामलों में इससे कोई फर्क नहीं पड़ता कि कोई उत्पाद, जिसका डेटा थोड़े समय पहले अद्यतन किया गया था, सूची में प्रकट नहीं होता है, भले ही वह विनिर्देश को पूरा करता हो। कुछ समय बाद पुन: प्रयास करने पर यह सामान्यतः ऐसी सूची में दिखाई देगा। वाणिज्यिक डेटाबेस अलगाव ([[कंप्यूटर]] विज्ञान) अलगाव स्तरों की एक पूरी श्रृंखला के साथ समवर्ती नियंत्रण प्रदान करते हैं जो उच्च प्रदर्शन प्राप्त करने के लिए वास्तव में (नियंत्रित) क्रमबद्धता उल्लंघन हैं। उच्च प्रदर्शन का मतलब बेहतर लेनदेन निष्पादन दर और कम औसत लेनदेन प्रतिक्रिया समय (लेन-देन की अवधि) है। [[ स्नैपशॉट अलगाव ]] एक लोकप्रिय, व्यापक रूप से उपयोग की जाने वाली कुशल रिलैक्स क्रमबद्धता पद्धति का एक उदाहरण है जिसमें पूर्ण क्रमबद्धता की कई विशेषताएं हैं, लेकिन फिर भी कुछ से कम है, और कई स्थितियों में अनुपयुक्त है। | ||
वितरित क्रमबद्धता रिलैक्सेशन (नीचे देखें) के लिए आजकल एक और सामान्य कारण [[इंटरनेट]] उत्पादों और इंटरनेट सेवा प्रदाता की [[उपलब्धता]] की आवश्यकता है। इस आवश्यकता का सामान्यतः बड़े पैमाने पर डेटा [[प्रतिकृति (कंप्यूटर विज्ञान)]] द्वारा उत्तर दिया जाता है। एक ही डेटाबेस ऑब्जेक्ट की प्रतिकृतियों के अद्यतनों को सिंक्रनाइज़ करने का सीधा समाधान इन सभी अद्यतनों को एकल परमाणु [[वितरित लेनदेन]] में सम्मिलित करना है। हालाँकि, कई प्रतिकृतियों के साथ ऐसा लेन-देन बहुत बड़ा है, और कई कंप्यूटरों और [[ संगणक संजाल ]] के लिए पर्याप्त हो सकता है कि उनमें से कुछ के अनुपलब्ध होने की संभावना है। इस प्रकार इस तरह के लेन-देन के समाप्त होने की संभावना है और इसका उद्देश्य चूक जाएगा।<ref name=Gray1996>{{cite conference | |||
|author = Gray, J. | |author = Gray, J. | ||
|author2 = Helland, P. | |author2 = Helland, P. | ||
| Line 42: | Line 42: | ||
|author-link = Jim Gray (computer scientist) | |author-link = Jim Gray (computer scientist) | ||
}}{{dead link|date=May 2018 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> | }}{{dead link|date=May 2018 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> | ||
नतीजतन, [[आशावादी प्रतिकृति]] (आलसी प्रतिकृति) का सामान्यतः उपयोग किया जाता है (उदाहरण के लिए, [[Google]], Amazon.com, [[Yahoo]], और इसी तरह के कई उत्पादों और सेवाओं में), जबकि क्रमबद्धता को आराम दिया जाता है और [[अंतिम स्थिरता]] के लिए समझौता किया जाता है। फिर से, इस मामले में, केवल उन अनुप्रयोगों के लिए छूट दी जाती है जिन्हें इस तकनीक से नुकसान होने की उम्मीद नहीं है। | |||
सूचीयों के वर्गों को आराम से क्रमिकता गुणों द्वारा परिभाषित किया गया है या तो क्रमबद्धता वर्ग सम्मिलित है, या इसके साथ अतुलनीय हैं। | |||
== देखें और विरोध क्रमबद्धता == | == देखें और विरोध क्रमबद्धता == | ||
क्रमिकता को लागू करने वाले क्रियाविधि को [[रीयल-टाइम कंप्यूटिंग]] में या लगभग वास्तविक समय में निष्पादित करने की आवश्यकता होती है, जबकि लेन-देन उच्च दर पर चल रहे होते हैं। इस आवश्यकता को पूरा करने के लिए, क्रमबद्धता के विशेष मामले, क्रमबद्धता के लिए पर्याप्त अनुबंध जिन्हें प्रभावी ढंग से लागू किया जा सकता है, का उपयोग किया जाता है। | क्रमिकता को लागू करने वाले क्रियाविधि को [[रीयल-टाइम कंप्यूटिंग]] में या लगभग वास्तविक समय में निष्पादित करने की आवश्यकता होती है, जबकि लेन-देन उच्च दर पर चल रहे होते हैं। इस आवश्यकता को पूरा करने के लिए, क्रमबद्धता के विशेष मामले, क्रमबद्धता के लिए पर्याप्त अनुबंध जिन्हें प्रभावी ढंग से लागू किया जा सकता है, का उपयोग किया जाता है। | ||
क्रमबद्धता के दो प्रमुख प्रकार दृश्य-अनुक्रमणीयता, और संघर्ष-अनुक्रमणीयता उपस्थित हैं । दृश्य-अनुक्रमणीयता ऊपर दी गई क्रमबद्धता की सामान्य परिभाषा से मेल खाती है। संघर्ष-क्रमबद्धता एक व्यापक विशेष मामला है, यानी, कोई भी | क्रमबद्धता के दो प्रमुख प्रकार दृश्य-अनुक्रमणीयता, और संघर्ष-अनुक्रमणीयता उपस्थित हैं । दृश्य-अनुक्रमणीयता ऊपर दी गई क्रमबद्धता की सामान्य परिभाषा से मेल खाती है। संघर्ष-क्रमबद्धता एक व्यापक विशेष मामला है, यानी, कोई भी सूची जो संघर्ष-अनुक्रमणीय है, वह भी दृश्य-अनुक्रमणीय है, लेकिन जरूरी नहीं कि इसके विपरीत हो। संघर्ष-अनुक्रमणीयता का व्यापक रूप से उपयोग किया जाता है क्योंकि दृश्य-अनुक्रमणीय सूचीयों के एक बड़े हिस्से को निर्धारित करना और कवर करना आसान होता है। सूची की व्यू-क्रमबद्धता का निर्धारण एक एनपी-पूर्ण समस्या है (समस्याओं का एक वर्ग जिसमें केवल जटिल-से-गणना, अत्यधिक समय लेने वाले ज्ञात समाधान हैं)। | ||
: एक | : एक सूची की 'व्यू-क्रमबद्धता' को समान लेन-देन के साथ एक क्रमिक सूची (कोई ओवरलैपिंग लेनदेन नहीं) के समतुल्य द्वारा परिभाषित किया गया है, जैसे कि दो सूची में संबंधित लेनदेन समान डेटा मान पढ़ते और लिखते हैं (समान डेटा मान देखें)। | ||
: एक | : एक सूची की 'कॉन्फ्लिक्ट-क्रमबद्धता' एक ही लेन-देन के साथ एक क्रमिक सूची (कोई ओवरलैपिंग लेन-देन नहीं) के समतुल्यता द्वारा परिभाषित की जाती है, जैसे कि दोनों सूची में संबंधित कालानुक्रमिक रूप से परस्पर विरोधी संचालन के जोड़े के समान सेट होते हैं (संबंधित परस्पर विरोधी के समान पूर्वता संबंध) संचालन)। | ||
डेटा पर संचालन पढ़ा या लिखा जाता है (एक लेखन: यद्यपि करें, अपडेट करें या हटाएं)। दो ऑपरेशन परस्पर विरोधी हैं यदि वे एक ही डेटाम (डेटा आइटम) पर अलग-अलग लेन-देन के हैं, और उनमें से कम से कम एक राइट है। परस्पर विरोधी संचालन की प्रत्येक जोड़ी में एक संघर्ष प्रकार होता है: यह या तो पढ़ने-लिखने, या लिखने-पढ़ने, या लिखने-लिखने का संघर्ष है। जोड़ी में दूसरे ऑपरेशन के लेन-देन को पहले ऑपरेशन के लेन-देन के विरोध में कहा जाता है। परस्पर विरोधी कार्यों की एक अधिक सामान्य परिभाषा (जटिल संचालन के लिए भी, जिसमें प्रत्येक में कई सरल पढ़ने/लिखने के संचालन सम्मिलितहो सकते हैं) के लिए आवश्यक है कि वे अ-अनुक्रमिक हों (उनके क्रम को बदलने से उनके संयुक्त परिणाम भी बदल जाते हैं)। [[अविनिमेय]]िटी चेक के लिए एक ऑपरेशन माना जाने के लिए इस तरह के प्रत्येक ऑपरेशन को स्वयं (उचित प्रणाली समर्थन का उपयोग करके) परमाणु होना चाहिए। उदाहरण के लिए, पढ़ना-पढ़ना संक्रिया क्रमविनिमेय हैं (पढ़ने-लिखने और अन्य संभावनाओं के विपरीत) और इस प्रकार पढ़ना-पढ़ना कोई विरोध नहीं है। एक और अधिक जटिल उदाहरण: एक काउंटर के संचालन में वृद्धि और कमी दोनों लेखन कार्य हैं (दोनों काउंटर को संशोधित करते हैं), लेकिन परस्पर विरोधी होने की आवश्यकता नहीं है (लेखन-लेखन संघर्ष प्रकार) क्योंकि वे कम्यूटिव हैं (इस प्रकार वेतन वृद्धि-कमी नहीं है) एक संघर्ष; उदाहरण के लिए, पहले से ही पुराने IBM सूचना प्रबंधन प्रणाली | IBM के IMS फास्ट पाथ में समर्थित किया गया है)। परस्पर विरोधी (अ-कम्यूटेटिव) संचालन के जोड़े में केवल पूर्वता (समय क्रम) एक | डेटा पर संचालन पढ़ा या लिखा जाता है (एक लेखन: यद्यपि करें, अपडेट करें या हटाएं)। दो ऑपरेशन परस्पर विरोधी हैं यदि वे एक ही डेटाम (डेटा आइटम) पर अलग-अलग लेन-देन के हैं, और उनमें से कम से कम एक राइट है। परस्पर विरोधी संचालन की प्रत्येक जोड़ी में एक संघर्ष प्रकार होता है: यह या तो पढ़ने-लिखने, या लिखने-पढ़ने, या लिखने-लिखने का संघर्ष है। जोड़ी में दूसरे ऑपरेशन के लेन-देन को पहले ऑपरेशन के लेन-देन के विरोध में कहा जाता है। परस्पर विरोधी कार्यों की एक अधिक सामान्य परिभाषा (जटिल संचालन के लिए भी, जिसमें प्रत्येक में कई सरल पढ़ने/लिखने के संचालन सम्मिलितहो सकते हैं) के लिए आवश्यक है कि वे अ-अनुक्रमिक हों (उनके क्रम को बदलने से उनके संयुक्त परिणाम भी बदल जाते हैं)। [[अविनिमेय]]िटी चेक के लिए एक ऑपरेशन माना जाने के लिए इस तरह के प्रत्येक ऑपरेशन को स्वयं (उचित प्रणाली समर्थन का उपयोग करके) परमाणु होना चाहिए। उदाहरण के लिए, पढ़ना-पढ़ना संक्रिया क्रमविनिमेय हैं (पढ़ने-लिखने और अन्य संभावनाओं के विपरीत) और इस प्रकार पढ़ना-पढ़ना कोई विरोध नहीं है। एक और अधिक जटिल उदाहरण: एक काउंटर के संचालन में वृद्धि और कमी दोनों लेखन कार्य हैं (दोनों काउंटर को संशोधित करते हैं), लेकिन परस्पर विरोधी होने की आवश्यकता नहीं है (लेखन-लेखन संघर्ष प्रकार) क्योंकि वे कम्यूटिव हैं (इस प्रकार वेतन वृद्धि-कमी नहीं है) एक संघर्ष; उदाहरण के लिए, पहले से ही पुराने IBM सूचना प्रबंधन प्रणाली | IBM के IMS फास्ट पाथ में समर्थित किया गया है)। परस्पर विरोधी (अ-कम्यूटेटिव) संचालन के जोड़े में केवल पूर्वता (समय क्रम) एक क्रमिक सूची के समतुल्यता की जांच करते समय महत्वपूर्ण है, क्योंकि अलग-अलग लेन-देन के संचालन के बीच ऑर्डर बदलकर एक ही लेन-देन वाले अलग-अलग सूची को एक से दूसरे में बदला जा सकता है ( अलग-अलग लेन-देन 'इंटरलीविंग), और चूंकि कम्यूटेटिव ऑपरेशंस (अ-परस्पर विरोधी) के बदलते ऑर्डर समग्र ऑपरेशन अनुक्रम परिणाम को नहीं बदलते हैं, यानी, एक सूची परिणाम (परिणाम को अ-विरोधी संचालन के बीच ऑर्डर परिवर्तन के माध्यम से संरक्षित किया जाता है, लेकिन सामान्यतः नहीं जब परस्पर विरोधी संचालन परिवर्तन क्रम)। इसका मतलब यह है कि यदि किसी सूची को परस्पर विरोधी संचालन के आदेशों को बदले बिना किसी भी क्रमिक सूची में बदला जा सकता है (लेकिन अ-विरोधी के बदलते आदेश, प्रत्येक लेनदेन के अंदर ऑपरेशन ऑर्डर को संरक्षित करते हुए), तो दोनों सूची का परिणाम समान होता है, और schedule परिभाषा के अनुसार संघर्ष-क्रमबद्ध है। | ||
संघर्ष लेन-देन में देरी (अ-संतृप्त संघर्ष) को अवरुद्ध करने या क्रमबद्धता उल्लंघन रोकथाम के कारण लेनदेन को रद्द करने का कारण हैं। दोनों संभावनाएं प्रदर्शन को कम करती हैं। इस प्रकार संघर्षों की संख्या को कम करना, उदाहरण के लिए, कम्यूटेटिविटी (जब संभव हो) द्वारा, प्रदर्शन को बढ़ाने का एक तरीका है। | संघर्ष लेन-देन में देरी (अ-संतृप्त संघर्ष) को अवरुद्ध करने या क्रमबद्धता उल्लंघन रोकथाम के कारण लेनदेन को रद्द करने का कारण हैं। दोनों संभावनाएं प्रदर्शन को कम करती हैं। इस प्रकार संघर्षों की संख्या को कम करना, उदाहरण के लिए, कम्यूटेटिविटी (जब संभव हो) द्वारा, प्रदर्शन को बढ़ाने का एक तरीका है। | ||
| Line 78: | Line 79: | ||
=== सामान्य क्रियाविधि — SS2PL === | === सामान्य क्रियाविधि — SS2PL === | ||
{{main|Two-phase locking}} | {{main|Two-phase locking}} | ||
मजबूत स्ट्रिक्ट टू-फेज लॉकिंग (SS2PL) 1970 के दशक के शुरुआती दिनों से डेटाबेस प्रणाली में उपयोग किया जाने वाला (यद्यपि,SS2PL नाम का SS नया है)संघर्ष क्रमबद्धता और सख्ती दोनों को लागू करने के लिए (एक विशेष मामला पुनर्प्राप्ति योग्यता जो किसी | मजबूत स्ट्रिक्ट टू-फेज लॉकिंग (SS2PL) 1970 के दशक के शुरुआती दिनों से डेटाबेस प्रणाली में उपयोग किया जाने वाला (यद्यपि,SS2PL नाम का SS नया है)संघर्ष क्रमबद्धता और सख्ती दोनों को लागू करने के लिए (एक विशेष मामला पुनर्प्राप्ति योग्यता जो किसी सूची की विफलता से प्रभावी डेटाबेस पुनर्प्राप्ति की अनुमति देती है) एक सामान्यक्रिया विधि है। इस क्रियाविधि के तहत,प्रत्येक डेटा को लेन-देन द्वारा एक्सेस करने से पहले (किसी भी पढ़ने या लिखने के संचालन में) लॉक कर दिया जाता है , आइटम को एक निश्चित प्रकार के लॉक द्वारा चिह्नित किया जाता है और ऑपरेशन के आधार पर किया जाता है (और विशिष्ट लेन-देन कार्यान्वयन; विभिन्न प्रकार के लॉक वाले विभिन्न मॉडल उपस्थितहैं; कुछ मॉडलों में, लेन-देन के जीवन के दौरान अवरोध प्रकार बदल सकते हैं)। नतीजतन, किसी अन्य लेन-देन द्वारा पहुंच को अवरुद्ध किया जा सकता है, सामान्यतः पर एक विरोध पर (ताला देरी या पूरी तरह से संघर्ष को संतृप्त होने से रोकता है और विरोधाभासी संचालन को अवरुद्ध करके पूर्ववर्ती ग्राफ में परिलक्षित होता है), लॉक प्रकार और अन्य लेनदेन के आधार पर एक्सेस ऑपरेशन प्रकार। SS2PLक्रियाविधिको नियोजित करने का अर्थ है कि लेन-देन की ओर से डेटा पर सभी अवरोध केवल लेन-देन समाप्त होने (या तो प्रतिबद्ध या निरस्त) के बाद जारी किए जाते हैं। | ||
SS2PL परिणामी | SS2PL परिणामी सूची गुण का भी नाम है, जिसे कठोरता भी कहा जाता है। SS2PL दो-चरण अवरोध (2PL) का एक विशेष मामला (उचित उपसमुच्चय) है । | ||
लेन-देन के बीच पारस्परिक रुकावट के परिणामस्वरूप गतिरोध होता है, जहाँ इन लेन-देन का निष्पादन ठप हो जाता है और कोई पूर्णता नहीं हो सकती है। इस प्रकार इन लेन-देन के निष्पादन को पूरा करने और संबंधित कंप्यूटिंग संसाधनों को जारी करने के लिए गतिरोधों को हल करने की आवश्यकता है। एक गतिरोध पूर्वता ग्राफ में एक संभावित चक्र का प्रतिबिंब है जो बिना अवरोध के घटित होता है जब विरोध संतृप्त होता है। इस तरह के संभावित चक्र से जुड़े लेन-देन को समाप्त करके और चक्र को तोड़कर गतिरोध का समाधान किया जाता है। यह | लेन-देन के बीच पारस्परिक रुकावट के परिणामस्वरूप गतिरोध होता है, जहाँ इन लेन-देन का निष्पादन ठप हो जाता है और कोई पूर्णता नहीं हो सकती है। इस प्रकार इन लेन-देन के निष्पादन को पूरा करने और संबंधित कंप्यूटिंग संसाधनों को जारी करने के लिए गतिरोधों को हल करने की आवश्यकता है। एक गतिरोध पूर्वता ग्राफ में एक संभावित चक्र का प्रतिबिंब है जो बिना अवरोध के घटित होता है जब विरोध संतृप्त होता है। इस तरह के संभावित चक्र से जुड़े लेन-देन को समाप्त करके और चक्र को तोड़कर गतिरोध का समाधान किया जाता है। यह सामान्यतःप्रतीक्षा-के लिए ग्राफ़ का उपयोग करके पता लगाया जाता है (अवरोध द्वारा संतृप्त होने से अवरोधित संघर्षों का एक ग्राफ़; इसे अ-संतृप्त संघर्षों के ग्राफ़ के रूप में भी परिभाषित किया जा सकता है; संतृप्त नहीं होने वाले विरोधों को पूर्ववर्ती ग्राफ़ में प्रतिबिंबित नहीं किया जाता है और प्रभावित नहीं होता है क्रमबद्धता), जो इंगित करता है कि कौन सा लेन-देन एक से अधिक अवरोध के जारी होने की प्रतीक्षा कर रहा है जिसके द्वारा अन्य लेन-देन और इस ग्राफ में एक चक्र का अर्थ गतिरोध है। चक्र को तोड़ने के लिए प्रति चक्र एक लेन-देन को रद्द करना पर्याप्त है। गतिरोध समाधान के कारण रद्द किए गए लेन-देन को फिर से शुरू किया जाता है और तुरंत फिर से निष्पादित किया जाता है। | ||
=== अन्य लागू करने वाली तकनीक === | === अन्य लागू करने वाली तकनीक === | ||
| Line 89: | Line 90: | ||
* टू-फेज अवरोध (2PL) | * टू-फेज अवरोध (2PL) | ||
* टाइमस्टैम्प आधारित समवर्ती नियंत्रण (TO) | * टाइमस्टैम्प आधारित समवर्ती नियंत्रण (TO) | ||
* स्नैपशॉट आइसोलेशन आइसोलेशन को | * स्नैपशॉट आइसोलेशन आइसोलेशन को क्रमिक करने योग्य बनाना<ref name=Cahill08>Michael J. Cahill, Uwe Röhm, Alan D. Fekete (2008): [http://portal.acm.org/citation.cfm?id=1376690 "Serializable isolation for snapshot databases"], ''Proceedings of the 2008 ACM SIGMOD international conference on Management of data'', pp. 729-738, Vancouver, Canada, June 2008, {{ISBN|978-1-60558-102-6}} (SIGMOD 2008 best paper award)</ref> (क्रमिक करने योग्य एसआई) | ||
उपरोक्त (संघर्ष) क्रमिकता तकनीक अपने सामान्य रूप में पुनर्प्राप्ति योग्यता प्रदान नहीं करती है। पुनर्प्राप्ति योग्यता जोड़ने के लिए विशेष संवर्द्धन की आवश्यकता है। | उपरोक्त (संघर्ष) क्रमिकता तकनीक अपने सामान्य रूप में पुनर्प्राप्ति योग्यता प्रदान नहीं करती है। पुनर्प्राप्ति योग्यता जोड़ने के लिए विशेष संवर्द्धन की आवश्यकता है। | ||
| Line 101: | Line 102: | ||
तकनीक प्रकारों के बीच मुख्य अंतर उनके द्वारा उत्पन्न संघर्ष प्रकार हैं। एक निराशावादी पद्धति संघर्ष पर लेन-देन के संचालन को अवरुद्ध करती है और अ-संतृप्त संघर्ष उत्पन्न करती है, जबकि एक आशावादी पद्धति ब्लॉक नहीं करती है और संतृप्त संघर्ष उत्पन्न करती है। एक अर्ध-आशावादी पद्धति दोनों संघर्ष प्रकार उत्पन्न करती है। दोनों संघर्ष प्रकार कालानुक्रमिक क्रम से उत्पन्न होते हैं जिसमें लेनदेन के संचालन को संघर्ष के प्रकार से स्वतंत्र रूप से लागू किया जाता है। पूर्ववर्ती ग्राफ (संघर्ष ग्राफ) में प्रतिबद्ध लेनदेन (संतृप्त संघर्षों के साथ) का एक चक्र क्रमिकता उल्लंघन का प्रतिनिधित्व करता है, और क्रमबद्धता बनाए रखने के लिए इससे बचा जाना चाहिए। वेट-फॉर ग्राफ़ में (अ-संतृप्त) संघर्षों का एक चक्र गतिरोध की स्थिति का प्रतिनिधित्व करता है, जिसे चक्र को तोड़कर हल किया जाना चाहिए। दोनों चक्र प्रकार संघर्षों से उत्पन्न होते हैं और इन्हें तोड़ा जाना चाहिए। किसी भी प्रकार की तकनीक के तहत, संतृप्त और अ-संतृप्त विरोध दोनों के लिए समान ओवरहेड के साथ संघर्षों का पता लगाया जाना चाहिए और विचार किया जाना चाहिए (सामान्यतः अवरोध जैसेक्रियाविधिका उपयोग करके, या तो अवरोध के लिए अवरुद्ध करना या अवरुद्ध नहीं करना, लेकिन संतृप्त विरोधों के लिए रिकॉर्डिंग संघर्ष)। अवरुद्ध करने की विधि में, सामान्यतः एक [[संदर्भ स्विच|संदर्भ स्विचिंग]] संघर्ष पर होता है, जिसमें (अतिरिक्त) उपरिव्यय होता है। अन्यथा, अवरुद्ध लेन-देन से संबंधित कंप्यूटिंग संसाधन निष्क्रिय, अनुपयोगी रहते हैं, जो एक बदतर विकल्प हो सकता है। जब संघर्ष बार-बार नहीं होते हैं, तो आशावादी तरीकों का विशेष रूप से लाभ होता है। विभिन्न लेन-देन भार (लेन-देन प्रकारों के मिश्रण) के साथ एक तकनीक प्रकार (यानी, या तो आशावादी या निराशावादी) दूसरे की सादृश्य में बेहतर प्रदर्शन प्रदान कर सकता है। | तकनीक प्रकारों के बीच मुख्य अंतर उनके द्वारा उत्पन्न संघर्ष प्रकार हैं। एक निराशावादी पद्धति संघर्ष पर लेन-देन के संचालन को अवरुद्ध करती है और अ-संतृप्त संघर्ष उत्पन्न करती है, जबकि एक आशावादी पद्धति ब्लॉक नहीं करती है और संतृप्त संघर्ष उत्पन्न करती है। एक अर्ध-आशावादी पद्धति दोनों संघर्ष प्रकार उत्पन्न करती है। दोनों संघर्ष प्रकार कालानुक्रमिक क्रम से उत्पन्न होते हैं जिसमें लेनदेन के संचालन को संघर्ष के प्रकार से स्वतंत्र रूप से लागू किया जाता है। पूर्ववर्ती ग्राफ (संघर्ष ग्राफ) में प्रतिबद्ध लेनदेन (संतृप्त संघर्षों के साथ) का एक चक्र क्रमिकता उल्लंघन का प्रतिनिधित्व करता है, और क्रमबद्धता बनाए रखने के लिए इससे बचा जाना चाहिए। वेट-फॉर ग्राफ़ में (अ-संतृप्त) संघर्षों का एक चक्र गतिरोध की स्थिति का प्रतिनिधित्व करता है, जिसे चक्र को तोड़कर हल कि | ||