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

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

Apigee Edge, डेटा को रनटाइम के दौरान कैश मेमोरी में सेव करने की सुविधा देता है. इससे डेटा को तेज़ी से ऐक्सेस किया जा सकता है और उसे बनाए रखा जा सकता है.

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

एंटीपैटर्न

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

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

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

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

असर

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

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

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

      या

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

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