एक hit_for_pass ऑब्जेक्ट बैकएंड सर्वर के विरुद्ध लाने की प्रक्रिया को अनुकूलित करने के लिए किया जाता है।
सामान्य कैश मिस के लिए, वार्निश सभी ग्राहकों को उसी कैश ऑब्जेक्ट का अनुरोध करने और बैकएंड को एक ही अनुरोध भेजने के लिए कतार देगा। यह आमतौर पर सबसे तेज़ होता है, बैकएंड काम को एक ही अनुरोध पर एक ही समय में एन अनुरोधों के साथ घुमाने के बजाय काम करने देता है।
याद रखें कि कुछ बैकएंड ऑब्जेक्ट तैयार करने में बहुत समय का उपयोग करते हैं; 10 सेकंड असामान्य नहीं है। यदि यह फ्रंट पेज एचटीएमएल है और आपके पास 3000 रेक/एस है, तो केवल एक बैकएंड अनुरोध भेजना बहुत समझ में आता है।
समस्या तब उत्पन्न होती है जब वार्निश ने ऑब्जेक्ट लाया है, यह देखता है कि इसे कैश नहीं किया जा सकता है। इसके कारण यह हो सकता है कि बैकएंड "कैश-कंट्रोल: अधिकतम आयु = 0", या (अधिकतर) सेट-कुकी हेडर भेजता है। इस मामले में आपके पास कतार में निष्क्रिय बैठे 3,000 से 30,000 क्लाइंट (3k req/s * 10sec) के बीच कहीं है, और इन ग्राहकों में से प्रत्येक के लिए एक ही धीमी एक-बार-बार बैकएंड अनुरोध उन्हें पूरा करने के लिए पूरा होना चाहिए। यह आपकी साइट प्रतिक्रिया समय बर्बाद कर देगा।
तो वार्निश इस निर्णय को बचाता है कि इस अनुरोध को hit_for_pass ऑब्जेक्ट बनाकर कैश नहीं किया जा सकता है।
उसी यूआरएल के लिए अगले अनुरोध पर, कैश लुकअप एक hit_for_pass ऑब्जेक्ट वापस करेगा। यह संकेत देता है कि एक ही समय में कई fetches किया जा सकता है। आपका बैकएंड इसके बारे में बहुत खुश नहीं हो सकता है, लेकिन कम से कम वार्निश किसी कारण से ग्राहकों को कतार नहीं दे रहा है।
इसे मिला। धन्यवाद @ikarsten –
बहुत स्पष्ट स्पष्टीकरण। धन्यवाद। – Vaheh
महान। आपका बहुत बहुत धन्यवाद! – tven