Erlang 21 - 2. Mnesia

2 मनेसिया




erlang

2 मनेसिया

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

मेन्शिया को एर्लांग में कसकर और कसकर जोड़ा जाता है। यह कार्यक्षमता प्रदान करता है जो गलती सहिष्णु दूरसंचार प्रणालियों के कार्यान्वयन के लिए आवश्यक है।

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

दूरसंचार अनुप्रयोगों में, पारंपरिक डीबीएमएस द्वारा प्रदान की जाने वाली सुविधाओं से अलग-अलग आवश्यकताएं हैं। Erlang में अब लागू किए गए अनुप्रयोगों को कई प्रकार की सुविधाओं के मिश्रण की आवश्यकता होती है, जो आम तौर पर पारंपरिक DBMS द्वारा संतुष्ट नहीं होते हैं। Mnesia आवश्यकताओं को ध्यान में रखते हुए डिज़ाइन किया गया है:

  • तेजी से वास्तविक समय कुंजी / मूल्य की खोज
  • मुख्य रूप से संचालन और रखरखाव के लिए जटिल गैर-वास्तविक समय प्रश्न
  • वितरित अनुप्रयोगों के कारण वितरित डेटा
  • उच्च दोष सहिष्णुता
  • गतिशील पुन: संयोजन
  • जटिल वस्तुओं

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

  • तेजी से वास्तविक समय संचालन
  • दोष सहिष्णुता की विन्यास योग्य डिग्री (प्रतिकृति द्वारा)
  • इसे रोकने या निलंबित किए बिना सिस्टम को फिर से कॉन्फ़िगर करने की क्षमता।

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

2.1 Mnesia डेटाबेस मैनेजमेंट सिस्टम (DBMS)

विशेषताएं

मेन्शिया में निम्नलिखित विशेषताएं शामिल हैं, जो एक दोष-सहिष्णु का निर्माण करने के लिए गठबंधन करती हैं, वितरित एर्लांग में लिखे गए डीबीएमएस:

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

इन विशेषताओं का विवरण निम्नलिखित वर्गों में वर्णित है।

ऐड-ऑन एप्लिकेशन

Mnesia के साथ परिचालन सूची क्षमता (QLC) का उपयोग Mnesia के साथ किया जा सकता है ताकि Mnesia की परिचालन क्षमता में वृद्धि हो। QLC के पास OTP प्रलेखन सेट के हिस्से के रूप में अपना स्वयं का प्रलेखन है। Mnesia के साथ उपयोग किए जाने पर QLC की मुख्य विशेषताएं इस प्रकार हैं:

  • QLC Mnesia DBMS के लिए क्वेरी कंपाइलर को ऑप्टिमाइज़ कर सकता है, अनिवार्य रूप से DBMS को अधिक कुशल बनाता है।
  • QLC को Mnesia के लिए डेटाबेस प्रोग्रामिंग भाषा के रूप में उपयोग किया जा सकता है। इसमें "सूची बोध" नामक एक संकेतन शामिल है और इसका उपयोग तालिकाओं के एक सेट पर जटिल डेटाबेस क्वेरी बनाने के लिए किया जा सकता है।

QLC के बारे में जानकारी के लिए, STDLIB में qlc मैनुअल पेज देखें।

जब Mnesia का उपयोग करने के लिए

निम्नलिखित प्रकार के अनुप्रयोगों के साथ मानेसिया का उपयोग करें:

  • डेटा को दोहराने के लिए आवश्यक अनुप्रयोग।
  • डेटा पर जटिल खोज करने वाले अनुप्रयोग।
  • एक साथ कई रिकॉर्ड को अद्यतन करने के लिए परमाणु लेनदेन का उपयोग करने की आवश्यकता वाले अनुप्रयोग।
  • नरम वास्तविक समय विशेषताओं का उपयोग करने वाले अनुप्रयोग।

मेन्शिया निम्न प्रकार के अनुप्रयोगों के साथ उपयुक्त नहीं है:

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