NCache è una soluzione di ottimizzazione delle prestazioni che offre scalabilità e alta disponibilità. Fornisce varie topologie di memorizzazione nella cache per fornire scalabilità lineare insieme a coerenza e affidabilità dei dati. Queste topologie sono progettate per soddisfare le diverse esigenze di memorizzazione nella cache delle applicazioni che operano in un piccolo ambiente di memorizzazione nella cache a due server fino a enormi cluster di cache con centinaia di server di cache.
Di seguito sono riportate le caratteristiche delle topologie di caching che NCache offre:
Cache replicata
La topologia garantisce l'affidabilità dei dati attraverso la replica dei dati su più cache server. IL Cache replicata è estremamente veloce e scalabile per le operazioni di lettura. Tuttavia, non è molto scalabile per le operazioni di scrittura, poiché sono sincrone con tutti i server nel cluster. La topologia è destinata ad ambienti di memorizzazione nella cache più piccoli in cui il numero di operazioni di lettura è superiore alle operazioni di scrittura. Di seguito è riportata una breve panoramica del funzionamento della topologia della cache replicata.
Come funziona la topologia della cache replicata?
La topologia della cache replicata offre un'elevata disponibilità dei dati e supporta l'aggiunta e l'eliminazione dinamiche del server senza interrompere la cache esistente.
A differenza delle topologie Partition e Partition Replica, ogni applicazione client si connette a un solo nodo server in base a un algoritmo di bilanciamento del carico determinato dai server cache. Quando il server connesso diventa inattivo, l'applicazione client si connette al server successivo nell'elenco.
Topologia della cache con mirroring
I cache specchiata è un cluster di cache attivo/passivo a 2 nodi progettato per ambienti di cache più piccoli. La topologia offre affidabilità e disponibilità dei dati tramite replica/mirroring asincroni dal nodo attivo al nodo passivo.
Come funziona la topologia della cache con mirroring?
Nella topologia Mirrored Cache, i nodi client si connettono solo al nodo del server attivo nel cluster, per tutte le operazioni di lettura e scrittura. Se il nodo del server attivo diventa inattivo, le applicazioni client si connettono automaticamente con il nodo precedentemente passivo. Questo supporto per il failover assicura che la cache con mirroring sia sempre attiva e funzionante. La topologia offre il mirroring asincrono per le operazioni di scrittura che aiuta a migliorare le prestazioni dell'applicazione poiché più scritture vengono eseguite come operazione BULK sul nodo del server passivo.
Cache partizionata
È una delle topologie di caching più veloci e scalabili offerte da NCache. La topologia è ugualmente efficiente sia per le operazioni di lettura che per quelle di scrittura. Raggiunge la scalabilità lineare aggiungendo server al cluster. Di seguito è riportata una breve panoramica del funzionamento della topologia della cache partizionata.
Come funziona la topologia della cache partizionata?
Nella topologia Cache partizionata, la cache viene suddivisa in parti in fase di esecuzione con una singola partizione per ciascun server cache. Queste partizioni creano collettivamente una cache in cluster con 1000 bucket, equamente distribuiti in tutte le partizioni. Il cluster crea una mappa di distribuzione che contiene la mappatura dei bucket in diverse partizioni. Questa mappa garantisce una comunicazione significativa tra i nodi client e server.
La topologia fornisce inoltre un'elevata disponibilità dei dati collegando tutte le applicazioni client ai server di cache. In modo che l'applicazione possa ottenere i dati richiesti anche se il server connesso non funziona, richiedendo gli altri server.
Topologia della cache della replica della partizione
Questa è la topologia di memorizzazione nella cache più popolare in NCache. Poiché fornisce agli utenti il meglio di entrambi i mondi, con la scalabilità lineare e l'elevata affidabilità dei dati. Questa topologia è scalabile quasi quanto la topologia partizionata e offre prestazioni promettenti e un'elevata disponibilità dei dati con modalità di replica sincronizzate e asincrone. Di seguito è riportata una breve panoramica del funzionamento di questa topologia.
Come funziona la topologia della cache della replica della partizione?
Insieme alla creazione di partizioni dinamiche, la topologia crea anche repliche dinamiche di queste partizioni su diversi nodi del server, che fungono da backup in caso di errore di connessione o scenario di nodo inattivo. In tali casi, NCache ottiene i dati dal nodo di replica e redislo rende omaggio. Tuttavia, queste repliche limitano la scalabilità del cluster, poiché ogni nodo del server aggiunto verrà suddiviso in partizioni attive e di replica.
La topologia offre due modalità di replica; sincronizzato e asincrono. Nella replica asincrona tutte le repliche verranno create in background, con conseguente zero ritardi nelle prestazioni. Ma questo comporta una piccola possibilità di perdita di dati quando la replica è inattiva, poiché i dati non arriveranno lì. Per evitare tali perdite, la topologia offre anche la replica sincronizzata in cui è presente la creazione di repliche in fase di runtime e ogni operazione non riuscita sulla replica verrà considerata non riuscita anche sulla partizione. La topologia fornisce la connettività completa del server per garantire un'elevata disponibilità dei dati.
Topologia della cache del client
Nel Cache cliente topology, la cache risiede molto vicino all'applicazione e consente di memorizzare rapidamente nella cache i dati dalla cache distribuita. La cache del client può anche essere considerata una "cache sopra la cache". È adatto per applicazioni ad alta intensità di lettura, ma se l'applicazione deve eseguire un numero uguale di operazioni di lettura e scrittura, funzionerà più lentamente, poiché le operazioni di scrittura richiederanno l'aggiornamento dei dati in due punti.
Sebbene la cache del client sia locale, non è autonoma poiché è sempre sincronizzata con la cache in cluster. Questa sincronizzazione garantisce che i dati nella cache del client siano sempre aggiornati. Di seguito è riportata una panoramica delle principali caratteristiche della topologia della cache del client.
Come funziona la topologia della cache del client?
La cache del client esiste in modalità InProc (all'interno del processo) o OutProc (locale al server web/app). In entrambi i casi, migliora le prestazioni dell'applicazione. La modalità InProc ti consente di memorizzare nella cache gli oggetti sul tuo "heap dell'applicazione" che ti offre "Velocità InProc" altra cache distribuita. La cosa migliore di Client Cache è che non comporta alcuna modifica del codice nella tua applicazione. Invece, lo colleghi semplicemente attraverso una modifica della configurazione.
La topologia offre la sincronizzazione dei dati ottimistica e pessimistica. La sincronizzazione predefinita nella cache del client è ottimistica, dove NCache client presuppone che tutti i dati presenti nella cache del client siano l'ultima copia. Nella sincronizzazione pessimistica, Cache Client verifica innanzitutto se Clustered Cache dispone di una versione più recente di un elemento memorizzato nella cache. In caso affermativo, il client lo recupera, lo inserisce nella cache del client e lo restituisce all'applicazione client.
Conclusione
NCache offre una varietà di topologie di caching per soddisfare le diverse esigenze di caching dei propri clienti. Tutti sono distribuiti, altamente scalabili e affidabili. A seconda della dimensione dei tuoi dati, della natura delle operazioni che devi eseguire e del numero di transazioni che devi effettuare, puoi scegliere una qualsiasi delle topologie citate. Per saperne di più su NCache topologie non esitate a scaricare 60 giorni di prova gratuita di NCache.