NCache Architettura

NCache è un archivio distribuito in memoria open source per .NET, Java, Node.js e Python. NCache è ideale per applicazioni server con transazioni elevate poiché è estremamente veloce e scalabile in modo lineare. Utilizzo NCache per rimuovere i colli di bottiglia delle prestazioni e scalare le tue applicazioni fino all'elaborazione delle transazioni estreme (XTP). NCache fornisce inoltre la replica intelligente dei dati e il clustering dinamico per un'elevata disponibilità.

NCache è molto popolare dal 2005 con centinaia di clienti di fascia alta in tutto il mondo che lo utilizzano.

 

Cluster dinamico (alta disponibilità)

NCache dispone di clustering dinamico della cache con autoriparazione basato su un'architettura peer-to-peer per fornire il 100% di uptime. Questo è un cluster basato su TCP in cui non ci sono nodi master/slave e invece ogni server nel cluster è un peer. Ciò consente di aggiungere o rimuovere qualsiasi server di cache in fase di esecuzione dal cluster senza interrompere né la cache né l'applicazione.

 

Cluster peer to peer (autoguarigione)

NCache il cluster ha un'architettura cluster peer-to-peer. Ciò significa che non ci sono nodi Master/Slave e ogni server è un peer. Esiste un nodo Coordinatore cluster che è il nodo più vecchio del cluster. Se il nodo Coordinatore del cluster non funziona, il successivo nodo più vecchio diventa automaticamente il coordinatore.

Il Coordinatore del cluster gestisce tutte le operazioni relative al cluster, inclusa l'appartenenza al cluster quando i nodi vengono aggiunti o rimossi, la mappa di distribuzione per Cache partizionata / Cache di replica partizione topologia e altre informazioni sulla configurazione della cache. Cluster Coordinator ha anche gestito l'integrità del cluster e rimuove forzatamente tutti i server cache parzialmente connessi a tutti gli altri server nel cluster.

 

Clustering dinamico

NCache ha una architettura di clustering dinamico. Questo significa che puoi aggiungere or rimuovere qualsiasi server cache dal cluster senza arrestare la cache o le applicazioni. Ogni volta che aggiungi o rimuovi un server cache, l'appartenenza al cluster viene aggiornata immediatamente in fase di esecuzione e propagata a tutti i server nel cluster nonché a tutti i client connessi al cluster. Questo aggiornamento e propagazione del runtime lo consentono NCache per essere sempre attivo e funzionante anche quando vengono apportate tali modifiche.

Il clustering dinamico consente di eseguire le seguenti operazioni:

  • - Aggiungi/Rimuovi server cache in fase di runtime: senza interrompere la cache o l'applicazione
  • - Appartenenza al cluster: viene aggiornato in fase di esecuzione e propagato a tutti i server nel cluster e a tutti i client connessi al cluster.
 

Gestione di cluster cerebrali divisi

Un'altra parte di NCache Il clustering dinamico è intelligente Rilevamento e recupero del cervello diviso capacità. Lo split brain si verifica essenzialmente quando, a causa di alcuni problemi di rete, la connessione di rete tra questi server di cache si interrompe e ciò si traduce in più sottocluster indipendenti in cui ciascun sottocluster presuppone che tutti gli altri server di cache siano interrotti ed è il cluster rimanente corretto .

In tali casi, NCache i server si rendono conto che gli altri server cache hanno lasciato improvvisamente il cluster, quindi continuano a provare a riconnettersi. Quindi, quando il problema della rete scompare, questi NCache i server sono in grado di riconnettersi con gli altri server cache. Ma ora ogni sottocluster ha aggiornato la cache in parallelo senza sincronizzarsi con altri server di cache e quindi esistono più versioni dei dati nei sottocluster.

NCache fornisce un modo per riprendersi da questo "cervello diviso" decidendo automaticamente quali server cache devono cedere i propri dati e altri server cache possono conservare i propri dati. Si verifica una certa perdita di dati, ma il risultato finale è un rapido ripristino del cluster di cache senza alcun intervento umano.

 

Connessioni client dinamiche

