Rastgele Önbellek Sona Erme


13

Bireysel bir isteğin birden çok şeyi aynı anda güncellenmeye zorladığı durumlardan kaçınmak için rastgele önbellek son kullanma süreleriyle denemeler yapıyorum. Örneğin, bir web sayfası beş farklı bileşen içerebilir. Her biri 30 dakika içinde zaman aşımına uğradıysa, kullanıcı her 30 dakikada bir uzun bekleme süresine sahip olacaktır. Bunun yerine, belirli bir sayfa yüklemesi için en fazla bir bileşenin yeniden yüklenmesini sağlamak için hepsini 15 ila 45 dakika arasında rastgele bir süreye ayarlarsınız.

Bu konuda herhangi bir araştırma veya yönerge bulmaya çalışıyorum, örneğin optimal varyans parametreleri. Google'ın (?) Bu tekniği nasıl kullandığına dair bir makale gördüğümü hatırlıyorum, ancak bulamıyorum ve konu hakkında çok fazla yazılı gibi görünmüyor.


Bunu bir soru olarak yeniden değerlendirebilir misiniz? Bir cevap beklediğiniz açık değil.
Derek

Tamam, bitti.
mahemoff

Yanıtlar:


4

Bazı belgeler:


3
Bu bağlantılar için teşekkürler, ancak hiçbiri rastgelelikten bahsetmiyor.
mahemoff

2
Bu sorunun kaç yaşında olduğunu biliyorum, ancak EstarOnline Limited'den Matthew Neale bunu yaptı (PDF): estaronline.com/images/assetimages/…
Nick Bedford

@NickBedford Aradığım cevap buydu. Yorumunuz kabul edilen cevap olmalıdır.
WhiteHotLoveTiger

0

Kendi sorumu cevaplamak için geri dönersek, buradaki ana sorun, her zaman aynı anda süresinin dolmasını önlemek. Bunun olmasına izin verilirse, sistem önbelleği yeniden doldururken yavaşlar ve tıkanır.

Çoğu zaman, bu gerçekten pratikte bir sorun değildir. Zamanla, tüm bileşenler süreleri dolduğunda kayma eğilimi gösterir. Birden fazla bileşen aynı anda yeniden oluşturulmuşsa, bu bir kod kokusudur, çünkü muhtemelen tek bir bileşen olarak birlikte önbelleğe alınmaları gerekir (örneğin, bir sayfanın benzersiz üstbilgisi, gövdesi ve altbilgisi ayrı olarak önbelleğe alınmışsa, belki sayfanın kendisini önbelleğe almanız yeterli).

Bir seferde birçok şeyin önbelleğe alınması gereken zamanlar vardır, örneğin bir sistemi başlattıktan sonra, tüm önbelleği temizlediysek veya önbellek anahtarlarını döndürdüysek. Bu durumda, genellikle o kadar da kötü değildir, çünkü bileşenler hızla dolar ve süreleri daha sonra ayrılacaktır.

Bu bir sorun olduğu ölçüde, birkaç çözüm var:

  • Sabit bir süre yerine bir aralıkta rastgele bir önbellek son kullanma süresi seçin, örneğin 60 dakika yerine 15 ila 90 dakika arasında rastgele bir tam sayı.
  • Eski yanıtlara izin ver. Bir önbellek öğesinin süresi dolduğu için, hala oradaysa öğeyi kullanamayacağınız anlamına gelmez. İşletmenin ihtiyaçlarına bağlı olarak, sürenin dolmasından sonra orijinal sürümü getirirken bir performans sorunu varsa bunu kullanmak kabul edilebilir. HTTP, bu "zorunluluk-revalidate" amacı (eğer doğruysa, bunun anlamı ise değil bitiminden sonra önbelleğe alınmış sürümünü kullanmak için).
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.