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

Edge for Private Cloud v. 4.17.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 से कनेक्ट करने पर, मैसेज प्रोसेसर और मैनेजमेंट सर्वर नोड आम तौर पर कीस्पेस के लिए कंसिस्टेंसी लेवल तय करने के लिए LOCAL_QUORUM की कैसेंड्रा वैल्यू का इस्तेमाल करते हैं. हालांकि, कुछ कीस्पेस को एक के कंसिस्टेंश लेवल का इस्तेमाल करने के लिए तय किया गया है.

किसी डेटा सेंटर के लिए LOCAL_QUORUM की वैल्यू का हिसाब लगाने का तरीका:

LOCAL_QUORUM = (replication_factor/2) + 1 

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

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

एक जैसी सुविधाओं के लेवल को LOCAL_QUORUM के तौर पर तय करने से Edge, कई डेटा सेंटर पर कार्रवाइयों की पुष्टि करने में लगने वाले समय से बचा जा सकता है. अगर किसी कीस्पेस ने कंसिस्टेंसी लेवल के तौर पर कैसंड्रा 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. तीसरे और चौथे चरण को दोहराएं.

क्लस्टर में अतिरिक्त Cassandra नोड जोड़ने पर, डेटा के एक जैसे होने के लेवल पर कोई असर नहीं पड़ता.