NCache ti permette anche aggiungere o rimuovere client cache in fase di runtime senza arrestare la cache o altri client. Quando aggiungi un client, questo client deve solo conoscere qualsiasi server cache nel cluster a cui connettersi. Una volta connesso a quel server, riceve informazioni sull'appartenenza al cluster e sulla topologia di memorizzazione nella cache in base alle quali decide a quali altri server connettersi.

  • - Aggiungi/Rimuovi client in fase di runtime: senza interrompere la cache o l'applicazione.
  • - Cache partizionata/Cache replica delle partizioni: il client si connette a tutte le partizioni in tutti i cache server (non alle repliche perché le partizioni comunicano con le rispettive repliche). Ciò consente al client di andare direttamente dove si trovano i dati per le letture e le scritture. Inoltre, se un nuovo server viene aggiunto al cluster, il client riceve informazioni aggiornate sull'appartenenza al cluster e quindi si connette anche al server cache appena aggiunto.
  • - Cache replicata: in caso di Cache replicata, il client si connette semplicemente a un server cache nel cluster ma in modo bilanciato per garantire che tutti i server cache abbiano lo stesso numero di client. Il client ottiene le informazioni sul bilanciamento del carico da questo server cache e in base a ciò, se necessario, si riconnette al server cache appropriato. Il client si connette a un solo server cache perché ogni server ha l'intera cache, quindi tutte le letture e le scritture sono possibili proprio lì.
  • - cache specchiata: in caso di cache specchiata, il client si connette solo al nodo attivo in questo cluster a 2 nodi. Se il client si connette al nodo passivo, il nodo passivo informa il client del nodo attivo e il client si riconnette automaticamente al nodo attivo. Se il nodo attivo si interrompe e il nodo passivo diventa attivo, tutti i client si connettono automaticamente al nuovo nodo attivo.
 

Configurazione dinamica

NCache fornisce anche la configurazione dinamica della cache e dei client. Lo scopo è consentire di apportare modifiche in un secondo momento quando la cache è in esecuzione senza arrestare la cache o l'applicazione.

  • - Propagare a tutti i server e client in fase di runtime: questo include tutta la configurazione e le sue modifiche e anche la mappa di distribuzione.
  • - Configurazione della cache: quando viene creata una configurazione della cache tramite gli strumenti di amministrazione, queste informazioni di configurazione vengono copiate su tutti i server della cache conosciuti in quel momento. Inoltre, qualsiasi nuovo server aggiunto in fase di esecuzione riceve l'intera configurazione della cache e la copia sul proprio disco locale.
  • - Modifiche di configurazione applicate a caldo: è possibile modificare alcune configurazioni della cache in fase di runtime tramite un comando "Applicazione a caldo" caratteristica di NCache. Quando lo fai, le informazioni di configurazione aggiornate vengono propagate a tutti i server cache in fase di esecuzione e salvate sui loro dischi. Una parte di queste informazioni viene inviata anche a tutti i clienti che sono pertinenti alle loro esigenze.
  • - Mappa di distribuzione (cache partizionata/replica partizione): viene creato all'avvio della cache e quindi copiato su tutti i cache server e cache client. Questa mappa di distribuzione contiene informazioni su quali bucket (su un totale di 1000 bucket nella cache in cluster) si trovano su quale partizione.
 

Failover della connessione all'interno del cluster

Tutti i server cache nel cluster sono collegati tra loro tramite TCP. Inoltre, ogni server cache è connesso a tutti gli altri server cache nel cluster, inclusi eventuali nuovi server aggiunti in fase di esecuzione. NCache fornisce vari modi per garantire che tutte le connessioni all'interno del cluster siano mantenute attive nonostante l'interruzione della connessione. L'interruzione della connessione di solito si verifica a causa di un problema tecnico di rete dovuto a un router o firewall o a un problema con la scheda di rete o il driver di rete.

  • - Tentativi di connessione: se la connessione tra due server cache si interrompe, NCache il server esegue automaticamente più tentativi per stabilire questa connessione. Questi tentativi vengono eseguiti fino all'esaurimento del periodo di "timeout". Nella maggior parte dei casi, questo ristabilisce la connessione.
  • - Battito cardiaco Keep-Alive: NCache ha anche una funzione per fare in modo che ogni server cache continui a inviare alcuni piccoli pacchetti di dati come battito cardiaco a tutti gli altri server. Ciò garantisce che se si verifica un problema di rottura del socket di rete, i server della cache lo sapranno e lo risolveranno tramite tentativi.
  • - Server parzialmente connessi: nonostante i tentativi, a volte la connessione non viene ripristinata entro il periodo di timeout e un server cache presuppone che uno o più degli altri server cache siano inattivi. Quindi, continua a funzionare senza di loro. Ma in realtà gli altri server non sono inattivi e vengono infatti visti da altri server nel cluster. Questo è chiamato server parzialmente connessi. Quando ciò accade, il coordinatore del cluster ne prende nota e rimuove forzatamente il server "parzialmente connesso" dal cluster. In questo modo il cluster torna ad essere integro. Inoltre, il server rimosso può rientrare nel cluster tramite intervento manuale.
 

