बाराकुडा और संपीड़न के लाभ


12

मैं थोड़ी देर पहले MySQL के फाइल फॉर्मेट एंटीलोप और बारकुडा के बारे में पढ़ रहा हूं, और मुझे आश्चर्य है कि क्या मुझे बाराकुडा और कम्प्रेशन होने से फायदा हो सकता है।

मेरा सर्वर वर्तमान में एंटीलोप का उपयोग कर रहा है, क्योंकि यह MySQL का डिफ़ॉल्ट है।
मेरे पास कई बार बड़े डेटाबेस के कारण मेमोरी के साथ समस्याएँ हैं। मेरा डेटाबेस हर दिन बढ़ रहा है।

ऐसा लगता है कि संपीड़न कुछ लोगों को लाभ दे रहा है, जैसे:
http://www.mysqlperformanceblog.com/2008/04/23/real-life-use-case-for-barracuda-innodb-file-format/

मैं समझता हूं कि मेमोरी और डिस्क स्थान कम हो सकता है, लेकिन मुझे यकीन नहीं है कि अगर मैं इसे (लेख से उद्धृत) समझता हूं:
"शीर्ष के अनुसार ~ ~ 5% सीपीयू लोड (80-100% से ज्यादातर I / O के लिए प्रतीक्षा कर रहा है)
0.01 प्राथमिक कुंजी (रूपांतरण से पहले 1-20 सेकंड से) का औसत देखने का समय

मैंने सोचा था कि इन दो चीजों में सुधार नहीं होगा, क्योंकि यदि डेटा संकुचित है, तो सर्वर को मूल डेटा को फिर से प्राप्त करने के लिए अनसुना करना पड़ता है, तो क्या इसका मतलब यह नहीं है कि सीपीयू का उपयोग बढ़ेगा?

क्या आपको गहन अनुप्रयोगों को पढ़ने / लिखने में लाभ होता है? क्या आप मुझे बाराकुडा और संपीड़न में बदलने की सलाह देंगे?

क्या आप बाराकुडा के किसी भी मुद्दे से अवगत हैं?
ऐसा लगता है कि निम्नलिखित प्रश्न का उत्तर कुछ मुद्दों को इंगित करता है, लेकिन चूंकि यह 2011 से है, मैं कहूंगा कि वे अब तक तय कर रहे हैं: /server/258022/mysql-innodb-how-to-switch करने वाली barracuda प्रारूप

जवाबों:


14

"डायनेमिक" के बारे में , गैर-संकुचित बाराकुडा-केवल प्रारूप, बहुत कम कॉम्पैक्ट से बदल गया है, मुख्य रूप से कैसे बूँदें (और किसी भी बहुत गतिशील क्षेत्र) संग्रहीत हैं । मेरे पास कॉम्पैक्ट बनाम डायनेमिक के साथ कभी कोई समस्या नहीं थी, इसलिए मैं बारकुडा के डायनामिक की सुरक्षित रूप से सिफारिश कर सकता हूं। याद रखें कि बाराकुडा पुराने बेमानी और कॉम्पैक्ट पंक्ति स्वरूपों का भी समर्थन करता है

जिस लेख का आप उल्लेख कर रहे हैं, वह शायद बहुत पुराना है (५.१) और, पीटर जेड के रूप में, पेरकोना के सीईओ, टिप्पणियों पर उल्लेख करते हैं कि यह थोड़ा भ्रामक हो सकता है। इसका मतलब यह नहीं है कि काम के बोझ के आधार पर संपीड़न एक बहुत बड़ा लाभ नहीं हो सकता है। हालाँकि, मैं आपको इसे संस्करणों> = 5.6 पर आज़माने की सलाह दूंगा, क्योंकि फेसबुक और ओरेकल दोनों ने इसके बारे में बहुत सुधार किया है।

हाल की संदर्भ सामग्री के रूप में, मैं आपको सलाह दूंगा:

विशेष रूप से, मुझे फेसबुक सामग्री पसंद है क्योंकि वे तीसरे पक्ष हैं (एजेंडा की कोई आवश्यकता नहीं है) और उनके पास दुनिया में सबसे बड़े MySQL तैनाती में से एक है। जैसा कि आप देख सकते हैं कि उनके पास संपीड़न के साथ एसएसडी तकनीक के संयोजन के बहुत सफल सेटअप हैं।

क्या इससे आपको फायदा होगा? जो आपके कार्यभार, कार्य सेट और सेटअप (IOPS, मेमोरी) पर निर्भर करेगा । निर्भर करता है कि आप IO बाउंड हैं, CPU बाउंड या मेमोरी बाउंड, कंप्रेशन कुछ मामलों में नकारात्मक रूप से प्रभावित हो सकता है, अतिरिक्त CPU जोड़कर, मेमोरी आवश्यकताएं (संकुचित और असम्पीडित दोनों पेज इनोबीडी बफर पूल पर संग्रहीत हैं) या बहुत अधिक कम्प्रेशन फेलियर उत्पन्न करके, संवर्धित कर रहे हैं , विलंबता। यह डेटा के प्रकार पर भी निर्भर करता है: कम्प्रेशन बड़े टेक्स्ट ब्लॉब्स के साथ बहुत मदद कर सकता है, लेकिन यह पहले से कंप्रेस्ड डेटा के साथ बेकार हो सकता है।

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

