Write Policies: Write Back, Through & Around
ক্যাশে যখন কোনো নতুন ডেটা রাইট (Write) করা হয় বা আপডেট করা হয়, তখন মেইন ডেটাবেসের সাথে তা কিভাবে সিনক্রোনাইজ হবে তার জন্য ৩টি জনপ্রিয় পলিসি রয়েছে।
1. Write-through Cache
এই পদ্ধতিতে ডেটা প্রথমে ক্যাশে রাইট করা হয় এবং সাথেই সাথেই মেইন ডেটাবেসেও রাইট করা হয়।
- সুবিধা: ডেটা সবসময় কন্সিস্টেন্ট থাকে। ক্যাশ এবং ডেটাবেস সবসময় সিঙ্ক থাকে।
- অসুবিধা: রাইট অপারেশন একটু স্লো হয় কারণ দুটি জায়গায় রাইট করতে হয়।
- কখন ব্যবহার করবেন: যেখানে ডেটা সিকিউরিটি এবং কন্সিস্টেন্সি সবচেয়ে জরুরি।
2. Write-back Cache (Write-behind)
এখানে ডেটা শুধুমাত্র ক্যাশে রাইট করা হয় এবং সাথে সাথেই ইউজারকে কনফার্মেশন দিয়ে দেওয়া হয়। একটি নির্দিষ্ট সময় পর বা ব্যাকগ্রাউন্ডে ক্যাশ থেকে ডেটাবেসে রাইট করা হয়।
- সুবিধা: রাইট অপারেশন অত্যন্ত ফাস্ট হয়। অনেকগুলো রাইট অপারেশন একটি ব্যাচে করা যায়।
- অসুবিধা: যদি ডেটাবেসে রাইট হওয়ার আগেই ক্যাশ সার্ভার ক্র্যাশ করে, তবে ডেটা হারিয়ে যাওয়ার ঝুঁকি থাকে।
- কখন ব্যবহার করবেন: যেখানে হাই স্পিড রাইট অপারেশন প্রয়োজন (যেমন: গেমিং বা রাইটিং-হেভি অ্যাপ)।
3. Write-around Cache
এখানে ডেটা সরাসরি মেইন ডেটাবেসে রাইট করা হয়, ক্যাশে রাইট করা হয় না। শুধুমাত্র যখন কেউ সেই ডেটা রিড করতে চায়, তখন তা ক্যাশে আনা হয়।
- সুবিধা: ক্যাশে অপ্রয়োজনীয় ডেটা জমে থাকে না যা একবার লিখে হয়তো অনেক পরে রিড করা হবে।
- অসুবিধা: যদি কোনো ডেটা ঠিক রাইট করার পর পরই রিড করার দরকার হয়, তবে সেটি ক্যাশে থাকবে না (Cache Miss)।
- কখন ব্যবহার করবেন: এমন ডেটার ক্ষেত্রে যা খুব কম রিড হয় বা একবার লেখার পর দীর্ঘ সময় পর রিড হয়।
সামারি টেবিল
| পলিসি | রাইট স্পিড | ডেটা কন্সিস্টেন্সি | জটিলতা |
|---|---|---|---|
| Write-through | মাঝারি | হাই (Strong) | লো |
| Write-back | খুব ফাস্ট | লো (Risk of loss) | হাই |
| Write-around | লো | হাই | মাঝারি |
NOTE
আধুনিক সিস্টেমে প্রয়োজনীয়তা বুঝে এই পলিসিগুলো মিক্স করে ব্যবহার করা হয়।