Failover della connessione con i client

Tutti i client cache sono connessi a uno o più server cache nel cluster tramite TCP a seconda delle topologie di memorizzazione nella cache. Per la cache partizionata/di replica partizione, ogni client è connesso a tutti i server di cache. Per Replicated Cache, ogni client è connesso a uno solo dei server cache di solito tramite un algoritmo di bilanciamento del carico utilizzato dai server cache. E, per Mirrored Cache, tutti i client sono connessi solo al nodo attivo e si connettono al nodo passivo solo quando il nodo attivo si interrompe e il nodo passivo diventa nodo attivo.

  • - Tentativi di connessione: se una connessione tra un client e i server cache si interrompe, NCache il client lo fa automaticamente più tentativi di connessione per stabilire questa connessione. Questi tentativi vengono eseguiti fino all'esaurimento del periodo di "timeout". Nella maggior parte dei casi, ciò ristabilisce la connessione senza che l'applicazione client se ne accorga. Se non è possibile stabilire una connessione, viene generata un'eccezione all'applicazione client in modo che possa gestirla.
  • - Battito cardiaco Keep-Alive: NCache ha anche una funzione per fare in modo che ogni client continui a inviare alcuni piccoli pacchetti di dati come battito cardiaco a tutti i server cache a cui è connesso. Ciò garantisce che se si verifica un problema di rottura del socket di rete, il client lo saprà e lo risolverà tramite tentativi di connessione.
  • - Client parzialmente connessi (cache partizionata/replica della partizione): nonostante i tentativi, ci sono momenti in cui una connessione non viene ripristinata entro il periodo di timeout e un client cache presuppone di non essere in grado di raggiungere uno o più degli altri server cache anche se potrebbero non essere inattivi. Pertanto, in caso di Partitioned/Partition-Replica Cache, interagisce con altri server per leggere o scrivere tutti i dati anche se la sua mappa di distribuzione gli dice che il server con cui non può parlare ha i dati. In questo caso, l'altro server cache funge da intermediario per eseguire correttamente l'operazione.
  • - Disconnessione dal server (cache replicata/con mirroring): in caso di Replicated Cache, il client è connesso solo con un server e se questa connessione si interrompe, il client si connette automaticamente a uno degli altri server cache. In caso di Mirrored Cache, se il client non è in grado di connettersi al nodo attivo, presume che sia inattivo e tenta di connettersi al nodo passivo.
 

Topologie di memorizzazione nella cache (scalabilità lineare)

NCache fornisce una varietà di topologie di memorizzazione nella cache per consentire la scalabilità lineare mantenendo la coerenza e l'affidabilità dei dati. L'obiettivo è soddisfare le esigenze delle applicazioni eseguite con cache a due server molto piccole e cluster di cache molto grandi costituiti da decine o addirittura centinaia di server cache. Una topologia di memorizzazione nella cache è essenzialmente una strategia di archiviazione dei dati, replica dei dati e connessioni client in una cache in cluster che si estende su più server di cache.

 

Dati di riferimento e dati transazionali

I dati di riferimento sono dati che non cambiano molto frequentemente e li metti nella cache per raggiungerli più e più volte e aggiornarli occasionalmente. I dati transazionali, d'altra parte, sono dati che cambiano molto frequentemente e puoi aggiornarli con la stessa frequenza con cui li leggi.

All'inizio, una cache era considerata utile principalmente per i dati di riferimento perché i dati modificati frequentemente diventavano obsoleti e non sincronizzati con gli ultimi dati nel database. Tuttavia, NCache ora fornisce funzionalità molto potenti che consentono alla cache di mantenere sincronizzati i dati memorizzati nella cache con il database.

Tutte le topologie di memorizzazione nella cache sono adatte per i dati di riferimento, ma solo alcune topologie di memorizzazione nella cache sono particolarmente adatte per i dati transazionali. Devi determinare quante letture e quante scritture farai per capire quale topologia è la migliore per te. Inoltre, alcune topologie di memorizzazione nella cache non si adattano molto, soprattutto per gli aggiornamenti, quindi tienilo a mente.

