Short term caching fan club

di Daniele Bochicchio, in Esperimenti,

L'ammetto: sono un fan dello short term caching, ovvero di quella particolare tecnica per cui un certo dato viene tenuto in cache per intervalli brevi, perchè il dato è molto volatile (ma non esageratamente statico).

A livello pratico si tratta di impostare una scadenza temporale relativamente bassa, nell'ordine dei pochi minuti (o anche delle ore, volendo), sfruttando la classe Cache e definendo come bassa la priorità, in modo che altre informazioni possano rimanere in cache quando la memoria scarseggia e queste invece possano essere tranquillamente scaricate.

La prima volta che ne ho visto l'utilizzo è stato un paio d'anni fa, all'interno del motore del Forum di ASP.NET, che poi è anche quello che ho modificato ed adattato per questo sito. Il motivo per cui farne uso è semplice: permette di evitare di gravare sul database, "raggruppando" le query che in genere restituiscono gli stessi risultati.

Pensate ad un CMS: in genere gli articoli (o parti di informazioni) tendono a non variare molto, per cui sia io che gli altri 30 utenti che nell'arco dei 10 minuti accederemo a quell'informazioni, in realtà stiamo facendo fare lo stesso lavoro al database. La soluzione è dunque geniale, banale ma nemmeno tanto sfruttata: fare una query ogni x minuti, anzichè una per ogni richiesta.

Mi direte: banale. Ed avete ragione, tanto è vero che la maggior parte dei CMS che ho visto in giro non la usa :D

Per inciso, ho appena finito di modificare il DAL di ASPItalia.com perchè lo usi in alcuni punti critici. Al momento ho qualcosa come 2000 query circa ogni 5 minuti, con punte anche maggiori in certi momenti di traffico. Proviamo cosa succede ad utilizzare questo meccanismo, unito al cache-by-request, di cui sono un altro grande fan.

Insomma, tra short term caching e cache-by-request la nostra applicazione dovrebbe consumare il minimo possibile di memoria, ma al contempo preservare il nostro database da un carico eccessivo.

Adesso che lo sapete, entrerete anche voi a far parte del fan club? :)

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese