È molto probabile che picchi di carico, guasti, interruzioni del sistema facciano parte del cluster di cache e non è qualcosa di cui preoccuparsi. Tuttavia, non avere una soluzione alternativa a tali situazioni lo è sicuramente! La resilienza agli errori contro tali fattori di rischio è il requisito principale del cluster di memorizzazione nella cache in modo che il ripristino da scenari di errore sia sempre a portata di mano. In alcune situazioni, la perdita di dati può essere trascurabile e può essere gestita facilmente, ma in alcuni casi in cui sono coinvolti dati mission-critical, la protezione e la disponibilità dei dati non possono essere poste come requisito secondario.
NCache NON perde i tuoi dati!
NCache, essendo un archivio di cache di dati distribuito in memoria, fornisce un'architettura in cui è garantita un'elevata disponibilità dei dati in caso di picchi di carico o tempi di inattività. I tuoi dati rimangono disponibili al 100% anche in situazioni disastrose come un nodo che lascia permanentemente il cluster. NCache è progettato per gestire l'aggiunta o la rimozione di runtime di un nodo server.
È inoltre possibile modificare le configurazioni della cache in fase di esecuzione con le funzionalità applicabili a caldo. Con l'architettura peer to peer, NCache ti salva con il problema più grande del "single point of failure". Il supporto per il failover non viene fornito solo all'interno del cluster di cache, ma anche con i client connessi alla cache. Esso rende NCache altamente dinamico ed estremamente sicuro di non rivendicare alcuna perdita di dati. Diamo un'occhiata alla figura seguente per capire NCachela disponibilità.
Il passaggio 1 mostra un cluster connesso in cui i client sono connessi con il NCache cluster con architettura peer to peer.
La figura 2 mostra un nodo che lascia il cluster di cache a causa di un'emergenza.
La figura seguente mostra che il cluster di cache ha bilanciato i dati tra i nodi rimanenti ei client rimangono connessi al cluster di cache.
Topologie di memorizzazione nella cache
NCache fornisce diverse topologie per l'archiviazione dei dati in modo da poter archiviare i dati in base alle proprie esigenze. Guarda le topologie di seguito:
- Topologia specchiata: Come suggerisce il nome, rispecchiato topologia indica un cluster con due nodi, uno dei quali è il nodo attivo in mirroring con il nodo passivo.
- Topologia replicata: In replicato topologia, ogni nodo ha gli stessi dati replicati su di esso.
- Cache partizionata: In partizionato topologia, ogni nodo del server ha una partizione e i dati sono equamente divisi tra il nodo e la sua partizione.
- Partizione della cache di replica: Partizione di replica topology è la topologia più veloce in quanto mantiene la replica di ogni partizione. Ogni partizione viene replicata su un server diverso e le repliche sono passive, il che significa che i client non possono connettersi ad esse.
Parliamo ora della disponibilità dei dati rispetto alle topologie di memorizzazione nella cache. Ogni topologia come menzionato ha caratteristiche diverse. Topologia replicata fa in modo che i dati vengano replicati su tutti i nodi mantenendo così i dati disponibili al 100%. In Topologia partizionata, se un singolo nodo è inattivo, una parte dei dati viene persa. Tuttavia, nel Replica partizionata Topologia, poiché ogni partizione ha una replica, se un nodo viene perso, i dati lo sono redistributato tra i nodi rimanenti. Rende la topologia POR la più efficiente rispetto alla disponibilità dei dati. La topologia di replica partizionata asincrona ha una replica dei dati in background che può causare la perdita di dati, tuttavia, con la topologia POR sincrona non si verifica alcuna perdita di dati poiché la replica avviene tramite l'applicazione client.
Topologie di memorizzazione nella cache Clustering dinamico di autoguarigione NCache Architettura
Architettura peer to peer in NCache
L'architettura peer to peer significa che non esiste il concetto di nodo master o slave NCache. Un cluster è formato da un insieme ben definito di server e ogni server è connesso a ogni altro server nel cluster di cache. C'è un nodo coordinatore che è responsabile della gestione dell'intero cluster. Un nodo coordinatore è il nodo più anziano rispetto ai nodi che si uniscono al cluster. Se un nodo coordinatore lascia il cluster, il successivo nodo più anziano diventa il nodo coordinatore. Il nodo coordinatore condivide anche l'intera informazione della distribuzione dei dati sugli altri nodi in modo che il nodo coordinatore successivo sappia già tutto sulla distribuzione dei dati.
La distribuzione dei dati avviene sulla base di bucket. Un singolo bucket è l'unità minima di distribuzione dei dati. Tutti i bucket sono distribuiti uniformemente tra i nodi nel cluster di cache.
Ad esempio, un cluster di cache con due nodi e 1000 bucket di dati mantiene 500 bucket di dati su ciascun nodo. NCache distribuisce i dati sulla base di una mappa di distribuzione. La mappa di distribuzione mappa i bucket con i nodi su cui risiedono i bucket.
Viene chiamato il processo di trasferimento dei dati da un nodo a un altro nodo trasferimento statale. Trasferisce i dati bucket per bucket dal nodo esistente (nodo di origine) al nuovo nodo (assegnato). Il tempo durante il quale avviene il trasferimento di stato, tutte le operazioni non riuscite/relative a un determinato bucket vengono indirizzate al nodo di origine fino a quando non ha avuto luogo l'intero processo di trasferimento di stato. Una volta completato il processo di trasferimento dello stato, tutti i nodi vengono informati del completamento del trasferimento dello stato.
Scoperta del runtime all'interno di cluster e client
NCache eccelle nella disponibilità dei dati per le sue caratteristiche dinamiche. Se un nodo si unisce al cluster di cache, a tutti i nodi server e client vengono fornite queste informazioni in fase di esecuzione, in modo che avvenga la distribuzione dei dati. Il nodo coordinatore si assicura che un nuovo server si sia unito al cluster di cache e aggiunge il nuovo nodo del server nell'elenco dei nodi del cluster di cache. Informa inoltre tutti gli altri nodi del server di un nuovo nodo del server che entra nel cluster di cache. Successivamente, il nuovo nodo del server acquisisce una connessione TCP con tutti gli altri nodi del server. Di conseguenza, il nuovo server non dispone di informazioni sui nodi del server cache esistenti finché non si è unito al cluster di cache.
Allo stesso modo, anche i client cache vengono rilevati in fase di esecuzione. Un client quando si connette al cluster di cache non ha bisogno di conoscere l'intero cluster di cache e tutti i nodi del server. Richiede solo le informazioni di un singolo server cache in esecuzione. Utilizza questa connessione per vedere a quali server di cache connettersi. Di seguito sono riportate le informazioni vitali che il cliente riceve dopo aver stabilito la connessione:
- Mappa di distribuzione dei dati: la mappa che contiene le informazioni su quali dati risiedono su quale nodo server in modo che sia facilmente accessibile.
- Topologia di memorizzazione nella cache: Le informazioni sulla topologia della cache per determinare a quale server della cache connettersi.
- Informazioni sull'appartenenza al cluster: le informazioni sui membri del cluster come un nuovo nodo che entra nel cluster o un nodo esistente che lascia un cluster.
- Informazioni riguardanti compressione o crittografia.
- Informazioni sulla serializzazione: Binario o JSON.
Clustering dinamico Recupero automatico del cervello diviso Modalità di manutenzione
Supporto per il failover della connessione
NCache cluster è un cluster dinamico con riparazione automatica e gestisce qualsiasi failover in fase di esecuzione. Due tipi di supporto per il failover sono forniti da NCache:
- Supporto per il failover all'interno del cluster: Se un server di cache lascia il cluster in qualsiasi momento, il cluster di cache si ripara in modo molto efficiente dalla perdita di un server di cache. Per spiegarlo ulteriormente, significa che il cluster di cache divide i bucket di dati tra i restanti nodi del server della cache e aggiorna tutti i nodi del server della cache sulla nuova distribuzione.
- Supporto per il failover all'interno del cliente: Analogamente ai server cache, anche i client cache si adattano in base agli altri server cache esistenti. Se un client è connesso a un server cache e la connessione viene persa a causa dell'indisponibilità del nodo server, tutti i client ad esso connessi si spostano automaticamente su altri nodi esistenti.
Modalità di manutenzione
Modalità di manutenzione è un'altra funzionalità guidata dall'utente fornita da NCache. Come discusso in precedenza, il trasferimento di stato avviene su ogni nodo che esce o si unisce al cluster. Negli scenari in cui un nodo server lascia il cluster per evitare il trasferimento di stato non necessario, la modalità di manutenzione è utile. Ti dà il controllo per fermare un nodo per la manutenzione e risparmiare al tuo cluster il costo di un costoso processo di trasferimento dello stato. Mentre un nodo è in manutenzione, tutte le operazioni vengono servite dal nodo di replica. Non appena il nodo rientra nel cluster, sincronizza lo stato con il nodo di replica.
Conclusione
La disponibilità dei dati è la sfida più grande quando si ha a che fare con i dati della cache. NCache è ricco di funzionalità di fascia alta per gestire la disponibilità dei dati a tutti i costi fornendo un controllo immediato dei danni in situazioni disastrose. Non solo, NCache ha un'architettura molto scalabile che fornisce non solo un'elevata disponibilità, ma consente anche di ridimensionare il cluster di cache in modo lineare. Quindi, è sicuro dirlo NCache è il miglior livello di memorizzazione nella cache di cui l'architettura dell'applicazione ha bisogno.