paint-brush
एसिड लेनदेन अपाचे कैसेंड्रा में आ रहे हैं: यही कारण है कि हम उत्साहित हैंद्वारा@datastax
4,701 रीडिंग
4,701 रीडिंग

एसिड लेनदेन अपाचे कैसेंड्रा में आ रहे हैं: यही कारण है कि हम उत्साहित हैं

द्वारा DataStax7m2023/02/23
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

एकॉर्ड नामक एक असाधारण कंप्यूटर विज्ञान की सफलता विश्व स्तर पर उपलब्ध, सामान्य-उद्देश्य वाले एसीआईडी लेनदेन को अगले कैसेंड्रा रिलीज में ला रही है। यह नए उपयोग के मामलों को खोलकर कैसेंड्रा को बदलने में मदद करेगा कि हम डेटा के बारे में कैसे सोचते हैं। डेवलपर्स जो कैसंड्रा के पैमाने, लचीलापन और प्रसिद्ध मल्टी-डेटा सेंटर को वित्तीय लेनदेन जैसी किसी चीज़ पर काम करने के लिए समर्थन देना चाहते हैं, उन्हें जटिल वर्कअराउंड का एक गुच्छा कोड करना था।
featured image - एसिड लेनदेन अपाचे कैसेंड्रा में आ रहे हैं: यही कारण है कि हम उत्साहित हैं
DataStax HackerNoon profile picture
An extraordinary computer science breakthrough called Accord is bringing globally available, general-purpose ACID transactions to the next Cassandra release


आइए सबसे पहले सबसे अच्छा हिस्सा निकालें। अपाचे कैसेंड्रा में एसीआईडी लेनदेन आ रहे हैं।


विश्व स्तर पर उपलब्ध, सामान्य-उद्देश्य वाले लेन-देन जो कैसेंड्रा के काम करने के तरीके पर काम करते हैं। यह ठीक प्रिंट या पुरानी तकनीकों के अनुप्रयोग के साथ कोई ट्रिक नहीं है।


यह ऐप्पल और मिशिगन विश्वविद्यालय की एक टीम से एकॉर्ड नामक एक असाधारण कंप्यूटर विज्ञान की सफलता के कारण है। यह नए उपयोग के मामलों को खोलकर कैसेंड्रा को बदलने में मदद करेगा कि हम डेटा के बारे में कैसे सोचते हैं।


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


समझौते के साथ? कोई समझौता नहीं। कैसेंड्रा अब हर उस चीज का समर्थन करेगा जिसने लेनदेन समर्थन को डेटाबेस में स्थानांतरित करते हुए इसे अद्भुत बना दिया है, कोड जटिलता को काफी कम कर दिया है।

पर्यवेक्षक की नजर

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


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


अधिक संवेदनशील संचालन में, डेटा परिवर्तन के पर्यवेक्षक को यह महसूस करने की आवश्यकता होती है कि वे डेटाबेस का उपयोग करने वाली एकमात्र प्रक्रिया हैं। यह कंप्यूटर विज्ञान में "आइसोलेशन" नामक एक अवधारणा है; यह ACID (परमाणुता, संगति, अलगाव, स्थायित्व) में "I" है।


एक क्लासिक उदाहरण एक बैंक हस्तांतरण है जहां पैसा एक बैंक खाते से घटाया जाता है और फिर दूसरे में जोड़ा जाता है - ठीक उसी क्रम में। अवलोकन प्रक्रिया को अन्य प्रक्रियाओं से बचने के लिए विशिष्टता की आवश्यकता होती है जो परिवर्तन करने वाली विसंगतियों या आश्चर्य का कारण बन सकती हैं।


आश्चर्यजनक रूप से अनजाने में एक ऐसे खाते से स्थानांतरण की अनुमति देना शामिल है जो $0 से नीचे चला गया है।


अलगाव गारंटी देता है कि केवल एक प्रक्रिया एक समय में परिवर्तन कर सकती है, और यदि दो समान डेटा के लिए प्रतिस्पर्धा कर रहे हैं, तो उनमें से एक को दूसरे को पूरा करने के लिए इंतजार करना होगा।

अपने आलस्य को गले लगाओ

डेवलपर्स को एक ऐसी प्रणाली के साथ तेजी से आगे बढ़ने की जरूरत है जिस पर वे भरोसा कर सकें। लगभग 50 वर्षों के लिए डेटाबेस सिस्टम के भीतर ACID लेनदेन विश्वास का स्वर्ण मानक रहा है। डेवलपर्स आवश्यकताओं के आधार पर ट्रेड-ऑफ के माध्यम से काम करते हैं, कभी-कभी उन्हें उन प्रणालियों के साथ काम करने के लिए प्रेरित करते हैं जो एसीआईडी लेनदेन का समर्थन नहीं करते हैं।


NoSQL सिस्टम के साथ, लेन-देन का त्याग करते हुए ऐतिहासिक रूप से ट्रेड-ऑफ बायसेस को स्केल और अपटाइम की ओर ले जाया जाता है।


