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

MySQL गैलेरा क्लस्टर 4.0 में नया क्या है?

MySQL Galera Cluster 4.0 बहुत ही रोचक नई सुविधाओं के साथ डेटाबेस ब्लॉक पर नया बच्चा है। वर्तमान में यह केवल मारियाडीबी 10.4 के एक भाग के रूप में उपलब्ध है लेकिन भविष्य में यह MySQL 5.6, 5.7 और 8.0 के साथ भी काम करेगा। इस ब्लॉग पोस्ट में हम गैलेरा क्लस्टर 4.0 के साथ आने वाली कुछ नई सुविधाओं पर जाना चाहेंगे।

गैलेरा क्लस्टर स्ट्रीमिंग प्रतिकृति

इस रिलीज में सबसे महत्वपूर्ण नई विशेषता स्ट्रीमिंग प्रतिकृति है। अब तक गैलेरा क्लस्टर के लिए प्रमाणन प्रक्रिया इस तरह से काम करती थी कि पूरे लेनदेन को पूरा होने के बाद प्रमाणित करना पड़ता था।

यह प्रक्रिया कई परिदृश्यों में आदर्श नहीं थी...

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

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

MySQL गैलेरा क्लस्टर स्ट्रीमिंग प्रतिकृति विकल्प

प्रतिलिपि स्ट्रीमिंग के लिए दो कॉन्फ़िगरेशन विकल्प हैं: 

wsrep_trx_fragment_size 

यह बताता है कि एक टुकड़ा कितना बड़ा होना चाहिए (डिफ़ॉल्ट रूप से यह 0 पर सेट होता है, जिसका अर्थ है कि स्ट्रीमिंग प्रतिकृति अक्षम है)

wsrep_trx_fragment_unit 

यह बताता है कि टुकड़ा वास्तव में क्या है। डिफ़ॉल्ट रूप से यह बाइट्स है, लेकिन यह एक 'स्टेटमेंट' या 'रो' भी हो सकता है।

उन चरों को सत्र स्तर पर (और चाहिए) सेट किया जा सकता है, जिससे उपयोगकर्ता के लिए यह तय करना संभव हो जाता है कि स्ट्रीमिंग प्रतिकृति का उपयोग करके किस विशेष क्वेरी को दोहराया जाना चाहिए। इकाई को 'कथन' और आकार को 1 पर सेट करना, उदाहरण के लिए, केवल एक क्वेरी के लिए स्ट्रीमिंग प्रतिकृति का उपयोग करने की अनुमति देता है, उदाहरण के लिए, हॉटस्पॉट को अपडेट करता है।

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

WSREP टेबल्स

गैलेरा 4.0 कई तालिकाओं का परिचय देता है, जो क्लस्टर की स्थिति की निगरानी करने में मदद करेगी:

  • wsrep_cluster
  • wsrep_cluster_members
  • wsrep_streaming_log

ये सभी 'mysql' स्कीमा में स्थित हैं। wsrep_cluster क्लस्टर की स्थिति के बारे में जानकारी प्रदान करेगा। wsrep_cluster_members आपको उन नोड्स के बारे में जानकारी देगा जो क्लस्टर का हिस्सा हैं। wsrep_streaming_log स्ट्रीमिंग प्रतिकृति की स्थिति को ट्रैक करने में मदद करता है।

गैलेरा क्लस्टर की आगामी सुविधाएं

गैलेरा बनाने वाली कंपनी कोडरशिप अभी तक पूरी नहीं हुई है। हम सीईओ, सेप्पो जाकोला से रोडमैप का पूर्वावलोकन प्राप्त करने में सक्षम थे जो इस साल की शुरुआत में पेरकोना लाइव में दिया गया था। जाहिरा तौर पर, हम XA लेनदेन समर्थन और gcache एन्क्रिप्शन जैसी सुविधाएँ देखने जा रहे हैं। यह वास्तव में अच्छी खबर है।

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

Gcache एक फाइल है जो राइटसेट को स्टोर करती है। इसकी सामग्री जॉइनर नोड्स को भेजी जाती है जो डेटा ट्रांसफर के लिए कहती है। यदि सभी डेटा gcache में संग्रहीत है, तो जॉइनर को इंक्रीमेंटल स्टेट ट्रांसफर (IST) नामक प्रक्रिया में केवल लापता लेनदेन प्राप्त होंगे। यदि gcache में सभी आवश्यक डेटा नहीं है, तो स्टेट स्नैपशॉट ट्रांसफर (SST) की आवश्यकता होगी और पूरे डेटासेट को जॉइनिंग नोड में स्थानांतरित करना होगा।

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

निष्कर्ष

हम निश्चित रूप से यह देखने के लिए उत्सुक हैं कि मारियाडीबी की तुलना में गैलेरा क्लस्टर 4.0 डेटाबेस पर कैसे काम करेगा। गैलेरा क्लस्टर के साथ MySQL 5.7 या 8.0 को तैनात करने में सक्षम होना वास्तव में बहुत अच्छा होगा। आखिरकार, गैलेरा सबसे व्यापक रूप से परीक्षण किए गए सिंक्रोनस प्रतिकृति समाधानों में से एक है जो बाजार पर उपलब्ध हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में उपलब्ध दिनांक और समय स्थान

  2. मारियाडीबी में INSTR () बनाम LOCATE () के बीच का अंतर

  3. MySQL में अनुक्रमणिका को समझना:भाग दो

  4. मैजिकब्रिक्स अपने हाई वॉल्यूम ट्रैफिक को सपोर्ट करने के लिए मारियाडीबी में माइग्रेट करता है

  5. मारियाडीबी में TIME () कैसे काम करता है