Di seguito è riportato un elenco di topologie di memorizzazione nella cache insieme al loro impatto sulle letture rispetto alle scritture.

  • - Cache partizionata (nessuna replica): Molto Buone. Superveloce sia in lettura che in scrittura e scala anche linearmente aggiungendo server. La topologia più veloce ma non replica i dati, quindi si verifica una perdita di dati se un server cache si interrompe.
  • - Cache di replica partizione (Più popolare): Molto Buone. Superveloce sia in lettura che in scrittura e scalabile anche linearmente aggiungendo server. La seconda topologia più veloce ma replica i dati per garantire affidabilità senza compromettere la scalabilità lineare. La migliore combinazione di velocità/scalabilità e affidabilità dei dati.
  • - Cache replicata: Molto buono per ambienti più piccoli. Superveloce e scalabile linearmente per le letture. Moderatamente veloce per le scritture in un cluster a 2 nodi, ma non aumenta man mano che si aggiungono più server perché le scritture vengono eseguite in modo sincrono su tutti i server cache.
  • - cache specchiata: Molto buono per gli ambienti più piccoli. Superveloce per le letture. Le scritture sono più veloci della cache replicata per 2 nodi attivi/passivi. Ma non va oltre questo.
  • - Cache cliente: Molto buono per un uso intensivo di lettura con tutte le topologie di memorizzazione nella cache. Consente di raggiungere la velocità InProc con una cache distribuita.
 

Cache partizionata

La cache partizionata è la topologia di memorizzazione nella cache più veloce e scalabile sia in lettura che in scrittura. È destinato a cluster di cache più grandi e le prestazioni di lettura e scrittura rimangono molto buone anche con carichi di picco. Tuttavia, non replica i dati e quindi si verifica una perdita di dati se un server cache si interrompe.

Ecco alcune caratteristiche della cache partizionata.

  • - Partizioni dinamiche: la cache è divisa in partizioni in fase di esecuzione e ciascun server cache ha una partizione. Sono disponibili un totale di 1000 bucket per cache in cluster distribuiti equamente su tutte le partizioni. L'aggiunta/rimozione del server cache comporta la creazione/eliminazione di partizioni in fase di runtime. L'assegnazione dei bucket alle partizioni non cambia quando i dati vengono aggiunti alla cache. Cambia invece solo quando le partizioni vengono aggiunte o eliminate o quando si verifica il bilanciamento dei dati (vedi sotto).
  • - Mappa di distribuzione: il cluster di cache crea una mappa di distribuzione che contiene informazioni su quali bucket esistono in quali partizioni. La mappa di distribuzione viene aggiornata ogni volta che vengono aggiunte o eliminate partizioni o quando si verifica il bilanciamento dei dati (vedere di seguito). La mappa di distribuzione viene propagata a tutti i server e client. I client lo utilizzano per capire con quale server cache parlare per leggere o scrivere un determinato elemento memorizzato nella cache.
  • - Bilanciamento dinamico dei dati: poiché tutti i bucket sono in realtà bucket HashMap in cui i dati vengono archiviati in base a un algoritmo di hashing sulle chiavi, esiste la possibilità che alcuni bucket possano contenere più dati di altri a seconda delle chiavi utilizzate. Se questo squilibrio supera una soglia configurabile, NCache sposta automaticamente i secchi per bilanciare questo carico.
  • - I client si connettono a TUTTE le partizioni: i client si connettono a tutti i server cache in modo che possano leggere o scrivere direttamente i dati in un'unica richiesta dal server. Se la connessione di un client con un server di cache si interrompe, chiede a uno degli altri server di leggere o scrivere un elemento memorizzato nella cache esistente sul server a cui non può accedere. E quel server aiuta il client a raggiungere questo obiettivo.
 

Cache di replica partizione

NOTA: tutto ciò che è menzionato in Partitioned Cache è vero anche qui.

Proprio come Cache partizionata, Partition-Replica Cache è una topologia di memorizzazione nella cache estremamente veloce e linearmente scalabile sia in lettura che in scrittura. È destinato a cluster di cache più grandi e le prestazioni di lettura e scrittura rimangono molto buone anche con carichi di picco. Inoltre, Partition-Replica Cache replica anche i dati e quindi non si verifica alcuna perdita di dati anche se un server cache si interrompe.

Partition-Replica Cache è il nostro topologia di memorizzazione nella cache più popolare perché ti offre il meglio di entrambi i mondi, prestazioni/scalabilità lineare e affidabilità dei dati.

