နားလည်ထားရမယ့် အချက်
Popular keys တစ်ချိန်တည်း expire ဖြစ်ရင် requests အများကြီး database သို့ကျသော stampede ဖြစ်ပါတယ်။ TTL jitter၊ request coalescing/single-flight၊ short lock၊ stale-while-revalidate နဲ့ prewarming ကို workload အလိုက်ပေါင်းသုံးနိုင်ပါတယ်။ Stale serving အတွက် maximum staleness နဲ့ safety exclusions ရှိရပါတယ်။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Scenario: homepage key TTL 300s၊ 20k RPS၊ DB 500 QPS capacity၊ deployment နောက် keys အားလုံး cold ဖြစ်နေသည်။ Fresh/stale dual values၊ lock timeout၊ jitter range၊ DB circuit breaker၊ rollout prewarm နဲ့ metrics ပါသော recovery design ရေးမယ်။
အတူတူ စမ်းရေးကြည့်မယ်
Given: 20,000 RPS, DB capacity 500 QPS
Design: TTL = 300s + random(0..60s)
Lock: SET cache:home:lock <token> NX PX 3000
Stale limit: 10 minutes
Measure: hit_rate, stale_served, lock_wait, db_qps, p99_latencyLoad spike တွင် DB capacity မကျော်ဘဲ bounded freshness ထိန်းသော design ရမည်။၅ မိနစ် စမ်းကြည့်
Sequence diagram၊ failure table နဲ့ load-test acceptance criteria အပြည့်ရေးပါ။
သတိလေးတစ်ချက်
Authorization၊ price၊ inventory ကဲ့သို့ safety-critical response များကို stale-while-revalidate မသုံးမီ business rule စစ်ပါ။
Redis — Distributed Locks — Redis