2013-05-07 10 views
8

Apache Cassandra समर्थन sharding?क्या कैसंद्रा शेर्डिंग का समर्थन करता है?

क्षमा करें कि यह प्रश्न छोटा लगता है, लेकिन मुझे जवाब नहीं मिल रहा है। मैंने पढ़ा है कि कैसंद्रा को आंशिक रूप से जीएई की बिग टेबल के बाद मॉडलिंग किया गया था जो बड़े पैमाने पर shards। लेकिन अधिकांश दस्तावेज जिन्हें मैं वर्तमान में कैसंद्रा पर ढूंढ रहा हूं, ऐसा लगता है कि कैसंड्रा कई मशीनों पर डेटा क्षैतिज रूप से विभाजित नहीं करता है, बल्कि कई डुप्लिकेट मशीनों का समर्थन करता है। इसका मतलब यह होगा कि कैसंद्रा एक अच्छी फिट उच्च उपलब्धता पढ़ता है, लेकिन अगर अंतराल की मात्रा बहुत अधिक हो गई तो अंततः टूट जाएगी।

उत्तर

13

कैसंड्रा नोड्स में विभाजन करता है (क्योंकि यदि आप इसे विभाजित नहीं कर सकते हैं तो आप इसे स्केल नहीं कर सकते हैं)। एक कैसंद्रा क्लस्टर के लिए सभी डेटा "अंगूठी" पर विभाजित होता है और अंगूठी पर प्रत्येक नोड एक या अधिक महत्वपूर्ण श्रेणियों के लिए ज़िम्मेदार होता है। आपके पास पार्टिशनर (जैसे रैंडम, ऑर्डर) पर नियंत्रण है और अंगूठी पर कितने नोड्स आपकी आवश्यकताओं के आधार पर एक कुंजी/कॉलम को दोहराया जाना चाहिए।

इसमें एक बहुत अच्छा अवलोकन शामिल है। Basic architecture

इसके अलावा, मैं अत्यधिक डायनेमो व्हाइट पेपर पढ़ने की सलाह देता हूं। जबकि कैसंद्रा कई तरीकों से डायनेमो से अलग है, अवधारणात्मक रूप से वे एक ही जड़ों से निकलते हैं। इसे देखें: Dynamo White Paper

+0

ठीक है, मुख्य प्रश्न: ओलॉग (एन) समय में ऑपरेटरों से अधिक और कम का उपयोग कर कैसंड्रा पूछताछ की जा सकती है? –

+0

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

+0

क्या विभाजित डेटा सभी नोड्स (प्रतिकृति के लिए सेटअप) पर दोहराया जाता है? – user3587180

-3

हां, कैसंद्रा शेरिंग का समर्थन करता है, लेकिन अपने तरीके से।

मोंगोडब में प्रत्येक माध्यमिक नोड में प्राथमिक नोड का पूरा डेटा होता है लेकिन कैसंद्रा में, प्रत्येक माध्यमिक नोड में डेटा के केवल कुछ महत्वपूर्ण विभाजन रखने की ज़िम्मेदारी होती है।

+7

आप मोंगोडीबी [* प्रतिकृति *] (http://docs.mongodb.org/manual/replication/) (जहां सेकेंडरी में अनावश्यकता के लिए डेटा की पूरी प्रतिलिपि होती है) को भंग कर रहे हैं [* sharding के साथ *] (http://docs.mongodb.org/manual/sharding/) (मशीनों के समूह में लॉजिकल डेटाबेस का विभाजन)। आम तौर पर यदि आप sharding हैं तो आप एक प्रतिलिपि सेट द्वारा समर्थित प्रत्येक शार्ड भी चाहते हैं, लेकिन दोनों अवधारणा वास्तव में ऑर्थोगोनल हैं। – Stennie

संबंधित मुद्दे