Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> डेटाबेस

आरएसी में कैश फ्यूजन को समझना

कैश फ़्यूज़न, Oracle® RealApplication Clusters (RAC) में दो उदाहरणों के बीच ब्लॉक के हस्तांतरण के अलावा और कुछ नहीं, RAC की मुख्य और सबसे महत्वपूर्ण विशेषता है।

परिचय

Oracle RAC कैश फ़्यूज़न में Oracle के अनुसार, प्रत्येक "उदाहरण [in a] RAC क्लस्टर [में] का अपना स्थानीय बफर कैश होता है जहाँ यह कैशेफंक्शनलिटी करता है। लेकिन जब कई उपयोगकर्ता अलग-अलग नोड्स से जुड़े होते हैं, तो [उपयोगकर्ताओं को अक्सर] [अन्य] इंस्टेंस के स्वामित्व वाले डेटा ब्लॉक तक पहुंचने या लॉक करने की आवश्यकता होती है।

"ऐसे मामलों में, अनुरोध करने वाला उदाहरण उस डेटा ब्लॉक के लिए एक होल्डिंग इंस्टेंस का अनुरोध करता है और इसे [ए] इंटरकनेक्ट तंत्र के माध्यम से एक्सेस करता है। इस अवधारणा को कैश फ़्यूज़न . के रूप में जाना जाता है । "

एकल उदाहरण

कैश फ़्यूज़न को एक्सप्लोर करने से पहले, आइए देखें कि डेटा ब्लॉक अनुरोध होने पर गैर-आरएसी डेटाबेस कैसे व्यवहार करते हैं।