कैसेंड्रा में एसीआईडी लेनदेन लाना व्यापार-नापसंद को कम करने के बारे में है। कैसंड्रा के पास पहले से ही सबसे खराब परिदृश्यों में अपटाइम बनाए रखते हुए रैखिक स्केलिंग के लिए एक ठोस प्रतिष्ठा है।

Cassandra पसंद किया गया है जब आप एक डेटाबेस की जरूरत है जो इंटरनेट वितरित कर सकता है। अप्रत्याशित रूप से, लेन-देन की आवश्यकता डेवलपर्स के लिए व्यापार बंद संघर्ष का स्रोत रही है।

क्या हम आम सहमति प्राप्त कर सकते हैं?

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


Paxos 2013 में कैसेंड्रा द्वारा "हल्के लेनदेन" के लिए अपनाया गया एक लंबे समय से स्थापित आम सहमति प्रोटोकॉल रहा है।


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


पैक्सोस को बदलने के लिए रफ प्रोटोकॉल को अगली पीढ़ी के रूप में विकसित किया गया था, और Etcd, कॉकरोचडीबी और डायनेमोडीबी जैसी कई प्रणालियों ने इसे अपनाया। इसने निर्वाचित नेता बनाकर राउंड ट्रिप को कम कर दिया।


इस दृष्टिकोण में कैसेंड्रा के लिए नकारात्मक पक्ष यह है कि नेता डेटा केंद्रों का विस्तार नहीं करेंगे, इसलिए कई नेताओं की आवश्यकता होती है ( स्पैनर देखें)।


एक निर्वाचित नेता का होना कैसेंड्रा के "साझा-कुछ नहीं" सिद्धांतों का भी उल्लंघन करता है और विफलता से निपटने के लिए नई आवश्यकताओं को पूरा करेगा।


यदि एक नोड नीचे जाता है, तो एक नया नेता चुना जाना चाहिए।


अन्य डेटाबेस - FaunaDB और FoundationDB, उदाहरण के लिए - केल्विन पेपर में वर्णित एक एकल, वैश्विक नेता को कम करके मल्टीलेडर समस्या को हल करने की कोशिश के मार्ग से नीचे चले गए हैं।


क्योंकि ये अलग-अलग आवश्यकताओं के साथ अन्य डेटाबेस के लिए बनाए गए थे, उन मामलों में उपयोग किए जाने वाले दृष्टिकोण मानदंड को पूरा करने में विफल रहे, कैसेंड्रा विफलता मोड के साथ अपेक्षा करता है।


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

क्या हम एक समझौते पर पहुंच गए हैं?

कैसंड्रा परियोजना के लिए क्या स्वीकार्य है, इस पर हम बहुत राय बना सकते हैं। हमारे मानदंड मुख्य मान्यताओं के बारे में हैं कि वितरित सिस्टम को कैसे चलाना चाहिए। एक या अधिक डेटा केंद्रों में एकाधिक नोड्स संचालित करते समय प्रदर्शन और स्केलिंग को हमेशा संरक्षित रखा जाना चाहिए। हम काफी मांग कर सकते हैं, लेकिन यह कैसेंड्रा को इतने सारे संगठनों के लिए पसंद बनाता है।


आम सहमति प्रोटोकॉल के पिछले पुनरावृत्तियों ने समस्या के विभिन्न भागों को हल किया, लेकिन प्रत्येक ने एक व्यापार-बंद प्रस्तुत किया जो कैसेंड्रा के कुछ मूल्यों का उल्लंघन करेगा। यह कहा गया है कि अगली बड़ी सफलता आखिरी से दो पेपर दूर है। इस मामले में, पेपर एकॉर्ड था, और इसने ट्रेडऑफ़ को खत्म करने के लिए एक बड़ा स्वाइप किया।


समझौता दो समस्याओं को संबोधित करता है जो पिछले आम सहमति प्रोटोकॉल में हल नहीं हुई हैं: हम वैश्विक स्तर पर उपलब्ध सहमति कैसे प्राप्त कर सकते हैं और इसे एक दौर की यात्रा में प्राप्त कर सकते हैं? पहला नया तंत्र रीऑर्डर बफर है।


यह मानते हुए कि कमोडिटी हार्डवेयर उपयोग में है, नोड्स के बीच घड़ियों में अंतर अपरिहार्य है। रीऑर्डर बफ़र उनके बीच विलंबता के अलावा नोड्स के बीच अंतर को मापता है। टाइमस्टैम्प प्रोटोकॉल के साथ एक राउंड-ट्रिप आम सहमति की गारंटी देते हुए, प्रत्येक प्रतिकृति इस जानकारी का उपयोग प्रत्येक नोड से डेटा को सही ढंग से व्यवस्थित करने और मतभेदों के लिए खाता करने के लिए कर सकती है।


