By Felipe Cardeneti Mendes 2008 में, एपैच कैसेंड्रा ने डेटाबेस स्केलेबलता के लिए एक नया मानक निर्धारित किया। फेसबुक के इनबॉक्स सर्च का समर्थन करने के लिए पैदा हुआ, इसे तब से यूबर, नेटफ्लिक्स, और ऐप्पल जैसे तकनीकी विशालों द्वारा अपनाया गया है - जहां यह विशेषज्ञों द्वारा संचालित किया जाता है जो कैसेंड्रा के योगदानकर्ताओं के रूप में भी कार्य करते हैं (डिटास्टैक्स / आईबीएम के साथ)। लेकिन प्रदर्शन के बारे में क्या? सरलता? दक्षता? लचीलापन? 2015 में, ScyllaDB KVM बनाने और लिनक्स कोर को हैक करने से ताजा, संस्थापक मानते थे कि उनके अंतर्निहित बुनियादी ढांचे से काफी अधिक बिजली निकाल सकती थी. समय आदर्श था: सिर्फ एक साल पहले, नेटफ्लिक्स ने अपने नंबर प्रकाशित किए थे जो दिखाते हैं कि कैसे धक्का देना है यह एक प्रभावशाली उपलब्धि थी, लेकिन एक जो महत्वपूर्ण बुनियादी ढांचे में निवेश और ट्यूनिंग प्रयासों की आवश्यकता थी। Cassandra के उप-आउटमैटिक संसाधन उपयोग से परे जाने के लिए पैदा हुआ कम स्तर की इंजीनियरिंग Apache Cassandra को 1 मिलियन लिखें आरपीएस विचार काफी सरल था (कम से कम सिद्धांत में): एपैच कैसेंड्रा की स्केलेबल आर्किटेक्चर लें और इसे धातु के पास फिर से लागू करें, जबकि वायर प्रोटोकॉल संगतता बनाए रखें। भारी सिस्टम भार के तहत भी सर्वर के पारगमन को अधिकतम किया गया. विवादों को रोकने के लिए, सब कुछ एसिंक्रनाइज़ किया गया था, और इन सभी अनुकूलनों को न्यूनतम ऑपरेटिंग ओवरहेड के लिए स्वायत्त आंतरिक योजनाकारियों के साथ जोड़ा गया था। Shard-per-Core आर्किटेक्चर जबकि मैं कैसेंड्रा की वर्तमान दिशा से बात नहीं कर सकता हूं, तब से ScyllaDB काफी महत्वपूर्ण रूप से विकसित हो गया है - " ” अपने स्वयं के पहचान और अद्वितीय फ़ीचर सेट के साथ एक डेटाबेस के लिए एक तेजी से Cassandra कार्यान्वयन। सिर्फ स्पॉयलर: इस वीडियो में, मैं आपको ScyllaDB के बीच कुछ प्रमुख अंतरों के माध्यम से चलता हूं और यह Apache Cassandra से कैसे अलग है. मैं प्रदर्शन, लचीलापन और कार्य भार प्राथमिकताकरण जैसे क्षमताओं में अंतरों पर चर्चा करता हूं. आप देख सकते हैं कि ScyllaDB सीपीयू कोर के लिए डेटा को कैसे मानचित्रित करता है, पैराग्राउंड स्केल करता है, और टॉपोलॉजी में बदलावों को खत्म करता है - जिससे यह भविष्यवाणी योग्य कम लाटेंस के साथ लाखों ओपीएस को संभाल सकता है (और लगातार ट्यूनिंग और बेबी नज़र किए बिना)। ScyllaDB का विकास ScyllaDB की पहली पीढ़ी सब कुछ कच्चे प्रदर्शन के बारे में थी. तब हमने शेड-पर-कोर असंक्रोनिक आर्किटेक्चर, पंक्ति-आधारित कैश, और उन्नत योजनाकारों को पेश किया जो भविष्यवाणी योग्य कम लाटेंस प्राप्त करते हैं। ScyllaDB की दूसरी पीढ़ी का उद्देश्य कैसेंड्रा के साथ फ़ीचर पैराइज़ेशन था, लेकिन हम वास्तव में उससे परे गए। (Cassandra के बारे में) इसी तरह, ScyllaDB ने भी पेश किया एक ही वर्ष में; वे सिर्फ कैसेंड्रा 5 में पेश किए गए थे (कम से कम ) इसके अलावा, हल्के लेनदेन के लिए हमारे Paxos कार्यान्वयन को समाप्त कर दिया गया कैसीनो के विकल्पों के बारे में। व्यावहारिक दृष्टिकोण और उत्पादन के लिए तैयार वैश्विक माध्यमिक सूचकांक अभी भी प्रयोग के रूप में झंडे स्थानीय माध्यमिक सूचियों का समर्थन तीन अलग-अलग Indexing Implementations अधिकतर बाधाएं और सीमाएं तीसरे पीढ़ी ने हमारे बादल में परिवर्तन को चिह्नित किया, साथ ही साथ निरंतर नवाचार. इस समय ScyllaDB Alternator – हमारे DynamoDB संगत एपीआई – को पेश किया गया था. हमने समर्थन जोड़ा 2020 में (कुछ) ) इस अवधि के दौरान, हमने रेखा स्तर की मरम्मत के साथ मरम्मत की गति में नाटकीय रूप से सुधार किया और कार्य भार प्राथमिकता को पेश किया (अगले अनुभाग में इसके बारे में अधिक)। संपीड़न Cassandra ने इसे केवल 2021 में देर से अपनाया एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन एडमिशन ( ) इस अवधि के दौरान, हमने बढ़ती संपीड़न रणनीति (आईसीएस) की पेशकश की, जिससे उपयोगकर्ताओं को अपने स्टोरेज का 70% तक उपयोग करने की अनुमति मिलती है, इससे पहले कि वे विस्तार कर दें. यह बाद में हाइब्रिड संपीड़न रणनीति में विकसित हुआ (और हम अब 90% स्टोरेज उपयोग का समर्थन करते हैं)। कुछ Cassandra अभी भी प्रभावी ढंग से संभालने के लिए संघर्ष करता है हमने भी पेश किया कैंसर से जुड़े अन्य मुद्दों के बारे में, और हम जैसे अवधारणाओं के साथ , BYPASS CACHE, per-query configurable TIMEOUTs, और बहुत कुछ। परिवर्तन डेटा कैप्चर (CDC) CQL प्रोटोकॉल का विस्तार संवेदनशीलता अंत में, हम ScyllaDB की पांचवीं पीढ़ी तक पहुंचते हैं, जो अभी भी विकसित हो रही है। यह चरण रॉफ्ट और टैबलेट के साथ मजबूत स्थिरता और लचीलापन के लिए हमारे मार्ग का प्रतिनिधित्व करता है। सुविधाएं जो ScyllaDB को अलग करती हैं हमारे इंजीनियरों ने पिछले दशक में कई दिलचस्प सुविधाओं को पेश किया है. मेरे पूर्व कैसेंड्रा उपयोगकर्ताओं के साथ बातचीत के आधार पर, मुझे लगता है कि ये यहां चर्चा करने के लिए सबसे दिलचस्प हैं। Tablets Data Distribution प्रत्येक ScyllaDB टेबल को डेटा और लोड को सिस्टम में समान रूप से वितरित करने के लिए छोटे टुकड़ों ("टैबलेट") में विभाजित किया जाता है. टैबलेट्स ScyllaDB को लचीलापन लाते हैं, जिससे आप अप्रत्याशित ट्रैफ़िक की वृद्धि को समायोजित करने के लिए अपने क्लस्टर आकार को तुरंत दोगुना, तीन गुना या 10 गुना बढ़ा सकते हैं। रॉफ्ट-आधारित: मेटाडेटा के लिए मजबूत स्थिरता रॉफ्ट ScyllaDB के मेटाडेटा के लिए मजबूत स्थिरता पेश करता है. वे दिन गायब हैं जब एक योजना परिवर्तन आपके क्लस्टर को असहमति में डाल सकता है या आप पहुंच खो देंगे क्योंकि आप अपने प्रामाणिकता कीवर्ड स्पेस के पुनरावृत्ति कारक को अपडेट करने के लिए भूल गए हैं (विश्वास जो अभी भी कैसेंड्रा को परेशान करते हैं)। Workload Prioritization आप एक ही क्लस्टर के तहत कई कार्य भारों को एकीकृत करने की अनुमति देता है, प्रत्येक अपने स्वयं के एसएलए के साथ। मूल रूप से, यह नियंत्रित करता है कि विभिन्न कार्य भार सिस्टम संसाधनों के लिए कैसे प्रतिस्पर्धा करते हैं. टीमों को त्वरित प्रतिक्रिया समय की आवश्यकता वाले तत्काल अनुप्रयोग अनुरोधों को प्राथमिकता देने के लिए इसका उपयोग करने के लिए उपयोग किया जाता है, दूसरों के विपरीत जो हल्के देरी (उदाहरण के लिए, बड़े स्कैनिंग) को सहन कर सकते हैं। नौकरी की प्राथमिकता Repair-based Operations मरम्मत आधारित ऑपरेशन सुनिश्चित करते हैं कि आपके क्लस्टर डेटा सामंजस्य में रहते हैं, यहां तक कि टोपोलॉजी परिवर्तन के दौरान भी। , जहां विफल नोड्स को बदलने जैसे ऑपरेशन हो सकते हैं ScyllaDB भी पूरी तरह से डेटा पुनरुत्थान की समस्या को खत्म करता है, धन्यवाद . Apache Cassandra में लंबे समय से मौजूद डेटा स्थिरता दोष result in data loss मरम्मत आधारित कब्र पत्थर कचरा संग्रह Incremental Compaction बढ़ती संपीड़न (ICS) पांच से अधिक वर्षों से ScyllaDB में डिफ़ॉल्ट संपीड़न रणनीति है. ICS अस्थायी अंतरिक्ष संपीड़न को बहुत कम करता है, जिसके परिणामस्वरूप उपयोगकर्ता डेटा को संग्रहीत करने के लिए अधिक डिस्क स्थान उपलब्ध होता है - और यह आपके ड्राइव में 50% मुक्त स्थान की सामान्य आवश्यकता को खत्म करता है। Row-based Cache ScyllaDB की पंक्ति-आधारित कैश भी अद्वितीय है. यह डिफ़ॉल्ट रूप से सक्षम है और मैन्युअल ट्यूनिंग की आवश्यकता नहीं है. एक्सटेंशन, आप महत्वपूर्ण आइटम को अयोग्य होने से रोककर कैश प्रदूषण को रोक सकते हैं। डिस्क से डेटा प्राप्त करते समय आई / ओ एक्सेस समय को काफी कम करता है। बाइपस कैश SSTABLE INDEX CACHING का उपयोग करें Per-shard Concurrency Limits and Rate Limiters ScyllaDB अप्रत्याशित स्पीक से बचाने के लिए प्रति विभाजन प्रति शेड समकक्ष सीमाओं और दर सीमाओं को शामिल करता है. चाहे एक गलत व्यवहार वाले क्लाइंट या एक विशिष्ट कुंजी के लिए अनुरोधों की बाढ़ से निपटने के लिए, ScyllaDB स्थिरता सुनिश्चित करता है जहां Cassandra अक्सर कम होता है। DynamoDB Compatibility ScyllaDB एक DynamoDB संगत परत भी प्रदान करता है, जो अपने Apache Cassandra मूलों से खुद को और अधिक दूर करता है. यह टीमों को किसी भी क्लाउड या on-prem पर अपने DynamoDB कार्य भार चलाने की अनुमति देता है - बिना कोड परिवर्तन के, और 50% कम लागत के साथ। अगला क्या है? हाल ही में Monster SCALE शिखर सम्मेलन में, सीईओ / सह-संस्थापक डोर लॉर ने ScyllaDB के लिए क्या अगला है पर एक नज़र डाला। अब तैयार हो जाओ (देखें) और विवरण के लिए): ब्लॉग पोस्ट उत्पाद पृष्ठ 90% भंडारण उपयोग के साथ सुरक्षित चलाने की क्षमता मिश्रित उदाहरण प्रकार नोड्स के साथ क्लस्टर का समर्थन गतिशील आपूर्ति और लचीला क्रेडिट Vector खोज लंबी अवधि: मजबूत स्थिरता तालिकाएं गलत इंजेक्शन सेवा साफ मरम्मत भंडारण और भंडारण मजबूत स्थिरता के लिए टेबल लंबी अवधि कई कुंजी लेनदेन UDFs के साथ विश्लेषण और परिवर्तन स्वचालित बड़े विभाजन संतुलन अधिक स्थिरता और विश्वसनीयता के लिए स्थिर बुनियादी ढांचे अधिक लचीला और कुशल ढांचा परिवर्तन के लिए एक पुनरावृत्ति मोड विवरण के लिए, यहां पूरी बातचीत देखें: बंद करने के लिए, ScyllaDB Cassandra की तुलना में तेजी से (मैं जल्द ही यहां अपने नवीनतम संदर्भ परिणामों को साझा करूंगा)। लेकिन ScyllaDB और Cassandra दोनों इस बिंदु पर विकसित हुए हैं कि ScyllaDB अब "केवल" एक तेज़ Cassandra नहीं है. हम Cassandra से परे विकसित हुए हैं. यदि आपके प्रोजेक्ट को अधिक भविष्यवाणी योग्य प्रदर्शन की आवश्यकता है - और / या लचीलापन, दक्षता और सरलता अनुकूलन से लाभ उठा सकते हैं जो हम वर्षों से ध्यान केंद्रित कर रहे हैं - तो आप Cassandra से परे विकसित करने पर भी विचार करना चाहते हैं। है ScyllaDB के बारे में अधिक जानने के लिए, देखें https://www.scylladb.com/ आप मुफ्त डेटाबेस किताबों, मास्टरक्लास और अधिक तक पहुंच सकते हैं https://resources.scylladb.com/ https://www.scylladb.com/ https://resources.scylladb.com/