Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Moodle MySQL डेटाबेस को स्केल करने की चुनौतियाँ

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

मूडल डेटाबेस को स्केल करना - चुनौती

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

यहां तक ​​​​कि डिफ़ॉल्ट रूप से गैलेरा जैसे क्लस्टर वास्तव में सिंक्रोनस प्रतिकृति के साथ नहीं आते हैं - प्रतिकृति सिस्टम की तुलना में अंतर काफी कम हो जाता है लेकिन यह अभी भी वहां है और पिछले लेखन के बाद तत्काल चयन निष्पादित नहीं हो सकता है डेटा जिसे आपने अभी डेटाबेस में संग्रहीत किया है क्योंकि आपका चयन आपके पिछले लेखन की तुलना में एक अलग गैलेरा नोड पर भेजा गया था।

ऐसे कई समाधान हैं जिनका उपयोग आप Moodle MySQL डेटाबेस को स्केल करने के लिए कर सकते हैं। शुरुआत के लिए, यदि आप प्रतिकृति सेटअप का उपयोग करते हैं, तो आप मूडल से "सुरक्षित पठन" सुविधा का उपयोग कर सकते हैं। हमने अपने पिछले ब्लॉगों में से एक में इसे कवर किया था। यह उस स्थिति की ओर ले जाएगा जिसमें मूडल तय करेगा कि कौन से लेखन दासों में वितरित किए जाएंगे और कौन से मास्टर को मारेंगे।

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

गैलेरा क्लस्टर का उपयोग करने और लोड को सभी नोड्स में समान रूप से वितरित करने के लिए वैकल्पिक दृष्टिकोण हो सकता है।

अपने आप में यह सब पढ़ने के बाद को संभालने के लिए पर्याप्त नहीं है -लिखने के मुद्दे लेकिन सौभाग्य से आप wsrep-sync-wait चर का उपयोग कर सकते हैं जिसका उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि कार्य-कारण जांच की गई है और क्लस्टर वास्तविक सिंक्रोनस क्लस्टर की तरह व्यवहार करता है। इस सेटिंग का उपयोग करने से आप अपने सभी गैलेरा नोड्स से सुरक्षित रूप से पढ़ सकेंगे।

बेशक, कार्य-कारण जांच लागू करने से गैलेरा के प्रदर्शन पर असर पड़ेगा लेकिन यह अभी भी समझ में आता है क्योंकि आप एक ही समय में कई गैलेरा नोड्स से पढ़ने से लाभ उठा सकते हैं। उस बिंदु से, गैलेरा क्लस्टर के साथ स्केलिंग पढ़ना काफी आसान है - आप क्लस्टर में अधिक गैलेरा नोड्स जोड़ते हैं। लोड बैलेंसर को उन्हें लेने के लिए फिर से कॉन्फ़िगर किया जाना चाहिए और पढ़ने के लिए एक अतिरिक्त लक्ष्य के रूप में उपयोग करना चाहिए, जिससे आप 10+ रीडर नोड्स को भी बढ़ा सकते हैं।

आपको यह ध्यान रखना होगा कि अतिरिक्त नोड्स, प्रतिकृति या गैलेरा जोड़ना, यह वास्तव में कोई फर्क नहीं पड़ता, क्लस्टर पर संचालन में कुछ जटिलता जोड़ता है। आपको यह सुनिश्चित करना होगा कि आपके नोड्स की ठीक से निगरानी की जाती है, कि आपके पास बैकअप काम कर रहा है, प्रतिकृति ठीक से काम कर रही है और क्लस्टर स्वयं सही स्थिति में है। प्रतिकृति वातावरण के लिए विफलता को एक या दूसरे तरीके से संभालना पड़ता है और गैलेरा और प्रतिकृति दोनों के लिए आप क्लस्टर में किसी भी प्रकार की डेटा असंगति का पता लगाने पर क्लस्टर में नोड्स को फिर से बनाने में सक्षम होना चाहते हैं। सौभाग्य से, ClusterControl उन चुनौतियों से निपटने में आपकी काफी मदद कर सकता है।

ClusterControl Moodle MySQL डेटाबेस क्लस्टर को प्रबंधित करने में कैसे मदद करता है

सबसे पहले, यदि पूरा क्लस्टर ढह जाता है, तो ClusterControl एक स्वचालित कार्य करेगा क्लस्टर पुनर्प्राप्ति - जब तक सभी नोड उपलब्ध रहेंगे, ClusterControl क्लस्टर पुनर्प्राप्ति प्रक्रिया प्रारंभ करेगा:

थोड़े समय के बाद, पूरा क्लस्टर वापस ऑनलाइन हो जाना चाहिए।

ClusterControl प्रबंधन विकल्पों के एक सेट के साथ आता है:

आप नोड या प्रतिकृति स्लेव जोड़कर क्लस्टर का विस्तार कर सकते हैं। आप एक संपूर्ण स्लेव क्लस्टर भी बना सकते हैं जो मुख्य क्लस्टर की नकल करेगा।

 एक बैकअप शेड्यूल को आसानी से सेट करना संभव है जिसे ClusterControl द्वारा निष्पादित किया जाएगा। आप स्वचालित बैकअप सत्यापन भी सेट कर सकते हैं।

आप शायद अपने डेटाबेस क्लस्टर की निगरानी करने में सक्षम होना चाहते हैं। ClusterControl आपको बस यही करने की अनुमति देता है:

जैसा कि आप देख सकते हैं, ClusterControl एक बेहतरीन प्लेटफॉर्म है जिसका उपयोग Moodle MySQL डेटाबेस के स्केलिंग और प्रबंधन की जटिलता को कम करने के लिए किया जा सकता है। हमें विशेष रूप से मूडल और उसके डेटाबेस को बढ़ाने के आपके अनुभव के बारे में सुनना अच्छा लगेगा।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClusterControl के साथ MySQL NDB क्लस्टर को परिनियोजित और प्रबंधित करना

  2. MySQL में सोशल नेटवर्क सिस्टम के लिए डेटाबेस डिजाइन करने के लिए गाइड

  3. समूहीकृत परिणामों के प्रत्येक समूह के लिए शीर्ष n रिकॉर्ड प्राप्त करें

  4. MySQL विदेशी कुंजी बाधाएं, कैस्केड हटाएं

  5. MySQL एक चर आकार चर सूची के साथ तैयार बयान