हमें यह बताते हुए खुशी हो रही है कि क्लाउडेरा के ऑपरेशनल डेटाबेस में एएनएसआई एसक्यूएल, सेकेंडरी इंडेक्स, स्टार स्कीमा और व्यू क्षमताओं को जोड़ने के बाद, हम आने वाले महीनों में डिस्ट्रीब्यूटेड ट्रांजैक्शन सपोर्ट पेश करेंगे।
एसिड क्या है?
डेटाबेस डिज़ाइन का ACID मॉडल डेटाबेस में सबसे महत्वपूर्ण अवधारणाओं में से एक है। ACID,परमाणुता, स्थिरता, अलगाव और स्थायित्व के लिए खड़ा है। बहुत लंबे समय तक, व्यावसायिक रूप से सफल डेटाबेस के लिए इन चार गुणों का कड़ाई से पालन आवश्यक था। हालाँकि, इस मॉडल ने समस्याएँ पैदा कीं जब यह एक सर्वर डेटाबेस से आगे बढ़ने की बात आई। इस सीमा को समायोजित करने के लिए, ग्राहकों ने उस हार्डवेयर को बढ़ाया जिस पर डेटाबेस तैनात किए गए थे।
स्केलेबिलिटी में नाटकीय सुधार प्राप्त करने के लिए NoSQL डेटाबेस ने इन 4 गुणों में से एक या अधिक को ढीला कर दिया - Cloudera ऑपरेशनल डेटाबेस (अपाचे HBase द्वारा संचालित) एक ऐसा डेटाबेस था। हमने परमाणुता पर समझौता किया - विशेष रूप से, क्लौडेरा ने एकल-पंक्ति परमाणुता प्रदान की। क्षतिपूर्ति करने के लिए, हमने बहुत विस्तृत तालिकाओं का समर्थन किया (संभावित रूप से लाखों स्तंभों के साथ)। इसने ग्राहकों को अपने स्टार स्कीमा को असामान्य बनाने और एकल पंक्तियों के रूप में उनका प्रतिनिधित्व करने की अनुमति दी, ताकि कई तालिकाओं के रूप में प्रदर्शित की जाने वाली एकल पंक्ति में परमाणु कमिट किया जा सके।
HBase के जन्म के बाद से, हम उन क्षमताओं के निर्माण की दिशा में काम कर रहे हैं जो पारंपरिक RDBMs के साथ फीचर गैप को कम करती हैं, जबकि NoSQL स्केलेबिलिटी, कंसिस्टेंसी, ड्यूरेबिलिटी और आइसोलेशन के लाभों को बनाए रखती हैं।
इस साल की शुरुआत में, हमने Apache HBase के शीर्ष पर ANSI SQL, सेकेंडरी इंडेक्स, स्टार स्कीमा, और व्यू के लिए समर्थन प्रदान किया, जो एक इंटरफ़ेस और क्षमताओं को लेकर आया, जो उन सभी एप्लिकेशन डेवलपर्स के लिए परिचित हैं, जिन्होंने कभी ऐसा एप्लिकेशन बनाया है जो MySQL या PostGres का उपयोग करता है।पी>
अब हम क्लस्टर में पंक्तियों और तालिकाओं को पार करने वाले डेटा के लिए परमाणु प्रतिबद्धता बनाने की क्षमता प्रदान करने की कगार पर हैं।
परमाणु लेन-देन क्या है?
एक लेनदेन एक डेटाबेस में संचालन का एक सेट शामिल है जो परमाणु रूप से प्रबंधित होता है, इसलिए सभी संचालन या तो पूरी तरह से पूर्ण (प्रतिबद्ध) होना चाहिए या कोई प्रभाव नहीं होना चाहिए (निरस्त)।
वर्तमान में, हम केवल एकल-पंक्ति परमाणु लेनदेन का समर्थन करते हैं। इसका मतलब यह है कि जब डेवलपर्स क्लौडेरा के ऑपरेशनल डेटाबेस को अपनाना चाहते हैं, तो उन्हें अपने स्कीमा के बारे में अलग तरह से सोचने की जरूरत है।
अब हम कई पंक्तियों और तालिकाओं वाले जटिल लेनदेन करने की क्षमता का परिचय दे रहे हैं, जिसका अर्थ है कि डेवलपर्स पारंपरिक स्टार स्कीमा को लागू कर सकते हैं या अपनी आवश्यकताओं के आधार पर विस्तृत कॉलम या दोनों का लाभ उठा सकते हैं। क्लौडेरा ऑपरेशनल डेटाबेस के विकासवादी स्कीमा दृष्टिकोण के साथ संयुक्त यह लचीलापन डेवलपर्स को अपने मौजूदा कौशल सेट को आगे बढ़ाते हुए एक आधुनिक स्केल-आउट डेटाबेस का लाभ उठाने की अनुमति देता है।
ध्यान देने वाली एक महत्वपूर्ण बात यह है कि क्लाउडेरा ऑपरेशनल डेटाबेस में लेनदेन समर्थन "लॉक-फ्री" है और स्नैपशॉट अलगाव गारंटी प्रदान करता है। पारंपरिक डेटाबेस लेन-देन से जुड़े सभी डेटा के लिए "लॉक" लागू करते हैं ताकि डेटा तक पहुंचने वाले अन्य क्लाइंट डेटाबेस के लिए प्रतिबद्ध होने से पहले इसे बदल न सकें। हालांकि, इसका परिणाम दौड़-स्थितियों में हो सकता है जो परिपत्र निर्भरता के साथ समाप्त हो जाएंगे और लटक जाएंगे। एप्लिकेशन की ओर से नाटकीय रूप से खराब प्रदर्शन का कारण ताले भी थे क्योंकि एप्लिकेशन एक-दूसरे पर प्रतीक्षा कर रहे थे ताकि वे लॉक प्राप्त कर सकें और आगे बढ़ सकें।
हमारा दृष्टिकोण पहले लेन-देन की अनुमति देता है जो आगे बढ़ने के लिए पूरा होता है और अन्य जो डेटा के समान सेट में परिवर्तन करने का प्रयास कर रहे थे, उन्हें पुनः प्रयास करना होगा। यह डेटाबेस पर एक साथ चलने वाले अनुप्रयोगों के पूरे पारिस्थितिकी तंत्र में किसी भी तरह की मंदी को रोकता है। दूसरे शब्दों में, हमारा दृष्टिकोण रैखिक मापनीयता की अनुमति देता है जबकि परमाणुता प्रदान करता है जो पारंपरिक लेनदेन डेटाबेस प्रदान करने में सक्षम है।
प्रारंभिक प्रदर्शन परिणाम
हमारी लेन-देन समर्थन क्षमता वर्तमान में बीटा में है और व्यापक प्रदर्शन परीक्षण के माध्यम से रखी जा रही है।
वर्तमान परीक्षण में OLTP बेंच एप्लिकेशन का उपयोग करते हुए उद्योग-मानक TPC-C बेंचमार्क शामिल हैं। टीपीसी-सी बेंचमार्क कई गोदामों में एक साथ कई खरीद का अनुकरण करता है। TPC-C में प्रयुक्त स्कीमा को निम्नलिखित निकाय-संबंध आरेख में दर्शाया गया है:
इकाई ब्लॉकों में संख्याएँ तालिकाओं (पंक्तियों की संख्या) की कार्डिनैलिटी का प्रतिनिधित्व करती हैं। डेटाबेस स्केलिंग को स्पष्ट करने के लिए इन नंबरों को W, वेयरहाउस की संख्या द्वारा फैक्टर किया जाता है। संबंध तीरों के आगे की संख्या रिश्तों की प्रमुखता (प्रति माता-पिता बच्चों की औसत संख्या) का प्रतिनिधित्व करती है। + प्रतीक डेटाबेस आबादी की संख्या के छोटे बदलाव को दर्शाता है।
एक ऑर्डर प्लेसमेंट के लिए एक परमाणु लेनदेन के रूप में निम्नलिखित 10 प्रश्नों को चलाने की आवश्यकता होती है:
1.चुनें c_discount, c_last, C_creditFROM CustomerWHERE c_w_id =? और c_d_id =? और सी_आईडी =? 2. चुनें w_taxFROM वेयरहाउसजहां w_id =?3. d_next_o_id चुनें, D_taxFROM जिलेजहां d_w_id =? और d_id =?4. जिले में UPSERT करें (d_next_o_id, d_w_id, d_id) चुनें d_next_o_id + 1, d_w_id, _ और d_id =? 5. upSERT INTO new_order (no_o_id, no_d_id, no_w_id) VALUES (?,?,?)6. UPSERT इन ऑर्डर (O_ID, O_D_ID, O_W_ID, O_C_ID, O_ENTRY_D, O_OL_CNT, O_ALL_LOCAL) मान (? 7. i_price चुनें, i_name, i_data आइटम से कहां i_id =? 8. S_QUANTITY, S_DATA, S_DIST_01, S_DIST_02, S_DIST_03, S_DIST_04, S_DIST_05, S_DIST_06, S_DIST_07, S_DIST_08, S_DIST_09, S_DIST_09, S_DIST_10 का चयन करें, और s_w_id =? 9. स्टॉक इन स्टॉक (S_QUANTITY, S_YTD, S_ORDER_CNT, S_REMOTE_CNT, S_I_ID, S_W_ID) का चयन करें? और s_w_id =?10. INSERT INTERT_LINE (OL_O_ID, OL_D_ID, OL_W_ID, OL_NUMBER, OL_I_ID, OL_SUPPLY_W_ID, OL_QUANTITY, OL_AMOUNT, OL_DIST_INFO) मान (?एक भुगतान लेनदेन के लिए एक परमाणु लेनदेन के रूप में चलाने के लिए निम्नलिखित 6 प्रश्नों की आवश्यकता होती है:
1. वेयरहाउस में अपसेट करें (w_ytd, w_id) W_ytd + चुनें? 2. चुनें w_street_1, w_street_2, w_city, w_state, w_zip, w_nameFROM वेयरहाउस जहां w_id =?3. जिले में upsert (d_ytd, d_w_id, d_id) D_YTD + का चयन करें? और d_id =? 4. चुनें d_street_1, d_street_2, d_city, d_state, d_zip, जिला _ d_zip, _ और d_id =? 6. ग्राहक में upsert (C_BALANCE, C_YTD_PAYMENT, C_PAYMENT_CNT, C_W_ID, C_D_ID, C_ID) चयन करें? और c_d_id =? और सी_आईडी =? 7. इतिहास में डालें (H_C_D_ID, H_C_W_ID, H_C_ID, H_D_ID, H_W_ID, H_DATE, H_AMOUNTE, H_DATA) मान (?Dell PowerEdge R440 नोड्स पर चलने वाले 3 रीजन सर्वर के साथ, हम निम्नलिखित परिणाम प्राप्त करने में सक्षम थे:
इस ग्राफ़ में, Y-अक्ष उन आदेशों की संख्या का प्रतिनिधित्व करता है जिन्हें प्रति मिनट पूरी तरह से संसाधित किया जा सकता है (नए ऑर्डर निर्माण, भुगतान, वितरण आदि सहित) और tpm-C बेंचमार्क में व्यक्त किया जाता है। एक्स-अक्ष समानांतर में लेनदेन निष्पादित करने वाली संस्थाओं की संख्या का प्रतिनिधित्व करता है।
इन प्रारंभिक परिणामों से संकेत मिलता है कि सिस्टम 150 और 300 लेन-देन करने वालों के बीच एक चरम लेनदेन थ्रूपुट तक पहुंच जाता है और उस चोटी की पहचान करने के लिए आगे के परीक्षण की आवश्यकता होती है।
जैसे-जैसे यह क्षमता परिपक्व होती जाएगी, ओपीडीबी थ्रूपुट और थ्रूपुट को मापने की हमारी क्षमता दोनों में सुधार होगा।
निष्कर्ष
अधिकांश एप्लिकेशन उद्यमों का सामना करने वाली असंख्य जरूरतों का समर्थन करने के लिए लेनदेन का लाभ उठाते हैं। हालाँकि, जब पारंपरिक RDBMS स्केल नहीं कर सकते हैं, तो ग्राहकों को डेटाबेस को मैन्युअल रूप से शार्प करने और प्रत्येक शार्प किए गए डेटाबेस को एक स्वतंत्र डेटाबेस के रूप में प्रबंधित करने के लिए मजबूर किया जाता है।
जब यह प्रबंधन के लिए बहुत बोझिल हो जाता है, तो ग्राहकों को उस एप्लिकेशन को क्लौडेरा के ऑपरेशनल डेटाबेस में माइग्रेट करने पर विचार करना चाहिए। एएनएसआई एसक्यूएल समर्थन और अपाचे एचबेस की स्केल-आउट प्रकृति के साथ जटिल लेनदेन समर्थन एक संयोजन प्रदान करता है जो विकास के प्रबंधन की परिचालन जटिलता को काफी कम कर सकता है।
यदि आप शार्प किए गए डेटाबेस को प्रबंधित करते-करते थक गए हैं और डेटाबेस TCO को कम करना चाहते हैं, तो अपनी Cloudera खाता टीम से संपर्क करके देखें कि हम कैसे मदद कर सकते हैं।