Caching Strategy

Cách hiểu bằng lời của tôi

Caching Strategy là cách quyết định dữ liệu nào được giữ gần nơi đọc hơn, được cập nhật ra sao, và bị loại bỏ khi nào. Cache không chỉ để nhanh hơn; nó cũng là một điểm consistency/race-condition mới trong hệ thống.

Write policy

  • Write-through: write đi qua cache rồi xuống database; consistency tốt hơn nhưng write latency cao.
  • Cache-aside: app đọc cache trước, miss thì đọc database rồi populate cache; write thường cập nhật database và invalidate cache.
  • Write-back: write vào cache trước, flush xuống database sau; write nhanh nhưng mất dữ liệu nếu cache crash trước khi flush.

Vấn đề phân tán

Distributed cache có thể stale vì invalidation thiếu, pub/sub update bị delay, concurrent update ghi đè nhau, hoặc node cache lệch trạng thái. Vì vậy cache cần TTL, versioned key, explicit invalidation, pub/sub sync hoặc chấp nhận Eventual Consistency rõ ràng.

Pitfall

Thundering herd xảy ra khi một key nóng hết hạn và nhiều request cùng miss, đẩy tải về backend. Cách giảm: pre-warming, lock/token refresh, jitter TTL, stale-while-revalidate.

Mở rộng từ video streaming

Với nội dung lớn và có thể dự đoán, cache có thể được fill chủ động trước khi user request. Netflix Open Connect là ví dụ: video được copy tới OCA theo dự đoán nhu cầu địa phương. Với live streaming, cache policy còn dùng để giảm storm: 404/503 có TTL ngắn giúp edge không lặp lại cùng request về origin trong vài giây.

Liên kết