"Daha iyi performans" için L1, L2 ve L3 önbellekleri ekledik. Şimdi verinin yanlış olabileceği 1 yerine 3 yerimiz var.

Harika mimarimiz:

  • L1: İşlem içi önbellek (Guava)
  • L2: Yerel Redis
  • L3: Dağıtılmış Redis kümesi
  • Doğruluk kaynağı: PostgreSQL

Ne yanlış gitti:

  • L3 önbelleği doğru şekilde geçersiz kılındı
  • L2 önbelleğinde hala eski veri vardı (farklı TTL)
  • A sunucusundaki L1 önbelleğinde eski veri vardı
  • B sunucusundaki L1 önbelleğinde yeni veri vardı
  • Kullanıcılar her yenilemede farklı veriler gördü

Hata ayıklama cehennemi:

"Hangi önbellek katmanında bozuk veri var?" her seferinde 2 saatlik bir araştırmaya dönüştü.

Ne öğrendik:

  • Her önbellek katmanı, geçersizleştirme karmaşıklığını katlar
  • TTL'ler koordine edilmelidir (iç önbellek < dış önbellek)
  • Her katmanda gözlemlenebilirliğe ihtiyaç var
  • Bazen tek bir önbellek yeterlidir

Ders: Daha fazla önbellek katmanı ≠ daha iyi performans. İşler ters gittiğinde hata ayıklanacak daha fazla yer demektir.


← Alınan Derslere Dön