17

Nov

Windows Azure Performance – Caching

Il caching in-memory di dati e risorse è sempre stato un driver essenziale per la riduzione della latenza e per l’aumento complessivo delle performance di una soluzione.

Tuttavia, in logica web farm (e quindi Cloud), la cache in-memory di un dato, soprattutto se connessa al suo utilizzo “stateful” tra una richiesta e l’altra, è erronea. Perchè al crescere dei nodi per N>1, la cache risulterebbe desincronizzata tra i nodi e bisognerebbe gestirne la centralizzazione o i meccanismi di replicazione.  La seconda strategia è sicuramente efficente: esistono infatti alcuni algoritmi peer-to-peer per la replica delle informazioni di cache tra i nodi al fine di allineare le diverse versioni. Tuttavia la soluzione è quasi sempre difficile da implementare ed introduce una complessità di computazione proporzionale al numero dei nodi del sistema.

La prima soluzione invece, più comune, consiste nel centralizzare il dato in un repository (di solito un daatabase) al fine di semplificarne il reperimento, con chiari svantaggi sul lato performance.

Windows Azure AppFabric ci viene quindi incontro con il prodotto Cache, che rappresenta una cache veloce in-memory sullo stesso modello di Windows Server AppFabric Cache (l’analogo in ambiente on-premise). Proprio per questa particolare analogia, l’API di accesso alla cache di AppFabric (Server) è compatibile con quella di accesso alla cache di Azure AppFabric, la cui integrazione (come sotto) si limita alla sola modifica di alcune righe di configurazione.

image

Configurabile come cache per lo stato della sessione:

image

Oppure come Output Cache di ASP.NET:

image

Per accedervi via codice, saranno necessarie queste righe:
image

by Roberto Freato on 11/17/2011
Post archive