एक ही उदाहरण में चार चरणों वाली लेन-देन प्रक्रिया निम्नलिखित है (गोपी के कैशे फ्यूजन ब्लॉग पोस्ट से ली गई:

  1. जब कोई उपयोगकर्ता हाल ही में संशोधित ब्लॉक पढ़ता है, तो उसे ब्लॉक में एक सक्रिय लेनदेन मिल सकता है।
  2. यह तय करने के लिए कि लेन-देन किया गया है या नहीं, उपयोगकर्ता को पूर्ववत करें खंड शीर्षलेख को पढ़ना होगा।
  3. यदि लेन-देन प्रतिबद्ध नहीं है, तो प्रक्रिया बफ़र कैश में ब्लॉक के डेटा और पूर्ववत खंड में संग्रहीत डेटा का उपयोग करके ब्लॉक का एक सुसंगत रीड (CR) संस्करण बनाती है।
  4. यदि पूर्ववत खंड दिखाता है कि लेन-देन प्रतिबद्ध है, तो प्रक्रिया को ब्लॉक को फिर से देखना होगा और ब्लॉक को साफ करना होगा और परिवर्तनों के लिए फिर से तैयार करना होगा।

अब, दो-इंस्टेंस क्लस्टर के साथ RAC में उसी परिदृश्य को देखते हैं, जिसे कैश फ़्यूज़न के नाम से जाना जाता है।

कैश फ़्यूज़न

गोपी आगे कहते हैं, "आरएसी में, [दो] या एक से अधिक उदाहरण समान डेटाबेस फ़ाइलों तक पहुँच प्राप्त करते हैं [जो एक ही भंडारण (जैसे, एएसएम) में हैं]। प्रत्येक इंस्टेंस का अपना SGA, बैकग्राउंड प्रोसेस होता है, जिसका अर्थ है कि प्रत्येक इंस्टेंस का अपना बफर कैश होता है (प्रत्येक इंस्टेंस के लिए स्थानीय)। ये बफ़र [sic] कैश व्यक्तिगत रूप से [the] इंस्टेंस स्तर पर होते हैं और [the] डेटाबेस स्तर पर एक साथ मिलकर एक इकाई (ग्लोबल कैश) बनाने के लिए [to] उनके बीच डेटा ब्लॉक साझा करते हैं। इसे हम कैश फ़्यूज़न कहते हैं . कैश फ़्यूज़न एक क्लस्टर में इंस्टेंस के बीच डेटा ब्लॉक के कैश-टू-कैश हस्तांतरण प्रदान करने के लिए एक उच्च गति वाले आईपीसी इंटरकनेक्ट का उपयोग करता है। यह डेटा-ब्लॉकशीपिंग डिस्क I/O को हटा देता है और पढ़ने/लिखने की समरूपता को अनुकूलित करता है।"

यह समझ हमें ग्लोबल कैश सर्विस (जीसीएस) में ले आती है, जो इंस्टेंस के बीच ट्रांसफर को ब्लॉक करने के लिए जिम्मेदार है।

गोपी की पोस्ट में उल्लिखित जीसीएस पृष्ठभूमि प्रक्रियाएं निम्नलिखित हैं:

  • वैश्विक कैश सेवा प्रक्रियाएं (एलएमएसएन)
  • ग्लोबल एनक्यू सर्विस डेमॉन (एलएमडी)

गोपी आगे कहते हैं, "इन पृष्ठभूमि प्रक्रियाओं में जाने से पहले, [sic] देखते हैं कि Oracle डेटा ब्लॉकों के साथ कैसे व्यवहार करता है और यह उन्हें कैसे प्रबंधित करता है।

"ओरेकल डेटा ब्लॉक को संसाधनों के रूप में मानता है। इन संसाधनों में से प्रत्येक को उदासीन मोड में रखा जा सकता है, जो डेटा अखंडता बनाए रखने के लिए [ए] महत्वपूर्ण तंत्र है। इन तरीकों को [तीन] प्रकारों में वर्गीकृत किया जाता है, जो इस बात पर निर्भर करता है कि संसाधन धारक डेटा को संशोधित करना चाहता है या डेटा को पढ़ना चाहता है।"

गोपी विधाओं को इस प्रकार सूचीबद्ध करता है:

  • शून्य (एन) मोड :नल मोड को आमतौर पर प्लेसहोल्डर के रूप में रखा जाता है।
  • साझा (एस) मोड :इस मोड में, एक डेटा ब्लॉक दूसरे सत्र द्वारा संशोधित नहीं किया जाता है, लेकिन समवर्ती साझा पहुंच की अनुमति देगा।
  • अनन्य (X) मोड :यह स्तर होल्डिंग प्रक्रिया को अनन्य पहुंच प्रदान करता है। अन्य प्रक्रियाएं संसाधन को नहीं लिख सकती हैं। इसमें लगातार पढ़ने वाले ब्लॉक हो सकते हैं।

ग्लोबल कैश सर्विस डेमॉन (LMSn)

जब किसी उदाहरण से अनुरोध किया जाता है, तो गोपी हमें बताता है, “जीसीएस स्मृति में ब्लॉक प्रतियों को बनाए रखते हुए अन्य उदाहरणों के लिए ब्लॉक शिपिंग का आयोजन करता है। ऐसी प्रत्येक प्रति को विगत छवि (PI) कहा जाता है। [...] यह भी संभव है कि डेटा ब्लॉक के [एक] से अधिक पीआई हों, यह इस बात पर निर्भर करता है कि [गंदी] चरण में कितनी बार ब्लॉक का अनुरोध किया गया था।"

नोट: गोपी कहते हैं, "यदि आप डेटा ब्लॉक पढ़ना चाहते हैं, तो इसे [ए] सुसंगत स्थिति में पढ़ा जाना चाहिए। आपको दूसरों द्वारा किए गए परिवर्तनों को पढ़ने की अनुमति नहीं है।"

ग्लोबल एनक्यू सर्विस डेमॉन (LMD)

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

निम्नलिखित GES प्रबंधित संसाधन हैं जो गोपी साझा करते हैं:

  • लेन-देन लॉक :इसे अनन्य मोड में तब प्राप्त किया जाता है जब कोई लेन-देन अपना परिवर्तन (सम्मिलित, अद्यतन, आदि) शुरू करता है। लॉक तब तक रखा जाता है जब तक कि लेन-देन प्रतिबद्ध या वापस नहीं हो जाता।
  • लाइब्रेरी कैश लॉक :जब SQL, DML या DDL, PL/SQL, या Java स्टेटमेंट को पार्स करने या संकलित करने के दौरान एक डेटाबेस ऑब्जेक्ट (जैसे टेबल, व्यू, पैकेज, पैकेजबॉडी, […] और इसी तरह) को संदर्भित किया जाता है, तो प्रक्रिया पार्सिंग या स्टेटमेंट को संकलित करने से लाइब्रेरी कैश लॉक सही मोड में आ जाता है।
  • डिक्शनरी कैश लॉक्स :ग्लोबल एनक्यू का उपयोग क्लस्टर डेटाबेस मोड में किया जाता है। क्लस्टर डेटाबेस में सभी Oracle उदाहरणों के लिए Thedata डिक्शनरी संरचना समान है।
  • टेबल लॉक :ये GES लॉक हैं जो पूरी टेबल की सुरक्षा करते हैं। जब किसी तालिका को संशोधित किया जाता है तो लेन-देन एक टेबल लॉक प्राप्त करता है। टेबल लॉक को कई मोड में रखा जा सकता है:नल (एन), रो शेयर (आरएस), रो एक्सक्लूसिव (आरएक्स), शेयर लॉक (एस), शेयर रो एक्सक्लूसिव (एसआरएक्स), या एक्सक्लूसिव (एक्स)।

अतीत और लगातार पढ़ी गई छवियां

मुख्य परिदृश्य पर जाने से पहले, हमें पिछली छवियों (पीआई) और लगातार पढ़ने वाली (सीआर) छवियों को समझने की जरूरत है।

पिछली छवि

रोहित गुप्ता ने अपने लेख ओरेकल आरएसी कैशे फ्यूजन में साझा किया, "पास्ट इमेज की अवधारणा आरएसी सेटअप के लिए बहुत विशिष्ट है। अपडेट के लिए डेटा ब्लॉक पर [a] एक्सक्लूसिव लॉक रखने वाले इंस्टेंस पर विचार करें। यदि आरएसी में किसी अन्य इंस्टेंस को ब्लॉक की आवश्यकता होती है, तो होल्डिंग इंस्टेंस ब्लॉक के पीआई (पिछली छवि) को अपने बफर कैश में रखकर अनुरोध करने वाले इंस्टेंस (डिस्क पर लिखने के बजाय) को ब्लॉक भेज सकता है। मूल रूप से, डिस्क पर ब्लॉक लिखे जाने से पहले PI डेटा ब्लॉक की कॉपी है।"

लगातार पढ़ने वाली इमेज:

गुप्ता जारी रखते हैं, "जब एक विशेष ब्लॉक को लेन-देन [ए 1] द्वारा एक्सेस / संशोधित किया जा रहा है, और उसी समय एक अन्य लेनदेन [ए 2] ब्लॉक तक पहुंचने / पढ़ने की कोशिश करता है, तो लगातार पढ़ने की आवश्यकता होती है। यदि [A1] प्रतिबद्ध नहीं किया गया है, [A2] को आगे बढ़ने के लिए लगातार [(गैर-संशोधित ब्लॉक)] ब्लॉक की प्रतिलिपि पढ़ने की आवश्यकता है। उस ब्लॉक के लिए UNDO डेटा का उपयोग करके एक CR कॉपी बनाई जाती है।"

कैश फ़्यूज़न परिदृश्य

कैश फ़्यूज़न के तीन अलग-अलग परिदृश्य हैं:

  • पढ़ें-पढ़ें परिदृश्य
  • पढ़ें-लिखें परिदृश्य
  • लिखें-लिखें परिदृश्य

पढ़ें-पढ़ें परिदृश्य:

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

पढ़ें-लिखें परिदृश्य:

यह एक महत्वपूर्ण परिदृश्य है।

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

जीसीएस जांच करता है और पाता है कि इंस्टेंस ने उसी ब्लॉक पर एक विशेष लॉक हासिल कर लिया है। इसलिए, जीसीएस इंस्टेंस ए को ब्लॉक जारी करने के लिए कहता है। अब, इंस्टेंस ए अपने स्वयं के बफर कैश में एक सीआर छवि बनाता है और जीसीएस को तदनुसार इंस्टेंस बी में भेजने के लिए सूचित करता है।

जीसीएस सीआर छवि निर्माण में शामिल है, और इसे अनुरोधित इंस्टेंस पर भेज रहा है जहां कैश फ्यूजन चलन में आता है।

लिखें-लिखें परिदृश्य

इंस्टेंस ए और इंस्टेंस बी दोनों डेटा ब्लॉक पर एक विशेष लॉक हासिल करने की कोशिश कर रहे हैं।

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

इंस्टेंस बी अब ब्लॉक का उपयोग करता है और हमेशा की तरह बदलाव करता है।

सीआर और पीआई के बीच मुख्य अंतर

गुप्ता पीआई बनाम सीआर छवियों के बारे में निम्नलिखित अंतिम विचार जोड़ते हैं:"[द] सीआर छवि को [ए] पढ़ने-लिखने के प्रकार के विवाद से बचने के लिए भेज दिया गया था क्योंकि अनुरोध करने वाला उदाहरण एक लेखन ऑपरेशन नहीं करना चाहता है और इसलिए इसकी आवश्यकता नहीं होगी ब्लॉक पर विशेष ताला। इस प्रकार एक रीड ऑपरेशन के लिए, ब्लॉक की सीआर छवि पर्याप्त होगी। जबकि राइट-राइट विवाद के लिए, अनुरोध करने वाले इंस्टेंस को डेटा ब्लॉक पर एक विशेष लॉक प्राप्त करने की भी आवश्यकता होती है। [टू] राइट ऑपरेशंस के लिए लॉक प्राप्त करने के लिए, इसे वास्तविकब्लॉक की आवश्यकता होगी, न कि सीआर इमेज की। इसलिए होल्डिंग इंस्टेंस वास्तविक ब्लॉक भेजता है लेकिन ब्लॉक के पीआई को तब तक रखने के लिए उपयुक्त है जब तक कि डिस्क पर ब्लॉक नहीं लिखा गया हो। इसलिए, यदि कोई इंस्टेंस विफलता या क्रैश है, तो Oracle RAC इंस्टेंस में PIfrom का उपयोग करके ब्लॉक बनाने में सक्षम है। एक बार डिस्क पर ब्लॉक लिखे जाने के बाद, क्रैश होने की स्थिति में इसे रिकवरी की आवश्यकता नहीं होगी, और इसलिए संबंधित पीआई को त्याग दिया जा सकता है। ”

हमारी डेटा सेवाओं के बारे में अधिक जानें।

कोई भी टिप्पणी करने या प्रश्न पूछने के लिए फीडबैक टैब का उपयोग करें। आप हमारे साथ बातचीत भी शुरू कर सकते हैं।


  1. पारदर्शी डेटा एन्क्रिप्शन

    Oracle® ने सुरक्षा उद्देश्यों के लिए Oracle 12C में पारदर्शी डेटा एन्क्रिप्शन (TDE) सुविधा पेश की, ताकि उपयोगकर्ता संवेदनशील डेटा के लिए टेबल स्पेस और कॉलम-स्तरीय एन्क्रिप्शन को सक्षम कर सकें। परिचय आपके द्वारा डेटा एन्क्रिप्ट करने के बाद, केवल अधिकृत उपयोगकर्ता या एप्लिकेशन ही इसे एक्सेस कर सकते ह

  1. MongoDB अंतरिक्ष उपयोग को समझना

    आप में से जो MongoDB का उपयोग करने के लिए नए हैं, उनके लिए MongoDB अंतरिक्ष उपयोग काफी भ्रमित करने वाला लग सकता है। इस लेख में, मैं समझाऊंगा कि MongoDB कैसे स्थान आवंटित करता है और हमारे ऑब्जेक्टरॉकेट डैशबोर्ड में अंतरिक्ष उपयोग की जानकारी की व्याख्या कैसे करें, इस बारे में निर्णय लेने के लिए कि आपक

  1. बिग डेटा, डेटा माइनिंग और मशीन लर्निंग के बीच अंतर को समझना

    जिस तेज गति से प्रौद्योगिकी विकसित हो रही है, हम डेटा के एक जटिल नेटवर्क और एक अस्पष्ट भविष्य की ओर बढ़ रहे हैं। इस बीच, दुनिया भर के उद्योग बिग डेटा, डेटा माइनिंग और मशीन लर्निंग जैसी कुछ क्रांतिकारी तकनीकों को अपनाकर पूरी तरह से बदलाव लाने का प्रयास कर रहे हैं। अब सवाल उठता है कि दुनिया भर में हर