Invalidace cache a session na základě počtu záznamů

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Petr Motejlek
Člen | 293
+
0
-

Ahoj, nevím, jestli to náhodou nějak nejde udělat, ale z toho, co se mi zatím podařilo zjistit, to nejde ;).

Dalo by se nějak zařídit, aby byly položky v Cache/Session nějak invalidovány taky na základě toho, kolik těch položek je? Abych třeba mohl říct, že když je víc jak 20K aktivních session, ať se pro vytvoření další ta nejpozději aktualizovaná smaže? To samé by se mi líbilo, kdybych mohl dělat i u Cache. Tzn. mám-li několik zmenšených náhledů obrázků, tak abych mohl omezit, že jich (stejně jako těch Session) nebude víc jak 20K.

Když nad tím přemýšlím, klidně by stačilo mít možnost omezit si u session počet session jako takových, pak počet položek v jednom namespacu Session/Cache.

Díky

Jakub Šulák
Člen | 222
+
0
-

no já nevím, ale u té cache – není problém spíše v modelu, který nedostatečně uvolňuje zdroje(cache)? Protože pokud se bude mazat po načtení 20k položek první načtená, může snadno docházet k situaci, že se bude často uvolňovat ta samá. Takže by to spíš mělo být řešeno podle počtu použití.

Filip Procházka
Moderator | 4668
+
0
-

Ve frameworku nic takového není, ale vcelku snadno si to můžeš implementovat, pokud zjistíš jak fungují services :)

Petr Motejlek
Člen | 293
+
0
-

Jakub Šulák napsal(a):

no já nevím, ale u té cache – není problém spíše v modelu, který nedostatečně uvolňuje zdroje(cache)? Protože pokud se bude mazat po načtení 20k položek první načtená, může snadno docházet k situaci, že se bude často uvolňovat ta samá. Takže by to spíš mělo být řešeno podle počtu použití.

Já jsem to napsal asi špatně. Mazat by se měla ta, která byla uložena jako první. Když teda do cache postupně uložím 1, 2, 3, budu mít nastaveno mazání po třech položkách, vložím 4, tak budu mít nacacheováno 2, 3, 4. Už je to jasnější?

Petr Motejlek
Člen | 293
+
0
-

HosipLan napsal(a):

Ve frameworku nic takového není, ale vcelku snadno si to můžeš implementovat, pokud zjistíš jak fungují services :)

To je vlastně taky pravda; až to budu mít, hodím to sem ;)

hjr
Člen | 24
+
0
-

Možná by byla lepší spíš LRU strategie? (Least Recently Used, tj. pokud se naplni cache, smaze se polozka, ktera ma nejstarsi cas posledniho pristupu).

Petr Motejlek
Člen | 293
+
0
-

hjr napsal(a):

Možná by byla lepší spíš LRU strategie? (Least Recently Used, tj. pokud se naplni cache, smaze se polozka, ktera ma nejstarsi cas posledniho pristupu).

Ale to je přesně to, co mám na mysli ;). Já se prostě neumím vyjádřit…