Cassandra Architecture & Strategia del fattore di replica

Sommario:

Anonim

Cassandra è progettata per gestire i big data. La caratteristica principale di Cassandra è memorizzare i dati su più nodi senza un singolo punto di errore.

Il motivo di questo tipo di architettura di Cassandra era che l'errore hardware può verificarsi in qualsiasi momento. Qualsiasi nodo può essere inattivo. In caso di guasto è possibile utilizzare i dati memorizzati in un altro nodo. Quindi, Cassandra è progettata con la sua architettura distribuita.

Cassandra memorizza i dati su diversi nodi con un'architettura di moda distribuita peer to peer.

Tutti i nodi si scambiano informazioni tra loro utilizzando il protocollo Gossip . Gossip è un protocollo in Cassandra tramite il quale i nodi possono comunicare tra loro.

In questo tutorial imparerai-

  • Componenti di Cassandra
  • Replica dei dati
  • Scrivi operazione
  • Leggi operazione

Componenti di Cassandra

Ci sono i seguenti componenti nella Cassandra;

Schema di architettura di Cassandra
  • Nodo

    Il nodo è il luogo in cui vengono archiviati i dati. È il componente di base di Cassandra.

  • Banca dati

    Una raccolta di nodi è denominata data center. Molti nodi sono classificati come data center.

  • Grappolo

    Il cluster è la raccolta di molti data center.

  • Registro commit

    Ogni operazione di scrittura viene scritta nel registro di commit. Il registro commit viene utilizzato per il ripristino in caso di arresto anomalo.

  • Mem-table

    Dopo che i dati sono stati scritti nel log di commit, i dati vengono scritti nella tabella Mem. I dati vengono scritti temporaneamente nella tabella Mem.

  • SSTable

    Quando Mem-table raggiunge una certa soglia, i dati vengono scaricati in un file su disco SSTable.

Replica dei dati

Poiché può verificarsi un problema hardware o il collegamento può essere interrotto in qualsiasi momento durante l'elaborazione dei dati, è necessaria una soluzione per fornire un backup quando si è verificato il problema. Quindi i dati vengono replicati per garantire nessun singolo punto di errore.

Cassandra posiziona le repliche dei dati su diversi nodi in base a questi due fattori.

  • La posizione in cui posizionare la replica successiva è determinata dalla strategia di replica .
  • Mentre il numero totale di repliche posizionate su nodi diversi è determinato dal fattore di replica .

Un fattore di replica significa che esiste una sola copia dei dati mentre tre fattori di replica indicano che ci sono tre copie dei dati su tre nodi diversi.

Per garantire che non vi sia un singolo punto di errore, il fattore di replica deve essere tre.

Esistono due tipi di strategie di replica in Cassandra.

SimpleStrategy

SimpleStrategy viene utilizzato quando si dispone di un solo data center. SimpleStrategy posiziona la prima replica sul nodo selezionato dal partitioner. Dopodiché, le repliche rimanenti vengono posizionate in senso orario nell'anello del nodo.

Ecco la rappresentazione pittorica della SimpleStrategy.

NetworkTopologyStrategy

NetworkTopologyStrategy viene utilizzato quando si hanno più di due data center.

In NetworkTopologyStrategy, le repliche vengono impostate separatamente per ogni data center. NetworkTopologyStrategy posiziona le repliche in senso orario nell'anello fino a raggiungere il primo nodo in un altro rack.

Questa strategia cerca di posizionare le repliche su diversi rack nello stesso data center. Ciò è dovuto al motivo per cui a volte possono verificarsi guasti o problemi nel rack. Quindi le repliche su altri nodi possono fornire dati.

Ecco la rappresentazione pittorica della strategia della topologia di rete

Scrivi operazione

Il coordinatore invia una richiesta di scrittura alle repliche. Se tutte le repliche sono attive, riceveranno una richiesta di scrittura indipendentemente dal loro livello di coerenza.

Il livello di coerenza determina il numero di nodi che risponderà con il riconoscimento del successo.

Il nodo risponderà con la conferma di successo se i dati vengono scritti correttamente nel log di commit e in memTable.

Ad esempio, in un singolo data center con fattore di replica uguale a tre, tre repliche riceveranno una richiesta di scrittura. Se il livello di coerenza è uno, solo una replica risponderà con il riconoscimento di successo e le restanti due rimarranno inattive.

Supponiamo che se le restanti due repliche perdono dati a causa di un nodo inattivo o qualche altro problema, Cassandra renderà la riga coerente con il meccanismo di riparazione integrato in Cassandra.

Qui viene spiegato, come avviene il processo di scrittura in Cassandra,

  1. Quando la richiesta di scrittura arriva al nodo, prima di tutto, si registra nel log di commit.
  2. Quindi Cassandra scrive i dati nella mem-table. I dati scritti nella tabella mem su ogni richiesta di scrittura vengono scritti anche nel log di commit separatamente. Mem-table è un dato archiviato temporaneamente nella memoria mentre il registro Commit registra i record delle transazioni a scopo di backup.
  3. Quando mem-table è pieno, i dati vengono scaricati nel file di dati SSTable.

Leggi operazione

Esistono tre tipi di richieste di lettura che un coordinatore invia alle repliche.

  1. Richiesta diretta
  2. Richiesta digest
  3. Leggi la richiesta di riparazione

Il coordinatore invia una richiesta diretta a una delle repliche. Successivamente, il coordinatore invia la richiesta digest al numero di repliche specificato dal livello di coerenza e verifica se i dati restituiti sono dati aggiornati.

Successivamente, il coordinatore invia una richiesta digest a tutte le repliche rimanenti. Se un nodo fornisce un valore non aggiornato, una richiesta di riparazione della lettura in background aggiornerà i dati. Questo processo è chiamato meccanismo di riparazione della lettura.

Sommario

Questo tutorial spiega l'architettura interna di Cassandra e come Cassandra replica, scrive e legge i dati in diverse fasi. Inoltre, qui spiega come Cassandra mantiene il livello di coerenza durante tutto il processo.