Di seguito sono riportate alcune delle caratteristiche di Partition-Replica Cache.

  • - Partizioni dinamiche: come Cache partizionata.
  • - Repliche dinamiche: quando le partizioni vengono create o eliminate in fase di runtime, vengono create o eliminate anche le relative repliche. Le repliche si trovano sempre su un server cache diverso ed esiste una sola replica per partizione.
  • - Replica asincrona: per impostazione predefinita, la replica dalla partizione alla replica è asincrona. Ciò significa che il client può aggiungere, aggiornare o eliminare qualsiasi dato nella partizione e tutte queste operazioni vengono messe in coda. E poi sono replicati in BULK sulla replica. Ciò migliora le prestazioni ma presenta il leggero rischio di perdita di dati nel caso in cui una partizione venga interrotta e non tutti gli aggiornamenti siano stati replicati nella replica. Ma, nella maggior parte delle situazioni, questo va benissimo.
  • - Sincronizzazione della replica: se i tuoi dati sono molto sensibili (ad esempio dati finanziari) e non puoi permetterti di avere dati obsoleti, puoi scegliere l'opzione "Sincronizza replica" nella configurazione. Quando selezionata, tutte le operazioni di scrittura vengono eseguite in modo sincrono sia sulla partizione che sulla replica finché non vengono considerate completate. In questo modo, se l'operazione fallisce sulla replica, fallisce anche sulla partizione. Inoltre, puoi essere certo che tutti i dati nella cache (sia nella partizione che nella replica) siano sempre coerenti. Tuttavia, ciò ha implicazioni sulle prestazioni poiché è più lento della replica asincrona.
  • - Mappa di distribuzione: come Cache partizionata.
  • - Bilanciamento dinamico dei dati (partizioni e repliche): come Cache partizionata. Tuttavia, nella cache Partition-Replica, il bilanciamento dei dati avviene anche nelle repliche quando i dati delle partizioni vengono bilanciati.
  • - I client si connettono a TUTTE le partizioni: come Cache partizionata. Inoltre, in Partition-Replica Cache, i client comunicano solo con le partizioni e non con le relative repliche. Questo perché le repliche sono passive e solo le partizioni comunicano con le rispettive repliche durante la replica dei dati.
 

Cache replicata

La cache replicata garantisce l'affidabilità dei dati tramite la replica su due o più server cache. È molto veloce e scalabile per le letture. Tuttavia, non viene ridimensionato per le scritture perché sono sincrone con tutti i server nel cluster. Per un cluster a 2 nodi, le scritture sono più veloci del database ma non così veloci come Partition-Replica Cache. Per 3 o più cluster di server, le prestazioni di scrittura peggiorano e alla fine diventano poco attraenti.

Di seguito sono riportate alcune delle caratteristiche della cache replicata.

  • - Nodi replicati dinamici: puoi aggiungere o rimuovere server cache in fase di runtime a una cache esistente senza arrestare la cache o l'applicazione. Il server appena aggiunto crea una copia (replica) dell'intera cache su se stesso. Inoltre, il server rimosso aggiorna l'appartenenza al cluster e tutti i suoi client vengono spostati su altri server.
  • - Intera cache su ciascun nodo: l'intera cache viene copiata su ogni server del cluster.
  • - Le letture sono scalabili: le letture sono superveloci e scalabili quando aggiungi più server. Tuttavia, l'aggiunta di più server non aumenta la dimensione della cache poiché il server appena aggiunto è solo un'altra copia dell'intera cache.
  • - Le scritture sono sincrone: le scritture sono molto veloci per un cluster a 2 nodi e più veloci del database. Tuttavia, le scritture sono sincrone, il che significa che ogni operazione di scrittura non viene completata finché tutti i server cache non vengono aggiornati in modo sincrono. Per questo motivo, le scritture non sono veloci come altre topologie e le loro prestazioni peggiorano quando si aumenta la dimensione del cluster oltre i 2 nodi.
  • - Il client si connette a un solo server: ciascun client cache si connette solo a un server nel cluster in base a un algoritmo di bilanciamento del carico determinato dai server cache. Se questo server cache non funziona, il client si connette al server successivo nell'elenco. Puoi anche specificare manualmente il server a cui connetterti nel file di configurazione della cache se non desideri utilizzare il bilanciamento del carico.
 

cache specchiata

Mirrored Cache è un cluster di cache attivo/passivo a 2 nodi destinato ad ambienti più piccoli. Fornisce affidabilità dei dati attraverso la replica/mirroring asincrono dal nodo attivo al nodo passivo. È molto veloce sia in lettura che in scrittura (in effetti le scritture sono più veloci della cache replicata) ma non scala oltre questo cluster attivo/passivo a 2 nodi.

