कैसंड्रा रेप्लिकेशन फ़ैक्टर और कंसिस्टेंसी लेवल के बारे में जानकारी

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

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

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

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

कैसंड्रा स्कीमा को देखने के लिए, नीचे दी गई प्रोसेस का इस्तेमाल करें. यह हर 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 कीस्पेस के लिए डिफ़ॉल्ट रेप्लिकेशन फ़ैक्टर, तीन कैसंड्रा नोड वाले इंस्टॉलेशन के लिए तीन है.

अगर आप क्लस्टर में और भी कैसंड्रा नोड जोड़ते हैं, तो डिफ़ॉल्ट रेप्लिकेशन फ़ैक्टर पर कोई असर नहीं पड़ता.

उदाहरण के लिए, अगर आप कैसंड्रा नोड की संख्या छह तक बढ़ा देते हैं, लेकिन रेप्लिकेशन फ़ैक्टर को तीन पर छोड़ देते हैं, तो यह पक्का नहीं किया जा सकता कि सभी कैसांड्रा नोड में सभी डेटा की कॉपी है. अगर कोई नोड घटता है, तो ज़्यादा होने का मतलब है कि नोड पर डेटा, बचे हुए नोड में से किसी एक पर मौजूद होने की संभावना ज़्यादा है. एक जैसे डेटा को बार-बार दोहराने की वजह से, डेटा को लेख में बदलने में लगने वाला समय बढ़ जाता है.

कैसांड्रा कंसिस्टेंसी लेवल के बारे में जानकारी

कैसेंड्रा कंसिस्टेंसी लेवल को, कैसंड्रा नोड की उस कम से कम संख्या के तौर पर दिखाया जाता है जिसके लिए कार्रवाई को पूरा करने से पहले, 'रीड' या 'राइट' कार्रवाई को स्वीकार करना ज़रूरी है. अलग-अलग EDGE कीस्पेस के लिए, एक जैसा लेवल असाइन किया जा सकता है.

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

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

LOCAL_QUORUM = (replication_factor/2) + 1

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

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

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

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