مسائل رایج کش

سه بحران کش: Stampede (هجوم)، Penetration (نفوذ) و Avalanche (بهمن) — تشخیص و راه‌حل‌های عملی

کش هم بحران دارد!

کش راه‌حل است اما سه سناریوی فاجعه دارد که هر مهندس ارشد باید بشناسد:

۱. Cache Stampede (هجوم)

سناریو: کلید پرطرفداری منقضی می‌شود → ۱۰٬۰۰۰ درخواست هم‌زمان miss → همه به دیتابیس حمله! → دیتابیس می‌میرد → بازیابی نمی‌شود (حتی کش پر شد، درخواست‌های جدید می‌آیند)

راه‌حل‌ها:

۲. Cache Penetration (نفوذ)

سناریو: درخواست‌های کلید غیرموجود (user:999999) → همیشه miss → همیشه DB → کش بی‌فایده + DB زیر بار

حمله عمدی: DDoS با کلیدهای ساختگی!

راه‌حل‌ها:

۳. Cache Avalanche (بهمن)

سناریو: همه کلیدها هم‌زمان منقضی (یا کل سرور کش ری‌استارت!) → سیل به DB

مثل Stampede اما در مقیاس کل کش!

راه‌حل‌ها:

جدول جمع‌بندی

بحرانعلتراه‌حل کلیدی
Stampedeکلید داغ منقضیLock/Coalescing + jitter
Penetrationکلید ناموجودکش NULL + Bloom Filter
Avalancheانقضای گروهی/ری‌استارتTTL پخش‌شده + چندلایه
هشدار: این سه بحران در «پیک ترافیک» رخ می‌دهند — یعنی دقیقاً بدترین زمان ممکن! پیشگیری (TTL jitter، lock) را از روز اول بگذارید، نه بعد از اولین حادثه.

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل طراحی سیستم (System Design) است.

ابزارهای مرتبط