Di seguito sono elencate alcune delle caratteristiche di Mirrored Cache.

  • - 1 server attivo e 1 passivo: Mirrored Cache ha solo due server. Uno è attivo e l'altro è passivo. Entrambi hanno una copia dell'intera cache. Se il server attivo non funziona, il server passivo diventa automaticamente attivo. Inoltre, se il server attivo precedentemente disattivato ritorna attivo, viene trattato come un server passivo a meno che non si modifichi questa designazione tramite gli strumenti di amministrazione in fase di esecuzione.
  • - Connessioni client con supporto di failover: ciascun client cache si connette solo al server attivo nel cluster per eseguire le operazioni di lettura e scrittura. Se questo Server Attivo va giù, tutti i client si collegano automaticamente al Server Passivo che ormai è diventato Attivo. Questo supporto di failover garantisce che Mirrored Cache sia sempre attivo e funzionante anche se un server non funziona.
  • - Mirroring asincrono: tutte le scritture eseguite sul server attivo vengono specchiate/replicate in modo asincrono sul server passivo. Ciò garantisce che il server passivo sia sempre sincronizzato con i dati più recenti nel caso in cui il server attivo si interrompa e il server passivo debba diventare attivo. Il mirroring asincrono significa anche prestazioni più veloci poiché più scritture vengono eseguite come operazione BULK sul server passivo.
 

Cache client (velocità InProc)

Client Cache è locale al tuo server web/app e si trova molto vicino alla tua applicazione e ti consente di memorizzare nella cache i dati che stai leggendo dalla cache distribuita (qualsiasi topologia di memorizzazione nella cache). Puoi vederlo come una "cache sopra una cache" e migliora notevolmente le prestazioni e la scalabilità delle tue applicazioni. Se utilizzi Client Cache in modalità InProc, puoi raggiungere la velocità di InProc.

Pur essendo locale per l'applicazione, una cache client non è autonoma. Al contrario, è sempre sincronizzato con la cache del cluster. Ciò garantisce che i dati nella cache del client non siano mai obsoleti.

Di seguito sono elencate alcune delle caratteristiche di Mirrored Cache.

  • - Ottimo per casi di lettura intensiva: Client Cache è utile solo se si dispone di un caso d'uso ad alta intensità di lettura in cui il numero di letture è molte volte superiore a quello di scritture. Se il numero di scritture è uguale a quello di letture, la cache del client è effettivamente più lenta perché una scrittura comporta l'aggiornamento in due punti.
  • - Velocità più elevata come una cache locale (InProc/OutProc): esiste una cache client all'interno del processo di applicazione (modalità InProc) o locale sul server Web/app (modalità OutProc). In entrambi i casi, aumenta significativamente le prestazioni dell'applicazione rispetto al semplice recupero di questi dati dalla cache in cluster. La modalità InProc ti consente di memorizzare nella cache gli oggetti sul tuo "heap dell'applicazione" che ti dà "Velocità InProc" che non può essere eguagliata da nessuna cache distribuita.
  • - Non una cache autonoma: La cache client può essere una cache locale ma non è una cache autonoma. Si mantiene invece sincronizzato con la cache in cluster. Ciò significa che se un altro client aggiorna i dati nella cache in cluster presente nella cache del client, la cache in cluster notifica alla cache del client di aggiornarsi con la copia più recente di tali dati. E questo viene fatto in modo asincrono ma immediato.
  • - Sincronizzazione ottimista/pessimista: per impostazione predefinita, Client Cache utilizza la sincronizzazione ottimistica, il che significa che NCache client presuppone che tutti i dati presenti nella cache del client siano la copia più recente. Se la cache del client non contiene dati, il client lo recupera dalla cache del cluster, lo inserisce nella cache del client e lo restituisce all'applicazione client. Sincronizzazione pessimistica significa che il client cache controlla prima la cache raggruppata se ha una versione più recente di un elemento memorizzato nella cache. In tal caso, il client lo recupera, lo inserisce nella cache del client e lo restituisce all'applicazione client. In caso contrario, restituisce tutto ciò che è nella cache del client.
  • - Plug-in senza alcuna modifica del codice: l'aspetto migliore di Client Cache è che non comporta alcuna modifica del codice nell'applicazione. Invece, lo colleghi semplicemente tramite una modifica della configurazione. E, NCache L'API client dietro le quinte sa cosa fare per utilizzare la Client Cache.

Cosa fare dopo?

© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.