Dividi il recupero del cervello in NCache per un tempo di attività del 100%.

NCache è una cache distribuita in memoria estremamente veloce e scalabile per .NET / .NET Core. La maggior parte delle volte, NCache viene eseguito in ambienti di produzione per applicazioni mission-critical. Di conseguenza, elevata disponibilità e il 100% di uptime è un requisito molto importante per NCache. E, NCache eccelle in questo settore molto bene attraverso una varietà di funzionalità.

Una di quelle funzionalità ad alta disponibilità è Split Brain Detection and Recovery per prevenire eventuali tempi di inattività.

Che cos'è un cervello diviso nel cluster di cache?

NCache crea a cluster di cache dinamica autoriparante costituito da più server che parlano tra loro tramite TCP. Tutti i server di cache sono interconnessi nel cluster e l'appartenenza al cluster viene mantenuta in fase di esecuzione e propagata non solo a tutti i server di cache ma anche a tutti i client di cache.

Tuttavia, come qualsiasi sistema distribuito, NCache il cluster può affrontare una situazione in cui uno o più server cache vengono disconnessi dal resto dei server nel cluster ma entrambi i set di server continuano a essere eseguiti. Questo di solito si verifica a causa di problemi o problemi di rete.

Quando ciò accade, ogni set di server cache si considera come i server sopravvissuti del cluster di cache originale e presume che l'altro set di server cache sia andato giù (da cui il termine cervello diviso che in termini medici significa che il lato sinistro del cervello non non so sul lato destro del cervello). I client cache possono anche essere suddivisi in modo simile oppure possono continuare a comunicare con tutti i server cache in base all'appartenenza al cluster originale.

Questa ovviamente non è una condizione sana e normale e porta a errori operazioni di cache e, soprattutto, ai problemi di integrità dei dati. Ogni "cluster diviso" ora dispone della propria copia dei dati che viene aggiornata in modo indipendente dai client. Inoltre, due o più copie degli stessi dati vengono aggiornate senza alcuna sincronizzazione.

Come viene rilevato il cervello diviso?

NCache ha la capacità di rilevare automaticamente quando si verifica un cervello diviso. L'appartenenza al cluster viene mantenuta su tutti i server cache nel cluster. Quindi, ogni volta che un cluster viene suddiviso in due o più sub-cluster a causa della situazione del cervello diviso, ogni sotto-cluster pensa di essere il cluster sopravvissuto e continua a lavorare con i suoi dati.

Ma, allo stesso tempo, sa che ci sono altri server cache che hanno lasciato il cluster in modo anomalo. Un modo normale è quando l'amministratore della cache utilizza un file NCache per rimuovere un server cache dal cluster. Quindi, ogni sub-cluster continua a provare a riconnettersi con i "server persi". Allo stesso tempo, ogni sub-cluster registra gli eventi al registro eventi di Windows indicando che alcuni dei suoi membri originali se ne sono andati. Quindi, in caso di split-brain, il NCache l'amministratore vede gli eventi "node left" per quasi tutti i server cache.

È solo quando viene ripristinata la connessione di rete tra i sottocluster divisi che vengono a conoscenza del fatto che si è effettivamente verificato un cervello diviso. Fino a questo momento, continuano a credere che alcuni dei loro membri abbiano lasciato il gruppo.

Dopo aver realizzato che si è verificato un cervello diviso, ogni sottocluster registra gli eventi nel registro eventi di Windows e può anche notificare l'amministratore della cache tramite notifica per email che si è verificato uno Split Brain.

Come funziona il recupero automatico del cervello diviso?

NCache consente di configurare il ripristino automatico dal cervello diviso. Se lo fai allora ogni volta NCache rileva un cervello diviso, si riprende automaticamente da esso. Consenti il ​​recupero del cervello diviso config.ncconf aggiungendo il file tag sotto il etichetta. È quindi possibile modificare il flag di abilitazione su true e impostare l'intervallo di rilevamento per il cervello diviso in secondi.

<cache-settings...>
  <split-brain-recovery enable="True" detection-interval="60"/>
</cache-settings>

Quando un cluster viene suddiviso in due o più sub-cluster e successivamente viene ripristinata la connessione di rete, alla fine si rendono conto che si è verificato uno split brain. A questo punto, se l'utente ha configurato il ripristino automatico, tutti i sottocluster negoziano tra loro per capire quale sottocluster dovrebbe diventare il "cluster principale" e il resto dei sottocluster, quindi unisciti a questo "master". cluster” eliminando i propri dati e agendo come se fossero nuovi nodi che si uniscono a un cluster esistente.

Le regole utilizzate per determinare quale sub-cluster dovrebbe diventare "master" sono semplici. È il sottocluster con il maggior numero di nodi membri. E, se più sub-cluster hanno lo stesso numero di nodi membri, quello il cui indirizzo IP del coordinatore è il più piccolo vince e diventa il "master cluster". E il resto del sottocluster si unisce e il risultato finale è un grande cluster equivalente alla dimensione del cluster originale.

Cosa fare dopo?

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