सामान्य तौर पर, परिणामों की भविष्यवाणी करना बहुत मुश्किल है, आमतौर पर आपको बेंचमार्किंग के लिए एक परीक्षण वातावरण सेट करना चाहिए और फिर पता चलता है कि आपको बेहतर या बदतर परिणाम क्यों मिलते हैं (और इस तरह आप विभिन्न ब्लॉक आकारों, आदि के साथ खेल सकते हैं)। बाराकुडा पूरी तरह से सुरक्षित है। संपीड़न आपके लिए हो सकता है या नहीं। और आप हमेशा अन्य संपीड़न विधियों जैसे कि ब्लॉब्स के क्लाइंट-साइड संपीड़न के साथ प्रयोग कर सकते हैं (उदाहरण के लिए, यदि आप CPU-बाउंड को समाप्त करते हैं) या अन्य 3 पार्टी इंजन जैसे RocksDB और TokuDB , जिसमें संपीड़न एक बड़ी प्राथमिकता है, क्योंकि यह केंद्रित है InnoDB से बड़े डेटासेट के लिए प्रदर्शन संभाल सकते हैं।

संक्षेप में: बाराकुडा का उपयोग करने के मुख्य कारण BLOB हैंडलिंग, innodb_large_prefixसंगतता (बड़े सूचकांक) और संपीड़न हैं। MySQL 8.0 पर डायनामिक, अब डिफ़ॉल्ट फ़ाइल स्वरूप है।


1
यह वास्तव में भयानक और स्पष्ट उत्तर है! यह सभी समझ में आता है और मेरे इच्छित उत्तर का प्रकार है। आप MySQL 5.6 (जो कि मैंने हाल ही में अपग्रेड किया है) का उल्लेख कर रहे हैं और फेसबुक को एक उदाहरण के रूप में संदर्भित कर रहे हैं, जैसा कि मुझे पसंद है, क्योंकि उन्हें आमतौर पर बाकी सभी के सामने आने वाली चुनौतियों से पार पाना होता है। दुर्भाग्य से यह पहले परीक्षण करना आसान नहीं होगा, क्योंकि परीक्षण के वातावरण में उत्पादन के रूप में एक ही सीपीयू / आईओ / रैम लोड नहीं होगा, लेकिन वास्तव में मुझे इसे आज़माना होगा! आपका समय देने के लिए आपका बहुत बहुत धन्यवाद।
नूनो

जैसा कि पंक्ति प्रारूप को टेबल स्तर पर चुना जा सकता है, जो आपको उत्पादन पर परीक्षण के लिए कुछ लचीलापन दे सकता है (एक अलग मशीन पर उचित परीक्षण के बाद)। यह दृष्टिकोण, हालांकि, संभवतः डिबगिंग और बेंचमार्किंग को और अधिक कठिन बना देगा।
jynus

हाँ, मैं शायद पहले कुछ तालिकाओं को बदलने की कोशिश कर सकता हूं (हो सकता है कि जो इतने बड़े / उपयोग नहीं किए गए हों)। हालाँकि, बड़े लोगों के लिए, केवल कुछ डाउनटाइम के बजाय कुछ डाउनटाइम की आवश्यकता होगी, जहां मैं उन सभी को एक बार में परिवर्तित कर दूंगा। मुझे देखना होगा कि सबसे अच्छा तरीका क्या है। मुझे समझ नहीं आता, हालाँकि, यह डिबगिंग को और अधिक कठिन क्यों बना देगा। आपका यहाँ वास्तव में क्या मतलब है? आपका बहुत बहुत धन्यवाद।
नूनो

1
आपके पास ऑनलाइन फैशन में तालिकाओं को फिर से बनाने के लिए pt-online-schema-change percona.com/doc/percona-toolkit/2.2/… जैसे उपकरण हैं । मैंने अभी उल्लेख किया है कि इंजन में बदलाव के कारण सीपीयू / मेमोरी / आईओएस परिवर्तन को मापने के लिए सिर्फ कुछ तालिकाओं को मिलाने से और अधिक कठिन हो सकता है और उन्हें सामान्य लोड परिवर्तनों से अलग कर सकता है या इसे फिर से बनाते समय कैशिंग परिवर्तन के कारण हो सकता है। अलग-अलग मशीन पर अलग-अलग हार्डवेयर के साथ देखना भी मुश्किल है, इसलिए बस शुभकामनाएँ!
jynus

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