एंटीपैटर्न: कैश मेमोरी में 256 केबी से ज़्यादा साइज़ का डेटा सेव करें

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

Apigee Edge, रनटाइम के दौरान कैश मेमोरी में डेटा सेव कर सकता है. इससे, डेटा को लंबे समय तक और तेज़ी से वापस पाया जा सकता है.

  • डेटा को शुरुआत में, Message प्रोसेसर की इन-मेमोरी कैश मेमोरी में सेव किया जाता है. इसे L1 कैश कहा जाता है.
  • L1 कैश मेमोरी, JVM मेमोरी के प्रतिशत के रूप में अपने लिए रिज़र्व की गई मेमोरी से सीमित है.
  • कैश मेमोरी में सेव की गई एंट्री को बाद में L2 कैश में सेव रखा जाता है. इसे सभी मैसेज प्रोसेसर ऐक्सेस कर सकते हैं. इस बारे में ज़्यादा जानकारी, नीचे दिए गए सेक्शन में देखी जा सकती है.
  • L2 कैश मेमोरी में, कैश एंट्री की संख्या के लिए कोई सीमा तय नहीं है. हालांकि, कैश मेमोरी में सेव की जा सकने वाली एंट्री का ज़्यादा से ज़्यादा साइज़, 256 केबी तक सीमित होता है. सबसे अच्छी परफ़ॉर्मेंस के लिए, कैश मेमोरी में सेव किया गया, 256 केबी का सुझाया गया साइज़ है.

एंटीपैटर्न

इस खास एंटीपैटर्न ने Apigee Edge प्लैटफ़ॉर्म में मौजूदा कैश साइज़ की पाबंदियों को पार करने के असर के बारे में बताया है.

256 केबी से ज़्यादा के डेटा को कैश मेमोरी में सेव करने पर, ये नतीजे देखने को मिलते हैं:

  • हर मैसेज प्रोसेसर पर पहली बार एपीआई अनुरोधों को लागू किए जाने के लिए ज़रूरी है कि उन्हें मूल सोर्स (नीति या टारगेट सर्वर) से अलग डेटा मिले. ऐसा इसलिए, क्योंकि L2 कैश मेमोरी में 256 केबी से ज़्यादा की एंट्री उपलब्ध नहीं होती.
  • L1 कैश में बड़ा डेटा (256 केबी से ज़्यादा) सेव करने से, प्लैटफ़ॉर्म के संसाधनों पर ज़्यादा दबाव पड़ता है. इसका इस्तेमाल करने पर, L1 कैश मेमोरी तेज़ी से भरी जाती है और इस वजह से अन्य डेटा के लिए कम जगह उपलब्ध होती है. इस वजह से, डेटा को जितना चाहे उतना कैश मेमोरी में सेव नहीं किया जा सकता.
  • तय सीमा पूरी होने पर, मैसेज प्रोसेसर की कैश मेमोरी में सेव की गई एंट्री हटा दी जाएंगी. इससे डेटा को ओरिजनल सोर्स से फिर से, संबंधित मैसेज प्रोसेसर पर फ़ेच किया जाता है.

फ़्लो के दो डायग्राम.
  यह साइज़<=256 केबी के लिए होता है. यह एपीआई प्रॉक्सी और मैसेज प्रोसेसर के बीच फ़्लो और मैसेज प्रोसेसर और परसिस्टेंट स्टोरेज L2 कैश के बीच फ़्लो दिखाता है. यह साइज़>256 केबी के लिए होता है. यह एपीआई प्रॉक्सी और मैसेज प्रोसेसर के बीच फ़्लो दिखाता है और मैसेज प्रोसेसर और उस डेटा/रिस्पॉन्स के बीच फ़्लो दिखाता है जो L2 कैश में सेव नहीं किया गया है.

असर

  • 256 केबी से ज़्यादा साइज़ का डेटा, L2/परसिस्टेंट कैश मेमोरी में सेव नहीं किया जाएगा.
  • ओरिजनल सोर्स (नीति या टारगेट सर्वर) पर बार-बार कॉल करने की वजह से, एपीआई अनुरोधों के लिए इंतज़ार का समय बढ़ जाता है.

सबसे सही तरीका

  • बेहतर परफ़ॉर्मेंस पाने के लिए, 256 केबी से कम साइज़ वाले डेटा को कैश मेमोरी में सेव करना बेहतर होता है.
  • अगर आपको 256 केबी से ज़्यादा का डेटा सेव करना है, तो इन बातों पर ध्यान दें:
    • बड़े डेटा को स्टोर करने के लिए, किसी सही डेटाबेस का इस्तेमाल करना

      OR

    • डेटा को कंप्रेस करना

इसके बारे में और पढ़ें