Classificazione dei dati (Memorizzazione nella cache di AppFabric 1.1)

La selezione di tipi di dati appropriati da memorizzare nella cache dell'applicazione consente di trarre il massimo vantaggio dalle funzionalità di memorizzazione nella cache offerte da Microsoft AppFabric 1.1 per Windows Server. I dati possono assumere diverse forme e risiedere su vari livelli dell'applicazione. La memorizzazione nella cache distribuita semplifica l'archiviazione e il recupero di diversi tipi di dati, nonostante i limiti del servizio e le differenze semantiche.

La maggior parte delle applicazioni utilizza un'unica origine per tutte le istanze dei dati. Ad esempio, i dati archiviati nel database principale di un'applicazione richiedono un grado elevato di coerenza e integrità e l'attuazione di misure adeguate per garantirne l'univocità. In genere, i dati presenti su un livello intermedio e gestiti dalla logica di business sono una copia dei dati dell'origine e possono essere organizzati insieme ad altri dati in modo da risultare utili al livello di presentazione. Le copie del livello intermedio sono i dati più appropriati per la memorizzazione nella cache.

La conoscenza dei vari tipi di dati agevola la definizione dei possibili gradi di memorizzazione nella cache. Come illustrato nella tabella seguente, esistono tre tipi di dati appropriati per la memorizzazione nella cache distribuita: riferimento, attività e risorsa.

 

Tipo di dati Criterio di accesso

Riferimento

Condiviso in lettura

Attività

Esclusivo in scrittura

Risorsa

Condiviso, accessibile contemporaneamente in lettura e scrittura, accessibile da parte di numerose transazioni

Dati di riferimento

I dati di riferimento rappresentano una versione dei dati di origine che viene modificata raramente. Si tratta di una copia diretta dei dati originali o di dati aggregati e trasformati da più origini dati. I dati di riferimento vengono aggiornati periodicamente, in genere a intervalli stabiliti o in caso di modifica dei dati stessi.

Poiché i dati di riferimento vengono modificati raramente, sono i candidati ideali per la memorizzazione nella cache. Anziché utilizzare risorse di elaborazione per riaggregare e trasformare ogni volta i dati di riferimento richiesti, è possibile salvare tali dati nella cache e riutilizzarli per le richieste successive. La memorizzazione dei dati di riferimento nella cache di più applicazioni o utenti contribuisce ad aumentare la scalabilità e le prestazioni dell'applicazione.

Esempi di dati di riferimento sono cataloghi e orari dei voli. Si consideri, ad esempio, un'applicazione catalogo che aggrega le informazioni sui prodotti ricavate da diverse origini dati e applicazioni. L'operazione più comune eseguita sui dati di un catalogo è la condivisione in lettura, ovvero l'esplorazione e la ricerca. Un'operazione di ricerca in un catalogo esegue un'ingente quantità di dati sui prodotti, li filtra, li personalizza e quindi presenta i dati selezionati a un vasto numero di utenti.

Poiché le operazioni di ricerca possono richiedere un'elevata quantità di risorse, questo tipo di dati è ideale per la memorizzazione nella cache. In caso di mancata memorizzazione nella cache, queste operazioni possono risultare inutilmente onerose per l'origine dati e influire in modo significativo sul tempo di risposta e sulla produttività dell'applicazione.

La memorizzazione dei dati nella cache più vicina all'applicazione può migliorare sensibilmente prestazioni e scalabilità. Per questo motivo, AppFabric offre la funzionalità di cache locale. Per ulteriori informazioni, vedere Client della cache e cache locale (Memorizzazione nella cache di AppFabric 1.1)

Dati dell'attività

I dati dell'attività sono generati dall'esecuzione di un'attività nell'ambito di una transazione aziendale. I dati nascono come parte di una transazione aziendale. Alla chiusura di tale transazione, i dati vengono relegati all'origine dati come informazioni cronologiche o di registro.

