ASP.NET - Come gestire i dati relazionali in una cache distribuita

Di Iqbal Khan

Microsoft .NET Framework è diventato popolare per lo sviluppo di una serie di applicazioni ad alte transazioni tra cui Web, architettura orientata ai servizi (SOA), calcolo ad alte prestazioni o grid computing e cloud computing. Tutte queste architetture applicative sono scalabili. Ma un grosso collo di bottiglia si verifica nell'archiviazione dei dati, normalmente un database relazionale, che non è in grado di ridimensionare e gestire l'aumento del carico di transazioni che può essere eseguito dal livello dell'applicazione.

Di conseguenza, la memorizzazione nella cache distribuita sta diventando piuttosto popolare perché consente di memorizzare nella cache i dati in una cache in memoria a cui è molto più veloce accedere rispetto a qualsiasi database. Inoltre, la cache distribuita fornisce una scalabilità lineare su più server cache. Con la scalabilità lineare, puoi aggiungere più server cache al cluster di cache distribuita se devi gestire un carico di transazioni maggiore. Il guadagno incrementale della capacità transazionale non diminuisce man mano che si aggiungono più server (è una linea retta in un grafico XY dove X è il numero di server cache e Y è la capacità di transazione). La figura 1 mostra come la cache distribuita si inserisce in una tipica applicazione ASP.NET o Windows Communication Foundation (WCF) e come fornisce scalabilità lineare.

Leggi l'articolo completo

In questo articolo verrà illustrato come gli sviluppatori dovrebbero gestire le relazioni tra i dati durante la memorizzazione nella cache dei dati.

Sebbene la memorizzazione nella cache distribuita sia eccezionale, una sfida che presenta è come memorizzare nella cache i dati relazionali che hanno varie relazioni tra gli elementi di dati. Questo perché una cache distribuita fornisce un'interfaccia semplice, simile a Hashtable (chiave, valore), in cui la "chiave" identifica in modo univoco un elemento memorizzato nella cache e il "valore" sono i dati o l'oggetto. Tuttavia, la tua applicazione probabilmente ha un modello a oggetti di dominio complesso con ereditarietà, aggregazione e altri tipi di relazioni.

Inoltre, una cache distribuita archivia separatamente i singoli elementi memorizzati nella cache, il che è diverso dal database in cui esistono relazioni tra tabelle diverse. Di solito non esistono relazioni tra i diversi elementi memorizzati nella cache in una tipica cache distribuita. Ciò rappresenta una sfida per gli sviluppatori di applicazioni .NET. In altre parole, stai affrontando la sfida di tenere traccia di molte informazioni sulle relazioni all'interno della tua applicazione per assicurarti di poter gestire correttamente le relazioni nella cache e allo stesso tempo sfruttare il caching distribuito.

Leggi l'articolo completo
© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.