माइग्रेशन

प्रोवाइडर बदलने के बाद कैश किए गए परिणामों को दोबारा मैप करना

कैशिंग जियोकोडिंग के लिए एक समझदार और आम ऑप्टिमाइज़ेशन है, क्योंकि एक ही पते अक्सर बार-बार लुकअप होते हैं और हर बार नए लुकअप के लिए भुगतान करने या इंतज़ार करने का कोई ख़ास कारण नहीं होता। लेकिन किसी एक प्रदाता के परिणामों पर महीनों या सालों में बना कैश माइग्रेशन के दौरान एक ख़ास समस्या पैदा करता है: जब उसके पीछे का प्रदाता बदल जाए, तो उस सारे कैश किए गए डेटा का क्या होगा।

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

कुछ व्यावहारिक तरीके, मोटे तौर पर बढ़ती गहनता के क्रम में:

  • कैश की गई प्रविष्टियों पर उनके स्रोत प्रदाता का टैग लगाएँ। अगर आपका कैश पहले से यह दर्ज नहीं करता कि किसी कैश किए गए परिणाम को किस प्रदाता ने बनाया, तो माइग्रेट करने से पहले वह फ़ील्ड जोड़ें, ताकि आगे आप पुरानी और नई प्रविष्टियों में फ़र्क कर सकें, बजाय पूरे कैश को एक ही मिले-जुले पूल की तरह मानने के
  • पुरानी कैश की गई प्रविष्टियों पर समाप्ति तय करें। पूरे कैश को एक साथ अमान्य करने के बजाय, जिससे नए प्रदाता पर लाइव अनुरोधों में अचानक उछाल आ सकता है, पुरानी प्रविष्टियों को उसी TTL पर स्वाभाविक रूप से समाप्त होने दें जो आपका कैश पहले से उपयोग करता है, ताकि नए प्रदाता के ताज़ा परिणामों की ओर बदलाव धीरे-धीरे हो
  • ज़्यादा अहम कैश की गई प्रविष्टियों की चुनकर फिर से पुष्टि करें। उन पतों के लिए जो बहुत ज़्यादा मायने रखते हैं, जैसे व्यवसाय का मुख्य स्थान या बार-बार उपयोग होने वाला शिपिंग पता, कैश की स्वाभाविक समाप्ति का इंतज़ार करने के बजाय नए प्रदाता पर स्पष्ट रूप से फिर से लुकअप करना सार्थक है, क्योंकि यही वे प्रविष्टियाँ हैं जहाँ कोई सूक्ष्म अंतर सबसे ज़्यादा नज़र में आएगा

क्योंकि ख़ास तौर पर फ़ॉरवर्ड जियोकोडिंग के परिणाम प्रदाताओं के बीच सटीक फ़ॉर्मैटिंग और सटीकता में अलग हो सकते हैं, इसलिए यह ऐसा मामला है जहाँ पूरी तरह बदलने से पहले अपने वास्तविक कैश किए गए पतों के एक सार्थक नमूने को नए प्रदाता पर टेस्ट करना, कृत्रिम या हाथ से चुने गए टेस्ट पतों से टेस्ट करने से ज़्यादा मूल्यवान है। वास्तविक कैश किया गया डेटा आपके वास्तविक उपयोग पैटर्न को दर्शाता है, अपवादों समेत।

My Geocode के कम्पैटिबिलिटी होस्ट मूल प्रदाता जैसी ही फ़ील्ड संरचना में डेटा लौटाते हैं, इसलिए फ़ील्ड नाम से कैश प्रविष्टियाँ पढ़ने और सहेजने वाले किसी भी कोड को माइग्रेशन के दौरान पुनर्गठन की ज़रूरत नहीं होनी चाहिए, केवल किसी पते के लिए मान ख़ुद प्रदाताओं के बीच थोड़े अलग हो सकते हैं। हर रिस्पॉन्स पर मौजूद कोटा हेडर, जिनमें X-Quota-Used और X-Credits-Remaining शामिल हैं और जिनका दस्तावेज़ /docs/rate-limits/ पर है, उन्हें भी कैश अमान्य करने की योजना में शामिल करना सार्थक है, क्योंकि कैश मिस की अचानक लहर सीधे अनुरोधों की मात्रा में उछाल बन जाती है, और उस लहर की गति को अपने कोटा के हिसाब से नियंत्रित करना माइग्रेशन योजना का एक छोटा लेकिन सचमुच उपयोगी हिस्सा है।

कैश माइग्रेशन को प्रदाता बदलाव लाइव होने के बाद अपने आप होने वाली बाद की बात मानने के बजाय अपने आप में एक छोटा प्रोजेक्ट मानने से डेटा गुणवत्ता की ऐसी सूक्ष्म समस्याओं से बचा जा सकता है जिनका बाद में पता लगाना, पहले से योजना बनाने की तुलना में कहीं ज़्यादा कठिन है।