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

Edge for Private Cloud v. 4.17.09

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) कैसंड्रा नोड के आईपी पते को दिखाता है. इसके अलावा, $(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 के उन नोड की कम से कम संख्या के तौर पर परिभाषित किया जाता है जिन्हें किसी ऑपरेशन को पूरा होने के तौर पर मानने से पहले, पढ़ने या लिखने के ऑपरेशन की पुष्टि करनी चाहिए. अलग-अलग Edge की-स्पेस के लिए, डेटा के अद्यतन होने की फ़्रीक्वेंसी के अलग-अलग लेवल असाइन किए जा सकते हैं.

पढ़ने और लिखने के लिए Cassandra से कनेक्ट करते समय, मैसेज प्रोसेसर और मैनेजमेंट सर्वर नोड, आम तौर पर LOCAL_QUORUM की Cassandra वैल्यू का इस्तेमाल करते हैं, ताकि किसी की-स्पेस के लिए कॉन्सिस्टेन्सी लेवल तय किया जा सके. हालांकि, कुछ कीस्पेस को किसी एक के कंसिस्टेंसी लेवल का इस्तेमाल करने के लिए तय किया जाता है.

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

LOCAL_QUORUM = (replication_factor/2) + 1 

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

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

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

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

  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. तीसरे और चौथे चरण को दोहराएं.

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