मास्टर / स्लेव प्रतिकृति के बजाय गैलेरा क्लस्टर का उपयोग करने की कमियां क्या हैं?


13

नियमित मास्टर / स्लेव प्रतिकृति के बजाय गैलेरा क्लस्टर का उपयोग करने की कमियां क्या हैं? गैलेरा के 0 दास अंतराल समय, सिंक्रोनस प्रतिकृति और विफलता का कोई एकल बिंदु बहुत ही आकर्षक लगता है फिर गैलेरा क्लस्टर आम क्यों नहीं है?

जवाबों:


16

क्योंकि किसी भी अन्य अनुकूलन की तरह, यह हर कार्यभार के लायक नहीं है।

गैलेरा लेनदेन की उच्च दर से अभिभूत हो सकता है, या जब लेनदेन कई पंक्तियों को अद्यतन करता है। यह आपके अनुप्रयोगों को COMMIT पर अनुभव में देरी कर सकता है क्योंकि क्लस्टर को सिंक किया गया है।

गैलेरा अन्य नोड्स को तुल्यकालिक रूप से अपडेट नहीं करता है। यह बस कार्यपत्रकों को समकालिक रूप से प्रसारित करता है। इस तरह, यह अर्ध-तुल्यकालिक मोड में मानक प्रतिकृति जैसा है। इसलिए दूसरे क्लस्टर नोड से बासी डेटा पढ़ने का एक छोटा मौका अभी भी है। एक विकल्प है जिसे आप SELECT को तब तक प्रतीक्षा करने के लिए बाध्य कर सकते हैं जब तक कि कार्यपत्रकों की कतार डेटाबेस को अपडेट न कर दे, लेकिन इसका मतलब है कि आपने SELECT पर देरी की है। और यहां तक ​​कि SELECT पर गतिरोध प्राप्त करने का एक मौका है, जो जवाबी-सहज लगता है।

गलेरा शानदार है, लेकिन एक आकार-फिट-सभी तकनीक नहीं है। अतुल्यकालिक प्रतिकृति का उपयोग करने के लिए अभी भी अच्छे कारण हैं।


धन्यवाद बिल, btw मैं थोड़ी देर के लिए आपकी पर्कनो प्रस्तुतियों को पढ़ रहा हूं।
सैम

3
एक और खामी अपने आप में एक डोनर नोड है और क्लस्टर में पेश किए गए किसी भी नोड में कॉपी (xtrabackup, rsync, mysqldump के माध्यम से) करने के लिए उपयोग किया जा सकता है, जब तक कि नया नोड सिंक में नहीं है, तब तक भारी लिफ्टिंग करने के लिए क्लस्टर में शेष नोड्स को छोड़ दें। यह छोटे या मध्यम आकार के डीबी के लिए ऐसी कोई खामी नहीं है।
RolandoMySQLDBA

1
@RolandoMySQLDBA एसएसटी तरीके जैसे xtrabackup दाता को बंद करने से बिल्कुल बचते हैं। हालांकि यह सच है कि किसी भी मामले में, डेटाबेस के बड़े होने पर दाता का प्रदर्शन खराब हो जाएगा।
ज्युनस

3
@jynus, इस मुद्दे पर ताला लगा नहीं है दाता नोड, लेकिन वह प्राप्त नोड ऑफ़लाइन और किसी भी प्रश्न के लिए उपलब्ध नहीं है, जबकि एसएसटी प्रगति पर है। इसलिए यदि आप क्वेरी लोड बैलेंसिंग के लिए क्लस्टर का उपयोग कर रहे हैं, तो जो प्रश्न प्राप्त नोड पर चले गए हैं, उन्हें अन्य नोड (एस) को भेजा जाना है जब तक कि एसएसटी नहीं किया जाता है।
बिल कारविन

2
यदि कोई अन्य व्यक्ति देख रहा है, तो वह विकल्प जो बिल का उल्लेख कर रहा है wsrep_causal_reads... SET GLOBAL wsrep_causal_reads = 'ON';का चयन करने के लिए सभी लिखित सेट किए जाने तक प्रतीक्षा करने के लिए सेट करें।
ल्यूक कजिन

2

गलेरा की कुछ कमियों में शामिल हैं:

  • भंडारण इंजन का समर्थन: InnoDB / XtraDB तक सीमित (प्लस MyISAM के लिए प्रयोगात्मक समर्थन)
  • ओएस समर्थन: केवल लिनक्स / यूनिक्स की तरह ओजस

कुछ सीमाएँ भी हैं जिन पर ध्यान दिया जाना चाहिए, लेकिन शायद उनके आसपास काम किया जा सकता है:

  • डिफ़ॉल्ट रूप से (टोटल ऑर्डर अलगाव) DDL ऑपरेशन्स पूरे क्लस्टर को तब तक ब्लॉक करते हैं, जब तक वे पूरा नहीं हो जाता
  • प्रत्येक तालिका में एक एकल या बहु-स्तंभ वाली एक स्पष्ट प्राथमिक कुंजी होनी चाहिए
  • लॉकिंग: कुछ प्रकार के स्पष्ट लॉकिंग असमर्थित हैं।

अधिक जानकारी के लिए, पर विवरण देखने के Codership (और यहाँ DDL अवरुद्ध के बारे में), MariaDB , और Percona

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.