Edge for Private Cloud v4.18.05
Cassandra के रिप्लिकेशन फ़ैक्टर के बारे में जानकारी
Cassandra, डेटा की कॉपी को कई नोड पर सेव करता है, ताकि डेटा को भरोसेमंद और गड़बड़ी के हिसाब से बनाए रखा जा सके. हर Edge की-स्पेस के लिए, कॉपी बनाने की रणनीति से यह तय होता है कि कॉपी कहां रखी जाएंगी.
Cassandra क्लस्टर में किसी की-स्पेस के लिए, रिप्लिक की कुल संख्या को की-स्पेस का रिप्लिकेशन फ़ैक्टर कहा जाता है. एक के रिप्लिकेशन फ़ैक्टर का मतलब है कि Cassandra क्लस्टर में हर पंक्ति की सिर्फ़ एक कॉपी है. दो का रिप्लिकेशन फ़ैक्टर होने का मतलब है कि हर पंक्ति की दो कॉपी हैं, जहां हर कॉपी अलग-अलग नोड पर है. सभी रेप्लिक एक जैसे ही अहम होते हैं. इसमें कोई प्राइमरी या मास्टर रेप्लिक नहीं होता.
हर डेटा सेंटर में तीन या उससे ज़्यादा Cassandra नोड वाले प्रोडक्शन सिस्टम में, Edge की-स्पेस के लिए डिफ़ॉल्ट रिप्लिकेशन फ़ैक्टर तीन होता है. आम तौर पर, क्लस्टर में Cassandra नोड की संख्या से ज़्यादा, रिप्लिकेशन फ़ैक्टर नहीं होना चाहिए.
Cassandra स्कीमा देखने के लिए, नीचे दिया गया तरीका अपनाएं. यह स्कीमा, हर Edge की-स्पेस के लिए डुप्लीकेट बनाने का फ़ैक्टर दिखाता है:
- Cassandra नोड में लॉग इन करें.
- यह कमांड चलाएं:
/opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"
यहां
$(hostname -i)
, Cassandra नोड के आईपी पते पर रीज़ॉल्व होता है. इसके अलावा,$(hostname -i)
को नोड के आईपी पते से बदला जा सकता है.
हर कीस्पेस के लिए, आपको इस फ़ॉर्म में आउटपुट दिखेगा:
create keyspace kms with placement_strategy = 'NetworkTopologyStrategy' and strategy_options = {dc-1 : 3} and durable_writes = true;
यहां देखा जा सकता है कि डेटा सेंटर 1, dc-1
के लिए,
kms
की-स्पेस के लिए डिफ़ॉल्ट रीप्लिकेशन फ़ैक्टर तीन है. ऐसा इसलिए है, क्योंकि इसमें तीन Cassandra नोड वाले इंस्टॉलेशन का इस्तेमाल किया गया है.
क्लस्टर में Cassandra के अतिरिक्त नोड जोड़ने पर, डिफ़ॉल्ट रीप्लिकेशन फ़ैक्टर पर असर नहीं पड़ता.
उदाहरण के लिए, अगर Cassandra नोड की संख्या को छह पर बढ़ाया जाता है, लेकिन डुप्लीकेट कॉपी बनाने की संख्या को तीन पर ही छोड़ा जाता है, तो यह पक्का नहीं किया जा सकता कि सभी Cassandra नोड में पूरे डेटा की कॉपी मौजूद है. अगर कोई नोड बंद हो जाता है, तो रीप्लिकेशन फ़ैक्टर ज़्यादा होने का मतलब है कि नोड पर मौजूद डेटा, बाकी बचे किसी नोड पर मौजूद है. डेटा को कॉपी करने की फ़्रीक्वेंसी जितनी ज़्यादा होगी, डेटा को लिखने में उतना ही ज़्यादा समय लगेगा.
Cassandra के कॉन्सिस्टेन्सी लेवल के बारे में जानकारी
Cassandra के कॉन्सिस्टेंशिलिटी लेवल को, Cassandra के उन नोड की कम से कम संख्या के तौर पर परिभाषित किया जाता है जिन्हें किसी ऑपरेशन को पूरा होने के तौर पर मानने से पहले, पढ़ने या लिखने के ऑपरेशन की पुष्टि करनी चाहिए. अलग-अलग Edge की-स्पेस के लिए, डेटा के सिंक होने की अलग-अलग स्थितियां असाइन की जा सकती हैं.
पढ़ने और लिखने के लिए Cassandra से कनेक्ट करते समय, मैसेज प्रोसेसर और मैनेजमेंट
सर्वर नोड, आम तौर पर किसी कीस्पेस के लिए एक जैसे होने के लेवल की जानकारी देने के लिए, Cassandra की वैल्यू LOCAL_QUORUM
का इस्तेमाल करते हैं. हालांकि, कुछ कीस्पेस को एक के कंसिस्टेंश लेवल का इस्तेमाल करने के लिए तय किया गया है.
किसी डेटा सेंटर के लिए LOCAL_QUORUM
की वैल्यू का हिसाब लगाने का तरीका:
LOCAL_QUORUM = (replication_factor/2) + 1
जैसा कि ऊपर बताया गया है, तीन Cassandra नोड वाले Edge प्रोडक्शन एनवायरमेंट के लिए, डिफ़ॉल्ट रीप्लिकेशन फ़ैक्टर तीन होता है. इसलिए, LOCAL_QUORUM
की डिफ़ॉल्ट वैल्यू =
(3/2) +1 = 2 (वैल्यू को पूर्णांक में बदल दिया गया है).
LOCAL_QUORUM
= 2 के साथ, डेटा सेंटर में मौजूद तीन Cassandra नोड में से कम से कम दो को, पढ़ने/लिखने के ऑपरेशन का जवाब देना होगा, ताकि ऑपरेशन पूरा हो सके. तीन नोड वाले Cassandra क्लस्टर के लिए, क्लस्टर में हर डेटा सेंटर में एक नोड के बंद होने की समस्या को हल किया जा सकता है.
एक जैसा डेटा होने के लेवल को LOCAL_QUORUM
के तौर पर तय करके, Edge कई डेटा सेंटर में ऑपरेशन की पुष्टि करने के लिए ज़रूरी इंतज़ार का समय कम कर देता है. अगर किसी की-स्पेस में, एक जैसा डेटा उपलब्ध कराने के लेवल के तौर पर Cassandra की QUORUM
वैल्यू का इस्तेमाल किया गया है, तो सभी डेटा सेंटर में, पढ़ने/लिखने के ऑपरेशन की पुष्टि की जानी होगी.
Edge Message Processor या मैनेजमेंट सर्वर नोड के इस्तेमाल किए गए कंसिस्टेंसी लेवल को देखने के लिए:
- मैसेज प्रोसेसर नोड में लॉग इन करें.
- /opt/apigee/edge-message-processor/conf डायरेक्ट्री में बदलें:
cd /opt/apigee/edge-message-processor/conf
- एक जैसा लिखने के लिए:
grep -ri "write.consistencylevel" *
- एक जैसी क्वालिटी में पढ़ने के लिए:
grep -ri "read.consistencylevel" *
- मैनेजमेंट सर्वर नोड में लॉग इन करें.
- /opt/apigee/edge-management-server/conf डायरेक्ट्री पर जाएं:
cd /opt/apigee/edge-management-server/conf
- तीसरे और चौथे चरण को दोहराएं.
क्लस्टर में अतिरिक्त Cassandra नोड जोड़ने पर, डेटा के एक जैसे होने के लेवल पर कोई असर नहीं पड़ता.