Distributed lock manager
ऑपरेटिंग सिस्टम संसाधनों तक पहुंच को व्यवस्थित और क्रमबद्ध करने के लिए ताला प्रबंधकों का उपयोग करते हैं। एक वितरित ताला प्रबंधक (डी. एल. एम.) एक समूह में प्रत्येक मशीन में चलता है, जिसमें समूह-व्यापी ताला डेटाबेस की एक समान प्रति होती है। इस तरह एक डी. एल. एम. सॉफ्टवेयर अनुप्रयोग प्रदान करता है जो साझा संसाधनों तक अपनी पहुंच को समन्वित करने के साधन के साथ कई मशीनों पर एक समूह में वितरित किए जाते हैं। डी. एल. एम. का उपयोग कई सफल क्लस्टर फ़ाइल प्रणालियों की नींव के रूप में किया गया है, जिसमें एक समूह में मशीनें प्रदर्शन और उपलब्धता के लिए महत्वपूर्ण लाभों के साथ एक एकीकृत फ़ाइल प्रणाली के माध्यम से एक दूसरे के भंडारण का उपयोग कर सकती हैं। मुख्य प्रदर्शन लाभ भाग लेने वाले कंप्यूटरों के बीच डिस्क कैश सुसंगतता की समस्या को हल करने से आता है। डी. एल. एम. का उपयोग न केवल फाइल लॉकिंग के लिए किया जाता है, बल्कि सभी डिस्क अभिगम के समन्वय के लिए भी किया जाता है। वीएमएसक्लस्टर, व्यापक उपयोग में आने वाली पहली क्लस्टरिंग प्रणाली, इस तरह से ओपनवीएमएस डी. एल. एम. पर निर्भर थी। संसाधन डी. एल. एम. एक संसाधन की सामान्यीकृत अवधारणा का उपयोग करता है, जो कुछ इकाई है जिसके लिए साझा पहुंच को नियंत्रित किया जाना चाहिए। यह एक फ़ाइल, एक रिकॉर्ड, साझा मेमोरी के एक क्षेत्र, या किसी अन्य चीज़ से संबंधित हो सकता है जिसे एप्लिकेशन डिजाइनर चुनता है। संसाधनों के एक पदानुक्रम को परिभाषित किया जा सकता है, ताकि लॉकिंग के कई स्तरों को लागू किया जा सके। उदाहरण के लिए, एक काल्पनिक डेटाबेस एक संसाधन पदानुक्रम को निम्नानुसार परिभाषित कर सकता हैः डेटाबेस टेबल रिकॉर्ड फील्ड एक प्रक्रिया तब समग्र रूप से डेटाबेस पर लॉक प्राप्त कर सकती है, और फिर डेटाबेस के विशेष हिस्सों पर। अधीनस्थ संसाधन को बंद करने से पहले मूल संसाधन पर एक ताला प्राप्त किया जाना चाहिए। लॉक मोड एक वी. एम. एस. सी. क्लस्टर के भीतर चलने वाली प्रक्रिया एक संसाधन पर लॉक प्राप्त कर सकती है। छह लॉक मोड हैं जिन्हें दिया जा सकता है, और ये दिए जा रहे विशिष्टता के स्तर को निर्धारित करते हैं, लॉक को लॉक मोड के उच्च या निचले स्तर में बदलना संभव है। जब सभी प्रक्रियाएँ किसी संसाधन को खोल देती हैं, तो संसाधन के बारे में प्रणाली की जानकारी नष्ट हो जाती है। नल (एन. एल.)। संसाधन में रुचि का संकेत देता है, लेकिन अन्य प्रक्रियाओं को इसे बंद करने से नहीं रोकता है। इसका लाभ यह है कि संसाधन और इसके लॉक वैल्यू ब्लॉक को संरक्षित किया जाता है, तब भी जब कोई प्रक्रिया इसे लॉक नहीं कर रही हो। समवर्ती पठन (सी. आर.)। संसाधन को पढ़ने (लेकिन अद्यतन नहीं करने) की इच्छा का संकेत देता है। यह अन्य प्रक्रियाओं को संसाधन को पढ़ने या अद्यतन करने की अनुमति देता है, लेकिन दूसरों को इसकी विशेष पहुंच से रोकता है। यह आमतौर पर उच्च-स्तरीय संसाधनों पर नियोजित किया जाता है, ताकि अधीनस्थ संसाधनों पर अधिक प्रतिबंधात्मक ताले प्राप्त किए जा सकें। समवर्ती लेखन (सीडब्ल्यू)। संसाधन को पढ़ने और अद्यतन करने की इच्छा का संकेत देता है। यह अन्य प्रक्रियाओं को संसाधन को पढ़ने या अद्यतन करने की अनुमति देता है, लेकिन दूसरों को इसकी विशेष पहुंच से रोकता है। यह आमतौर पर उच्च-स्तरीय संसाधनों पर भी नियोजित किया जाता है, ताकि अधीनस्थ संसाधनों पर अधिक प्रतिबंधात्मक ताले प्राप्त किए जा सकें। प्रोटेक्टेड रीड (पीआर)। यह पारंपरिक शेयर लॉक है, जो संसाधन को पढ़ने की इच्छा को इंगित करता है लेकिन दूसरों को इसे अद्यतन करने से रोकता है। हालाँकि अन्य लोग भी संसाधन को पढ़ सकते हैं। संरक्षित लेखन (पीडब्लू)। यह पारंपरिक अद्यतन ताला है, जो संसाधन को पढ़ने और अद्यतन करने की इच्छा को इंगित करता है और दूसरों को इसे अद्यतन करने से रोकता है। हालाँकि समवर्ती पठन पहुँच वाले अन्य लोग संसाधन को पढ़ सकते हैं। अनन्य (EX)। यह पारंपरिक अनन्य ताला है जो संसाधन को पढ़ने और अद्यतन करने की अनुमति देता है, और दूसरों को इसकी कोई भी पहुंच होने से रोकता है। निम्नलिखित सत्य तालिका प्रत्येक ताला मोड की दूसरों के साथ संगतता को दर्शाती हैः ताला प्राप्त करना एक प्रक्रिया ताला अनुरोध को जोड़कर एक संसाधन पर ताला प्राप्त कर सकती है। यह क्यू. आई. ओ. तकनीक के समान है जिसका उपयोग आई/ओ करने के लिए किया जाता है। एनक्यू लॉक अनुरोध या तो समकालिक रूप से पूरा हो सकता है, जिस स्थिति में प्रक्रिया ताला दिए जाने तक प्रतीक्षा करती है, या अतुल्यकालिक रूप से, जिस स्थिति में ताला प्राप्त होने पर एएसटी होता है। एक अवरोधक ए. एस. टी. स्थापित करना भी संभव है, जो तब शुरू होता है जब एक प्रक्रिया को एक ताला प्राप्त होता है जो किसी अन्य प्रक्रिया द्वारा संसाधन तक पहुंच को रोक रहा होता है। मूल प्रक्रिया तब वैकल्पिक रूप से अन्य पहुंच की अनुमति देने के लिए कार्रवाई कर सकती है (जैसे। लॉक को डिमोट करके या जारी करके)। लॉक वैल्यू ब्लॉक प्रत्येक संसाधन के साथ एक लॉक वैल्यू ब्लॉक जुड़ा होता है। इसे किसी भी प्रक्रिया द्वारा पढ़ा जा सकता है जिसने संसाधन पर ताला प्राप्त किया है (एक शून्य ताला के अलावा) और एक ऐसी प्रक्रिया द्वारा अद्यतन किया जा सकता है जिसने उस पर एक संरक्षित अद्यतन या अनन्य ताला प्राप्त किया है। इसका उपयोग एप्लिकेशन डिजाइनर द्वारा चुने गए संसाधन के बारे में कोई भी जानकारी रखने के लिए किया जा सकता है। एक विशिष्ट उपयोग संसाधन की एक संस्करण संख्या को धारण करना है। हर बार संबद्ध इकाई (जैसे। एक डेटाबेस रिकॉर्ड) को अद्यतन किया जाता है, लॉक का धारक लॉक मूल्य ब्लॉक को बढ़ाता है। जब कोई अन्य प्रक्रिया संसाधन को पढ़ना चाहती है, तो यह उपयुक्त ताला प्राप्त करती है और वर्तमान ताला मूल्य की तुलना उस मूल्य से करती है जो पिछली बार प्रक्रिया ने संसाधन को बंद किया था। यदि मान समान है, तो प्रक्रिया को पता है कि संबद्ध इकाई को पिछली बार पढ़ने के बाद से अद्यतन नहीं किया गया है, और इसलिए इसे फिर से पढ़ना अनावश्यक है। इसलिए, इस तकनीक का उपयोग डेटाबेस या इसी तरह के अनुप्रयोग में विभिन्न प्रकार के कैश को लागू करने के लिए किया जा सकता है। डेडलॉक डिटेक्शन जब एक या अधिक प्रक्रियाओं ने संसाधनों पर ताला प्राप्त कर लिया है, तो ऐसी स्थिति पैदा करना संभव है जहां प्रत्येक दूसरे को ताला प्राप्त करने से रोक रहा है, और उनमें से कोई भी आगे नहीं बढ़ सकता है। इसे गतिरोध के रूप में जाना जाता है (ई. डब्ल्यू. डिजक्स्ट्रा ने मूल रूप से इसे एक घातक आलिंगन कहा था)। एक सरल उदाहरण है जब प्रोसेस 1 ने रिसोर्स ए पर एक विशेष लॉक प्राप्त किया है, और प्रोसेस 2 ने रिसोर्स बी पर एक विशेष लॉक प्राप्त किया है। यदि प्रोसेस 1 रिसोर्स बी को लॉक करने की कोशिश करता है, तो इसे रिलीज करने के लिए प्रोसेस 2 की प्रतीक्षा करनी होगी। लेकिन अगर प्रोसेस 2 रिसोर्स ए को लॉक करने की कोशिश करता है, तो दोनों प्रक्रियाएं एक दूसरे के लिए हमेशा इंतजार करेंगी। ओपनवीएमएस डी. एल. एम. समय-समय पर गतिरोध स्थितियों की जांच करता है। उपरोक्त उदाहरण में, प्रक्रियाओं में से एक का दूसरा लॉक एनक्यू अनुरोध गतिरोध स्थिति के साथ वापस आ जाएगा। यह तब इस प्रक्रिया पर निर्भर करेगा कि गतिरोध को हल करने के लिए कार्रवाई की जाए-इस मामले में इसे प्राप्त पहला ताला जारी करके। लिनक्स क्लस्टरिंग रेड हैट और ओरेकल दोनों ने लिनक्स के लिए क्लस्टरिंग सॉफ्टवेयर विकसित किया है। ओ. सी. एफ. एस. 2, ओरेकल क्लस्टर फाइल सिस्टम को जनवरी 2006 में संस्करण 2.6.16 के साथ आधिकारिक लिनक्स कर्नेल में जोड़ा गया था। ओ. सी. एफ. एस. 2 पर अल्फा-गुणवत्ता कोड चेतावनी 2.6.19 में हटा दी गई थी। उनके डी. एल. एम. और जी. एफ. एस. 2 सहित रेड हैट के क्लस्टर सॉफ्टवेयर को नवंबर 2006 में आधिकारिक तौर पर संस्करण 2.6.19 के साथ लिनक्स कर्नेल में जोड़ा गया था। दोनों प्रणालियाँ आदरणीय वी. एम. एस. डी. एल. एम. पर आधारित डी. एल. एम. मॉडल का उपयोग करती हैं। ओरेकल के डी. एल. एम. में एक सरल एपीआई है। (कोर फ़ंक्शन, dlmlock (), में आठ पैरामीटर हैं, जबकि VMS SYS $ENQ सेवा और रेड हैट के dlm _ लॉक दोनों में 11 हैं।) अन्य कार्यान्वयन अन्य डी. एल. एम. कार्यान्वयनों में निम्नलिखित शामिल हैंः गूगल ने चब्बी विकसित किया है, जो शिथिल रूप से युग्मित वितरित प्रणालियों के लिए एक ताला सेवा है। यह मोटे दाने वाले लॉकिंग के लिए डिज़ाइन किया गया है और एक सीमित लेकिन विश्वसनीय वितरित फ़ाइल सिस्टम भी प्रदान करता है। गूगल फाइल सिस्टम, बिगटेबल और मैपरेड्यूस सहित गूगल के बुनियादी ढांचे के प्रमुख भाग, साझा संसाधनों तक पहुंच को समन्वित करने के लिए चब्बी का उपयोग करते हैं। हालाँकि चब्बी को एक ताला सेवा के रूप में डिज़ाइन किया गया था, लेकिन अब इसका उपयोग गूगल के अंदर एक नाम सर्वर के रूप में किया जाता है, जो डी. एन. एस. की जगह लेता है। अपाचे ज़ूकीपर, जिसे याहू में बनाया गया था, एक ओपन-सोर्स सॉफ्टवेयर है और इसका उपयोग वितरित ताले करने के लिए भी किया जा सकता है। ई. टी. सी. डी. ओपन-सोर्स सॉफ्टवेयर है, जिसे अपाचे लाइसेंस के तहत कोरओएस में विकसित किया गया है। इसका उपयोग वितरित ताले बनाने के लिए भी किया जा सकता है। रेडिस एक मुक्त स्रोत, बीएसडी लाइसेंस प्राप्त, उन्नत कुंजी-मूल्य कैश और स्टोर है। रेडिस का उपयोग वितरित ताला प्रबंधन के लिए रेडलक एल्गोरिदम को लागू करने के लिए किया जा सकता है। हैशिकॉर्प का वाणिज्य दूत, जिसे हैशिकॉर्प द्वारा बनाया गया था, एक ओपन-सोर्स सॉफ्टवेयर है और इसका उपयोग वितरित ताले करने के लिए भी किया जा सकता है। ताऊका वितरित ताला प्रबंधक गतिरोध से बचने के लिए "लॉक करने का प्रयास करें" विधियों का उपयोग करता है। यह नैनोसेकंड सटीकता के साथ प्रत्येक ताला के लिए एक टी. टी. एल. भी निर्दिष्ट कर सकता है। डी. एल. एम. ओपन. एस. एस. आई. जैसी अधिक महत्वाकांक्षी एकल प्रणाली छवि (एस. एस. आई.) परियोजनाओं का भी एक प्रमुख घटक है। संदर्भ एच. पी. ओपन. वी. एम. एस. प्रणाली सेवा संदर्भ नियमावली-$ई. एन. क्यू. अधिकारी-रूबी एफ. एल. ओ. एम. में लिखा गया एक सरल वितरित ताला प्रबंधक-एक मुक्त मुक्त स्रोत वितरित ताला प्रबंधक जिसका उपयोग शेल कमांड, स्क्रिप्ट और कस्टम विकसित सी, सी + +, जावा, पी. एच. पी. और पायथन सॉफ्टवेयर को समन्वित करने के लिए किया जा सकता है।