Cassanda Replication Factor और Consistence लेवल के बारे में जानकारी

Edge for Private Cloud v4.18.01

Cassandra के रिप्लिकेशन फ़ैक्टर के बारे में जानकारी

Cassandra, डेटा की कॉपी को कई नोड पर सेव करता है, ताकि डेटा को भरोसेमंद और गड़बड़ी के हिसाब से बनाए रखा जा सके. हर Edge की-स्पेस के लिए, कॉपी बनाने की रणनीति से यह तय होता है कि रिप्लिकेशन किन नोड पर रखे जाएं.

Cassandra क्लस्टर में किसी की-स्पेस के लिए, रिप्लिक की कुल संख्या को की-स्पेस का रिप्लिकेशन फ़ैक्टर कहा जाता है. एक के रिप्लिकेशन फ़ैक्टर का मतलब है कि Cassandra क्लस्टर में हर पंक्ति की सिर्फ़ एक कॉपी है. दो का रिप्लिकेशन फ़ैक्टर होने का मतलब है कि हर पंक्ति की दो कॉपी हैं, जहां हर कॉपी अलग-अलग नोड पर है. सभी रेप्लिक एक जैसे ही अहम होते हैं. इसमें कोई प्राइमरी या मास्टर रेप्लिक नहीं होता.

हर डेटा सेंटर में तीन या उससे ज़्यादा Cassandra नोड वाले प्रोडक्शन सिस्टम में, Edge की-स्पेस के लिए डिफ़ॉल्ट रिप्लिकेशन फ़ैक्टर तीन होता है. आम तौर पर, क्लस्टर में Cassandra नोड की संख्या से ज़्यादा, रिप्लिकेशन फ़ैक्टर नहीं होना चाहिए.

Cassandra स्कीमा देखने के लिए, नीचे दिया गया तरीका अपनाएं. यह स्कीमा, हर Edge की-स्पेस के लिए डुप्लीकेट बनाने का फ़ैक्टर दिखाता है:

  1. Cassandra नोड में लॉग इन करें.
  2. यह कमांड चलाएं:
    > /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

जैसा कि ऊपर बताया गया है, तीन कैसंड्रा नोड वाले Edge प्रोडक्शन एनवायरमेंट के लिए, डिफ़ॉल्ट रेप्लिकेशन फ़ैक्टर तीन है. इसलिए, LOCAL_QUORUM की डिफ़ॉल्ट वैल्यू = (3/2) +1 = 2 (वैल्यू को पूर्णांक में बदल दिया गया है).

LOCAL_QUORUM = 2 होने पर, डेटा सेंटर के तीन कैसंड्रा नोड में से कम से कम दो को कार्रवाई के सफल होने के लिए, रीड/राइट कार्रवाई का जवाब देना चाहिए. तीन नोड वाले Cassandra क्लस्टर के लिए, क्लस्टर में हर डेटा सेंटर में एक नोड के बंद होने की समस्या को हल किया जा सकता है.

एक जैसा डेटा होने के लेवल को LOCAL_QUORUM के तौर पर तय करके, Edge कई डेटा सेंटर में ऑपरेशन की पुष्टि करने के लिए ज़रूरी इंतज़ार का समय कम कर देता है. अगर किसी की-स्पेस में, एक जैसा डेटा उपलब्ध कराने के लेवल के तौर पर Cassandra की QUORUM वैल्यू का इस्तेमाल किया गया है, तो सभी डेटा सेंटर में, पढ़ने/लिखने के ऑपरेशन की पुष्टि करनी होगी.

Edge Message Processor या मैनेजमेंट सर्वर नोड के इस्तेमाल किए गए कंसिस्टेंसी लेवल को देखने के लिए:

  1. मैसेज प्रोसेसर नोड में लॉग इन करें.
  2. इसे /opt/apigee/Edge-message-processor/conf डायरेक्ट्री में बदलें:
    > cd /opt/apigee/edge-message-processor/conf
  3. एक जैसा लिखने के लिए:
    > grep -ri "write.consistencylevel" *
  4. एक जैसी क्वालिटी में पढ़ने के लिए:
    > grep -ri "read.consistencylevel" *
  5. मैनेजमेंट सर्वर नोड में लॉग इन करें.
  6. /opt/apigee/edge-management-server/conf डायरेक्ट्री पर जाएं:
    > cd /opt/apigee/edge-management-server/conf
  7. तीसरे और चौथे चरण को दोहराएं.

अगर आप क्लस्टर में अतिरिक्त कैसंड्रा नोड जोड़ते हैं, तो स्थिरता का स्तर प्रभावित नहीं होता है.