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? :)
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Costruire bot per MSN Messenger, il 29 novembre 2007 alle 18:22
- Forse questo è un lavoro troppo semplice: ecco perchè lo facciamo male, il 9 ottobre 2007 alle 11:25
- Il VOIP dalla cornetta del telefono è tutta un'altra cosa, il 21 febbraio 2006 alle 11:09
- La Continuous Integration è utile anche nelle applicazioni web, il 31 gennaio 2006 alle 09:11
- Test del filtro XHTML per ASP.NET, il 16 giugno 2005 alle 18:14
- Un esempio di layout table-less nel lab, l'1 giugno 2005 alle 19:36