मारियाडीबी 10.4 मारियाडीबी की वर्तमान विकास शाखा है। हाल ही में, 21 मई को, तीसरा रिलीज़ कैंडिडेट (10.4.5) रिलीज़ किया गया, जो हमें आधिकारिक रिलीज़ के करीब लाता है। इसलिए हमने सोचा कि नई 10.4 सुविधाओं पर एक नज़र डालना एक अच्छा विचार हो सकता है। हम MariaDB Corporation द्वारा प्रकाशित एक हालिया ब्लॉग पोस्ट पर भी कुछ विचार साझा करेंगे। रिलीज के बारे में जानकारी के लिए, आप मारियाडीबी 10.4.0 के चेंजलॉग में सभी विवरण पा सकते हैं।
प्रदर्शन परिवर्तन
यूनिकोड वर्ण सेट आमतौर पर लैटिन 1 जैसे वर्णों की तुलना में धीमे होते हैं, ज्यादातर उनके आकार के कारण। MySQL 8.0 ने इस क्षेत्र में महत्वपूर्ण सुधार लाए हैं, और इस संबंध में मारियाडीबी 10.4 भी 10.3 से अधिक तेज होना चाहिए। यह काफी महत्वपूर्ण सुधार है - लोग वास्तव में इमोजी का उपयोग करना पसंद करते हैं, जिसके लिए UTF8 को सक्षम करने की आवश्यकता होती है। ऑप्टिमाइज़र में कुछ काम किया गया है - मारियाडीबी 10.4 को IN() सबक्वेरी के लिए बेहतर काम करना चाहिए क्योंकि अब परिस्थितियों को भौतिक सबक्वेरी में धकेलना संभव है।
फिर से लॉग में डेटा की मात्रा के आधार पर, InnoDB को शुरू करने और रोकने में कुछ समय लग सकता है। मारियाडीबी 10.4 स्टार्टअप, शटडाउन और पर्जिंग में सुधार करेगा। मारियाबैकअप और एक्स्ट्राबैकअप जैसे हॉट बैकअप टूल की लोकप्रियता को देखते हुए ऐसे सुधार विशेष रूप से महत्वपूर्ण हैं। वे उपकरण, अंत में, एक अशुद्ध शटडाउन से InnoDB स्टार्टअप प्रक्रिया से गुजरते हैं जब वे फिर से लॉग लागू करते हैं, इसलिए उस क्षेत्र में प्रत्येक सुधार से बैकअप को पुनर्स्थापित करने के लिए आवश्यक समय कम होना चाहिए।
InnoDB परिवर्तन
मारियाडीबी 10.4 को तत्काल ड्रॉप कॉलम ऑपरेशन प्राप्त हुआ है। अब तालिका में स्तंभों को फिर से बनाने की आवश्यकता के बिना पुन:व्यवस्थित करना भी संभव है। हम इस बात पर जोर नहीं दे सकते कि यह कितना महत्वपूर्ण है। आपको आश्चर्य हो सकता है कि आप उत्पादन वातावरण में सबसे आम ऑपरेशन क्या करते हैं? हम कहेंगे कि यह एक इंडेक्स जोड़ रहा है या हटा रहा है। एक और सबसे आम ऑपरेशन कॉलम पर ऑपरेशन होगा - एक नया कॉलम जोड़ें और मौजूदा कॉलम को हटा दें। अब तक सबसे आम तरीका काम करने के लिए बाहरी उपकरणों का उपयोग करना था:पीटी-ऑनलाइन-स्कीमा-परिवर्तन या, हाल ही में, जीएच-ओस्ट। दोनों की अपनी सीमाएँ हैं (उदाहरण के लिए, गैलेरा क्लस्टर के लिए gh-ost काम नहीं करता है) जो आपके सिस्टम पर उनका उपयोग करना असंभव बना सकता है। विशेष रूप से मुश्किल विदेशी कुंजी हैं। तत्काल ड्रॉप कॉलम (तत्काल जोड़ें कॉलम पहले से ही उपलब्ध है) के साथ, स्कीमा परिवर्तनों का एक बड़ा हिस्सा विस्तृत शेड्यूलिंग और योजना के बिना तदर्थ किया जा सकता है, जैसा कि अभी किया जाना है। यह ध्यान रखना महत्वपूर्ण है कि तत्काल परिवर्तन वही हैं जो हम करना चाहते हैं। इंडेक्स बनाने जैसे गैर-अवरुद्ध स्कीमा परिवर्तन होते हैं, लेकिन ऐसे संचालन गंभीर चुनौती पेश करते हैं जब प्रतिकृति का उपयोग किया जाता है क्योंकि वे प्रतिकृति अंतराल को प्रेरित करते हैं। इस प्रकार, भले ही ऑपरेशन को लाइव सिस्टम पर निष्पादित किया जा सकता था, हम प्रक्रिया पर बेहतर नियंत्रण रखने के लिए पीटी-ऑनलाइन-स्कीमा-चेंज जैसे वर्कअराउंड का उपयोग करना पसंद करते हैं।
स्कीमा परिवर्तन कैसे निष्पादित किए जाते हैं, यह एकमात्र सुधार नहीं है। मारियाडीबी 10.4 को वचर कॉलम के तेजी से विस्तार से लाभ होगा, इसके अतिरिक्त गैर-अनुक्रमित कॉलम पर वर्ण सेट और संयोजन परिवर्तन तत्काल होंगे।
सामान्य परिवर्तन
सबसे बड़े परिवर्तनों में से एक उपयोगकर्ता प्रबंधन में परिवर्तन हैं। Mysql.host तालिका नहीं बनाई जाएगी, mysql.user तालिका बहिष्कृत है। उपयोगकर्ता खाते और वैश्विक विशेषाधिकार mysql.global_priv तालिका में रखे जाएंगे। यह संभावित रूप से सभी टूल (क्लस्टरकंट्रोल सहित) के लिए एक गंभीर बदलाव है, जिसमें MySQL और MariaDB उपयोगकर्ताओं को प्रबंधित करने का विकल्प है - MariaDB 10.4 और उसके बाद के उपयोगकर्ता प्रबंधन को कवर करने के लिए नए मामलों को लिखना होगा। जबकि हम स्वीकार करते हैं कि परिवर्तनों की आवश्यकता है, यह निश्चित रूप से मारियाडीबी और माईएसक्यूएल दोनों के लिए टूल को बनाए रखने में मदद नहीं करता है, टूलिंग परिदृश्य को पहले से कहीं अधिक विभाजित कर देता है। यूजर्स की बात करें तो मारियाडीबी 10.4 यूजर पासवर्ड एक्सपायर होने के विकल्प के साथ आता है। यह निश्चित रूप से एक अच्छी दिशा में एक कदम है - यह पासवर्ड प्रबंधन के संबंध में अच्छी प्रथाओं को लागू करने में मदद करता है।
भले ही हम इसे एक अलग ब्लॉग में अधिक विस्तार से कवर करेंगे, हमें यहां गैलेरा 26.4 के लिए समर्थन का उल्लेख करना होगा - मारियाडीबी 10.4 को नए गैलेरा संस्करण से स्ट्रीमिंग प्रतिकृति या बैकअप लॉक के लिए बेहतर एसएसटी धन्यवाद जैसी सुविधाओं के साथ लाभ होगा।
अंत में, मारियाडीबी 10.4 में आप sql_mode=MSSQL सेट कर सकते हैं। यह एक प्रारंभिक कार्यान्वयन है लेकिन sql_mode=ORACLE भी किसी समय एक प्रारंभिक कार्यान्वयन था। यह एंटरप्राइज़ ग्राहकों पर मारियाडीबी का ध्यान दिखाता है - यदि ओरेकल ग्राहक माइग्रेट करने का निर्णय लेते हैं, तो यह काफी संभावना है कि माइक्रोसॉफ्ट एसक्यूएल सर्वर के बीच मारियाडीबी अपनाने में भी वृद्धि होगी क्योंकि अधिक सुविधाएं जोड़ दी जाएंगी और माइग्रेशन एक समस्या से कम हो जाएगा।
MariaDB एक कांटा होने के नाते
हाल ही में हमने एक ब्लॉग पोस्ट देखा जिसमें InnoDB परिवर्तन और संगतता पर MariaDB रुख की व्याख्या की गई है। सार यह है कि मारियाडीबी अब MySQL से InnoDB सुविधाओं को मर्ज नहीं करेगा, मारियाडीबी द्वारा किए गए स्थिरता और प्रदर्शन में सुधार पर ध्यान केंद्रित किया जाएगा। इसका मूल रूप से मतलब है कि मारियाडीबी MySQL के साथ असंगत हो जाएगा। भले ही आप अतीत में बाइनरी अपग्रेड कर सकें, यह भविष्य में संभव नहीं होगा। अभी भी इसे निष्पादित करना मुश्किल हो सकता है। यह mydumper/myloader जैसे टूल के महत्व को बढ़ाता है क्योंकि लॉजिकल बैकअप माइग्रेशन का एकमात्र तरीका होगा। क्या अच्छा है, मारियाडीबी अपने इनोबीडी के कांटे की स्थिरता का मालिक होगा - उन्हें अपस्ट्रीम डेवलपर्स द्वारा पेश किए गए मुद्दों से निपटना नहीं होगा इसलिए हम कम बग पेश किए जाने की उम्मीद कर सकते हैं।
प्रदर्शन-वार हमें बेंचमार्क की प्रतीक्षा करनी होगी लेकिन ऐतिहासिक डेटा को देखते हुए, हम मान सकते हैं कि मारियाडीबी MySQL से धीमी होगी। पिछले बेंचमार्क में जो हम आम तौर पर देखते हैं वह यह है कि मारियाडीबी के लिए प्रदर्शन में वृद्धि तब होती है जब हाल ही में इनो डीबी संस्करण को एकीकृत किया गया है। यह अब ऐसा मामला नहीं होगा जो हमें आश्चर्यचकित करता है कि मारियाडीबी अब से प्रदर्शन की तुलना में कैसा प्रदर्शन करेगा और अगर मारियाडीबी द्वारा पेश किए गए सुधार MySQL 8.0 और आगे के संस्करणों के साथ बनाए रखने के लिए पर्याप्त होंगे।
हम उपयोगकर्ताओं के लिए, इसका मतलब है कि मारियाडीबी 10.4 पिछले रिलीज की तुलना में अधिक स्थिर होना चाहिए। इसका मतलब यह भी है कि अंततः हमें दो अलग-अलग स्टोरेज इंजनों के इंटर्नल सीखना होगा - खासकर अगर हम प्रदर्शन की परवाह करते हैं। यह आदर्श से बहुत दूर है लेकिन ऐसा ही है। इनो डीबी के एक या दूसरे संस्करण के साथ काम करने के लिए टूल्स को डिज़ाइन करना होगा (या MySQL और मारियाडीबी दोनों का समर्थन करने के लिए अतिरिक्त काम जोड़ना होगा)। हम इस पर नजर रखेंगे कि यह कैसे आगे बढ़ेगा। जब आप इसके बारे में सोचते हैं, तो यह इतना आश्चर्यजनक कदम नहीं है - मारियाडीबी को हमेशा हाल के इनो डीबी संस्करण के साथ एकीकृत करने के लिए अपना समय लेना पड़ा। मारियाडीबी में अधिक से अधिक असंगत सुविधाओं को जोड़ने और MySQL 8.0 में पेश किए गए बड़े बदलावों के साथ, अपस्ट्रीम MySQL से असंगत InnoDB को पोर्ट करने के बजाय नई कार्यक्षमता विकसित करने पर ध्यान केंद्रित करना समझ में आता है।
हमें उम्मीद है कि इस संक्षिप्त ब्लॉग पोस्ट ने आपको उन परिवर्तनों के बारे में जानकारी दी है जो मारियाडीबी 10.4 में जाने पर उत्पादन प्रणालियों को प्रभावित करेंगे।