Esempi di dati dell'attività sono ordini di acquisto, stati delle sessioni dell'applicazione o carrelli online. Si considerino i dati presenti in un carrello in un'applicazione di acquisto online. Ogni carrello è esclusivo per ciascuna sessione di acquisto online ed è associato a una raccolta di dati propria. Durante la sessione di acquisto, il carrello viene memorizzato nella cache e aggiornato con i prodotti selezionati. Il carrello è visibile e disponibile solo per la transazione di acquisto. Al completamento della transazione, non appena viene accettato il pagamento, il carrello viene eliminato dalla cache e trasferito a un'applicazione dell'origine dati per un'ulteriore elaborazione. Quando la transazione aziendale viene elaborata dall'applicazione dell'origine dati, le informazioni relative al carrello vengono registrate a scopo di controllo e creazione di una cronologia.

Mentre la sessione di acquisto è attiva, il carrello consente attività sia di lettura che di scrittura, ma non condivise. L'accesso esclusivo ai dati dell'attività rende questi dati particolarmente adatti alla memorizzazione nella cache distribuita.

I requisiti di scalabilità relativi alla cache distribuita utilizzata per la memorizzazione dei dati dell'attività prevedono la capacità di gestire numerose raccolte di dati singole e di supportare le operazioni che influiscono su tali raccolte. Per assicurare una notevole scalabilità dell'applicazione, le raccolte di dati devono essere distribuite sul cluster di cache.

Poiché non sono condivise, le singole raccolte di dati possono essere distribuite sulla cache distribuita e archiviate su host della cache separati. L'espansione dinamica della cache distribuita mediante l'aggiunta di host della cache consente all'applicazione di offrire la scalabilità richiesta per soddisfare una domanda crescente.

Le funzionalità di memorizzazione nella cache di AppFabric permettono di creare un'area per ogni singola raccolta di dati. Le aree offrono una vasta gamma di operazioni basate su tag per semplificare la gestione delle raccolte di dati. Per ulteriori informazioni, vedere Metodi basati su tag.

AppFabric consente inoltre di gestire lo stato della sessione per le applicazioni Web ASP.NET. Per ulteriori informazioni, vedere Procedura: Configurare un provider di stato della sessione (XML)

Dati della risorsa

Sia i dati di riferimento (condivisi in lettura) sia i dati dell'attività (esclusivi in scrittura) sono ideali per la memorizzazione nella cache, ma non tutti i dati dell'applicazione rientrano in queste due categorie. Esistono anche dati condivisi, accessibili contemporaneamente in lettura e scrittura e accessibili da parte di numerose transazioni. Tali dati sono noti come dati della risorsa.

Esempi di dati della risorsa sono account utente e oggetti d'asta. Si consideri, ad esempio, un oggetto d'asta. L'oggetto d'asta include la descrizione dell'oggetto e le informazioni correnti sulle offerte (ad esempio, ultima offerta, offerenti e così via). Le informazioni sulle offerte sono volatili, univoche per ogni offerta e accessibili contemporaneamente da un elevato numero di utenti per operazioni di lettura e scrittura. La logica di business viene memorizzata nella cache accanto ai dati della risorsa.

A fini di monitoraggio, i dati della risorsa vengono spesso archiviati in origini dati per l'elaborazione di transazioni online (OLTP, Online Transaction Processing) e memorizzati nella cache a livello di applicazione per ottimizzare le prestazioni e liberare risorse di elaborazione per una o più origini dati. Nell'esempio dell'asta, la memorizzazione nella cache dei dati relativi all'offerta su un singolo computer può migliorare le prestazioni, ma in caso di aste su larga scala, una sola cache non è in grado di assicurare il livello di scalabilità o affidabilità richiesto. A questo scopo, è possibile partizionare e replicare alcuni tipi di dati in più cache sulla cache distribuita. Tuttavia, poiché alcuni tipi di dati sono condivisi e vengono aggiornati contemporaneamente, è necessario salvaguardare la coerenza della cache nell'intero cluster.

Per ottimizzare la scalabilità, è consigliabile distribuire il più possibile i dati della risorsa e limitare il ricorso alle aree. Se si utilizzano le aree, inserire i dati in più aree per consentire la distribuzione dei dati stessi all'intero cluster di cache.

AppFabric supporta operazioni di concorrenza sia ottimistica che pessimistica. Per ulteriori informazioni, vedere Modelli di concorrenza (Memorizzazione nella cache di AppFabric 1.1).

Vedere anche

  2012-03-05
Mostra: