cache কি জিনিস ?

Published by SNNAFI on

আমরা কমবেশি সবাই মেসেঞ্জার অ্যাপ ব্যবহার করি। একটা বিষয় কি আমরা খেয়াল করেছি, অনেক সময় আমরা যখন প্রোফাইল পিকচার পরিবর্তন করি, তখন সাথে সাথে সেটা মেসেঞ্জার এ পরিবর্তন হয়ে যায় না। এটা যেমন আমাদের নিজেদের ছবির জন্য প্রযোজ্য, তেমনি অন্য কেউ পরিবর্তন করলে তার জন্য প্রযোজ্য। অনেক সময় দেখা যায়, অন্য কেউ পরিবর্তন করলে সেই ক্ষেত্রে সময় আরো বেশি লাগে নতুন ছবি মেসেঞ্জারে আসতে। কয়েকদিন পর্যন্ত লেগে যায়।

কিংবা কোন ওয়েবসাইট প্রথমবার লোড হতে অনেক সময় নেয়, কিন্তু পরেরবার থেকে আগের চেয়ে দ্রুত লোড নেয় ? কেন ? ব্যাপারটা কি এমন যে ওয়েবসাইটের সাথে আমাদের খাতির হয়ে গেছে ? তাই সে তাড়াতাড়ি লোড নেয় ? অবশ্য একভাবে বলা যায় আসলেই খাতির হয়ে যায়। কম্পিউটার বিজ্ঞানের ভাষায় একে বলে caching.

এইটা আবার কি ?

মূলত আমরা যখন কোন ওয়েবসাইট ভিজিট করি, তখন সেটার ডাটাগুলো আমাদের ব্রাউজারে সাময়িকভাবে জমা হয়ে থাকে । যার ফলে নেক্সট টাইম একই ওয়েবসাইট ভিজিট করলে আমাদের দেখি ওয়েবসাইট তাড়াতাড়ি লোড নেয়। মেসেঞ্জার অ্যাপ এর ক্ষেত্রেও একই ব্যাপার। আমরা যখন প্রথমবার মেসেঞ্জার অ্যাপ ওপেন করি, তখন মেসেঞ্জার অ্যাপ চ্যাট, প্রোফাইল পিকচার এগুলা cache করে ফেলে। অবশ্য মেসেঞ্জার এর caching strategy ভিন্ন। একেক কোম্পানি একেকভাবে হ্যান্ডল করে। যেমন আমরা যদি অ্যাপ সেটিংস থেকে জাস্ট cache ডাটা ক্লিয়ার করি, তাহলে কিন্তু দেখা যাবে, নতুন ছবি লোড নিবে না। কারণ, মেসেঞ্জার এগুলা এক প্রকার পার্মানেন্টলি cache করে ফেলে। যেহেতু, প্রোফাইল পিকচার কেউ প্রতিদিন পরিবর্তন করে না, তাই এটা খুব বেশি ইফেক্ট ফেলে না।

caching করলে লাভ কি ? caching করার মাধ্যমে আমাদের একই ডাটা বারবার নেট থেকে লোড করতে হয় না। এতে ব্যান্ডউইথ সেইভ হয়। বেশি মোবাইল ডাটা খরচ হয় না। একই ছবি বা চ্যাট বারংবার লোড করতে হয় না। দ্রুত লোড করা যায়। যেহেতু ডাটা আমাদের মোবাইলেই স্টোর থাকে। এইজন্য দেখা যাবে অফলাইন অবস্থায়ও মেসেঞ্জার অ্যাপ ওপেন করলেই আগের লোড করা ডাটা থেকে যায়।

কেউ চাইলে এটা খুব সহজেই চেক করে দেখতে পারে। অ্যাপ সেটিংস থেকে অ্যাপ ডাটা ক্লিয়ার করে পুনরায় অ্যাপ এ ঢুকলে দেখা যাবে, নতুন পরিবর্তিত ছবি লোড নিচ্ছে। কারণ, এখন cache কোন ডাটা নেই। আবার চ্যাট লোড নিতেও সময় বেশি লাগছে।

এখন প্রশ্ন হল, তাহলে cache ডাটা কখন পরিবর্তন হয় ? মানে নতুন ডাটা আসলে কিভাবে অ্যাপ বুঝে যে cache ডাটা আপডেট করতে হবে । এটা কম্পিউটার বিজ্ঞানের খুবই কমপ্লেক্স একটা বিষয়। কখন cache ডাটা পরিবর্তন করা উচিৎ, কতদিন পর পর করা উচিৎ এটার আসলে কোন উত্তর নেই। একে বলে cache invalidation

মূলত cache invalidation কখন করা হবে, কখন করা হবে না, এটার জন্যই নতুন ছবি দেখা যায় সাথে সাথে লোড নেয় না। কয়েকদিন সময় নেয়। যে যত ভালো এটা নিয়ে কাজ করতে পারে, সে তত কম cache inconsistency এর পরিস্হিতে পড়বে। cache inconsistency মানে হল, সার্ভারে এক ডাটা আর ডিভাইস আরেক ডাটা। যেমন, মেসেঞ্জার এর ক্ষেত্রে সার্ভারে নতুন ছবি কিন্তু ডিভাইস আগের ছবি।

এই বিষয়ে ফিল কার্লটন বলেছেন,

There are only two hard things in computer science: cache invalidation and naming things.” If you have ever worked on a cache that uses invalidations, chances are you have run into the annoying problem of cache inconsistency

আজকে এই পর্যন্তই। এটা মূলত সবার জন্য উপযোগী করে লেখা। পরিবর্তিতে আমরা cache এর টেকনিক্যাল বিষয় নিয়ে কথা বলব। এই বিষয়ে বিভিন্ন টার্ম সম্বন্ধে আইডিয়া নিব ।


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.