अधिसूचना-आधारित अवैधता का उपयोग करते समय, ttlValue
समय-आउट अभी भी कैश आइटम को अमान्य करेगा और इस प्रकार अगले अनुरोध पर कैश क्लस्टर से एक फ़ेच को मजबूर किया जा सकता है। उदाहरण के लिए, नीचे दिए गए विन्यास में, आइटम 300 सेकंड के बाद टाइम-आउट होंगे, लेकिन प्रत्येक 60 सेकेंड में क्लस्टर पर अमान्य नोटिफिकेशन के लिए भी जांच की जाएगी। (जैसे कि वे हटाए गए थे):
& lt; डेटाकैश क्लाइंट नाम = "डिफ़ॉल्ट" & gt; & Lt; localCache isEnabled = "true" sync = "अधिसूचनाधारित" वस्तु है Count = "100000" ttlValue = "300" / & gt; & Lt; क्लाइंट नोटिफ़िकेशन pollInterval = "60" / & gt; & Lt; / dataCacheClient & gt;
समस्या:
मेरे पास ऐसे वस्तुओं का एक सेट है जो अपरिवर्तनीय - अर्थात वे बदलते नहीं हैं। इसका मतलब यह है कि उन्हें खुद को "ताज़ा करें" के लिए समयबाह्य-आधारित अमान्यता की आवश्यकता नहीं है
इसका अनिवार्य रूप से मतलब है कि अपरिवर्तनीय वस्तुओं को स्थानीय कैश से अनावश्यक रूप से हटा दिया जाएगा। अगर इन मदों के बहुत से हैं, तो संभावित रूप से ध्यान देने योग्य प्रदर्शन गिरावट हो सकती है, खासकर जब हज़ारों मदों को पढ़ना है।
इसे शून्य में सेट करते समय में DataCacheLocalCacheProperties
कन्स्ट्रक्टर, मुझे निम्नलिखित अपवाद मिलता है:
माइक्रोसॉफ्ट में आवेदन 'System.ArgumentException' का एक अपवाद हुआ। Application.Server.Caching.Client.dll लेकिन उपयोगकर्ता कोड में नहीं संभाला था अतिरिक्त सूचना: टाइम-आउट एक सकारात्मक मूल्य होना चाहिए।
दूसरा विकल्प मुझे एक अप्राप्य संख्या सेट करना पड़ता है।
हमें शून्य समय सीमा के साथ स्थानीय कैश की अनुमति क्यों नहीं है?
मैं एज़ुर इन-रोल कैशिंग का उपयोग कर रहा हूं (colocated)।
आप नहीं कर सकते ttlValue
के रूप में शून्य को निर्दिष्ट करें, क्योंकि इसका मतलब होगा कि आइटम कैश्ड नहीं किए जाते हैं।
आपका प्रश्न तो वास्तव में "क्यों शून्य को ttlValue
नहीं के रूप में उपयोग कर रहा है एक विशेष मामले के रूप में उपयोग करने के लिए संकेत मिलता है कि आइटम को कभी भी रद्द नहीं किया जाना चाहिए? " जो केवल माइक्रोसॉफ्ट द्वारा उत्तर दिया जा सकता है।
यदि आप ttlValue
से int.MaxValue
सेट करते हैं, तो आइटम 68 साल के लिए अमान्य नहीं होंगे, जो बहुत लंबा होना चाहिए।
Comments
Post a Comment