अन्य तंत्र तेज-पथ मतदाता है। फिर से शुरू करने से पहले एक नए नेता का चुनाव करते समय विफलता मोड विलंबता पैदा कर सकता है। कैसेंड्रा द्वारा सहन की गई विफलता के समान स्तर के तहत कोरम के लिए एक नेतृत्व रहित तेज़ पथ बनाए रखने के लिए फास्ट-पाथ मतदाता कुछ उपन्यास कार्यान्वयन के साथ कैसेंड्रा में पहले से मौजूद सुविधाओं का उपयोग करते हैं। अधिक जानकारी प्रस्ताव में पढ़ी जा सकती है।

यह कैसे काम करता है?

डेवलपर उत्पादकता में सबसे बड़ा प्रभाव होगा, तो देखते हैं कि व्यवहार में यह कैसा दिखता है। निम्नलिखित बैंक खाता हस्तांतरण उदाहरण पर विचार करें जिसका हमने पहले उल्लेख किया था:

पहला नया सिंटैक्स है जिसे आप कैसेंड्रा क्वेरी लैंग्वेज (CQL) में देखेंगे। लेन-देन एक BEGIN TRANSACTION और COMMIT TRANSACTION घोषणा में निहित हैं। लेन-देन मार्करों के अंदर सब कुछ परमाणु रूप से अन्य प्रक्रियाओं से अलगाव में होगा। हम इस उदाहरण में ऐलिस के खाते से बॉब को $20 स्थानांतरित करेंगे। इससे ज्यादा क्लासिक नहीं मिलता है!

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


इस मामले में, हम यह देखने के लिए परीक्षण करेंगे कि बॉब को स्थानांतरित करने से पहले ऐलिस के खाते में $20 हैं या नहीं। यदि ऐसा है, तो एक UPDATE ऐलिस के खाते की शेष राशि को $20 से घटा देता है और फिर बॉब के खाते की शेष राशि को $20 बढ़ा देता है। यदि ऐलिस के पास $20 से कम होता, तो परिवर्तन नहीं होते।

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


कैसंड्रा इसी तरह से काम करना पसंद करती है, लेकिन हमने विश्व स्तर पर उपलब्ध लेनदेन के साथ अपने खेल में सुधार किया है।

आगे क्या होगा

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


आप में से बाकी लोगों के लिए, जैसे-जैसे हम रिलीज के समय के करीब आते हैं, हमारे पास आपके उपयोग और परीक्षण के लिए बिल्ड उपलब्ध होंगे। यह कैसेंड्रा के लिए एक गेम-चेंजर होगा, और मुझे यकीन है कि आप इसे अपने लिए देखना चाहेंगे।

मुझे समुदाय से यह सुनने में सबसे अधिक दिलचस्पी है कि कैसेंड्रा से अपेक्षित गति और लचीलापन पर चलने वाले विश्व स्तर पर उपलब्ध लेनदेन के साथ आपको कौन से उपयोग के मामले मिलेंगे। क्या अंततः उन अंतिम रिलेशनल डेटाबेस वर्कलोड को जाने देने का समय आ गया है?


हम अपाचे सॉफ्टवेयर फाउंडेशन स्लैक या प्रोजेक्ट मेलिंग लिस्ट सहित अपने सभी चैनलों पर आपकी प्रतिक्रिया सुनने के लिए भी उत्सुक हैं। एक ओपन सोर्स प्रोजेक्ट की विशेषताएं उपयोगकर्ताओं की जरूरतों को पूरा करने के लिए लगातार विकसित हो रही हैं। इसलिए आपको भविष्य के लिए अपाचे कैसेंड्रा को आकार देने में महत्वपूर्ण भूमिका निभानी है।


और अधिक उपयोग मामलों और जानकारी के लिए हमारे साथ बने रहें क्योंकि हम इस रोमांचक नई सुविधा को विकसित करते हैं। आप उम्मीद कर सकते हैं कि 14 मार्च को होने वाले कैसेंड्रा फॉरवर्ड डिजिटल समिट में इस बारे में कई बातें होंगी। आप उन्हें मिस नहीं करना चाहेंगे।


पैट्रिक मैकफैडिन, डेटास्टैक्स द्वारा



पैट्रिक मैकफैडिन ओ'रेली पुस्तक 'मैनेजिंग क्लाउड नेटिव डेटा ऑन कुबेरनेट्स' के सह-लेखक हैं। वह वर्तमान में डेवलपर संबंधों में डेटास्टैक्स में और अपाचे कैसेंड्रा परियोजना में योगदानकर्ता के रूप में काम करता है। पैट्रिक ने अपाचे कैसेंड्रा के लिए मुख्य इंजीलवादी के रूप में काम किया है (वह एक नवनिर्मित कैसेंड्रा कमिटर भी है!) और डेटास्टैक्स के सलाहकार के रूप में, जहां उनके पास उत्पादन में कुछ सबसे बड़ी तैनाती का निर्माण करने का एक अच्छा समय था।