Cassandra Archistruttura e fattore di replica
Cassandra è progettato per gestire Big Data. CassandraLa caratteristica principale di è quella di archiviare i dati su più nodi senza un singolo punto di errore.
Il motivo di questo tipo di CassandraL'architettura di era tale che il guasto hardware può verificarsi in qualsiasi momento. Qualsiasi nodo può essere inattivo. In caso di guasto, i dati memorizzati in un altro nodo possono essere utilizzati. Quindi, Cassandra è progettato con la sua architettura distribuita.
Cassandra memorizza i dati su nodi diversi con un'architettura distribuita peer-to-peer.
Tutti i nodi si scambiano informazioni tra loro utilizzando Protocollo di pettegolezzi. Il pettegolezzo è un protocollo in Cassandra attraverso il quale i nodi possono comunicare tra loro.
Componenti di Cassandra Architectura
Ci sono i seguenti componenti nel Cassandra Architecnologia:
Nodo
Il nodo è il luogo in cui vengono archiviati i dati. È la componente base di Cassandra.
Banca dati
Una raccolta di nodi è chiamata data center. Molti nodi sono classificati come data center.
Cluster
Il cluster è la raccolta di molti data center.
Registro dei commit
Ogni operazione di scrittura viene scritta nel log di commit. Il registro di commit viene utilizzato per il ripristino da arresto anomalo.
Tabella Mem
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 determinata soglia, i dati vengono scaricati in un file su disco SSTable.
Replica dei dati in Cassandra
Poiché possono verificarsi problemi hardware o il collegamento può essere interrotto in qualsiasi momento durante l'elaborazione dei dati, è necessaria una soluzione per fornire un backup quando si verifica il problema. Pertanto i dati vengono replicati per garantire l'assenza di singoli punti di errore.
Cassandra posiziona repliche di dati su nodi diversi in base a questi due fattori.
- Dove posizionare la replica successiva è determinato da Strategia di replica.
- Mentre il numero totale di repliche posizionate su nodi diversi è determinato da Fattore di replica.
Un fattore di replica significa che esiste una sola copia dei dati mentre tre fattori di replica significano che esistono tre copie dei dati su tre nodi diversi.
Per garantire che non vi sia alcun singolo punto di errore, il fattore di replica deve essere tre.
Esistono due tipi di strategie di replica in Cassandra.
SimpleStrategy dentro Cassandra
Strategia semplice viene utilizzato quando si ha un solo data center. SimpleStrategy posiziona la prima replica sul nodo selezionato dal partizionatore. Dopodiché, le repliche rimanenti vengono posizionate in senso orario nell'anello Node.
Ecco la rappresentazione pittorica della SimpleStrategy:
Strategia della topologia di rete in Cassandra
Strategia della topologia di rete viene utilizzato quando si hanno più di due data center. In NetworkTopologyStrategy, le repliche sono impostate separatamente per ogni data center. NetworkTopologyStrategy posiziona le repliche in senso orario nell'anello finché non raggiunge il primo nodo in un altro rack. Questa strategia cerca di posizionare le repliche su rack diversi nello stesso data center.
Ciò è dovuto al fatto che a volte possono verificarsi guasti o problemi nel rack. Quindi le repliche su altri nodi possono fornire dati.
Ecco la rappresentazione pittorica della strategia di topologia di rete:
Scrivi Operazione in Cassandra
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.
Livello di coerenza determina quanti nodi risponderanno con la conferma di successo.
Il nodo risponderà con la conferma di successo se i dati vengono scritti correttamente nel log di commit e memTable.
Ad esempio, in un singolo data center con un fattore di replica pari a tre, tre repliche riceveranno una richiesta di scrittura. Se il livello di coerenza è uno, solo una replica risponderà con la conferma dell'esito positivo e le restanti due rimarranno inattive.
Supponiamo che le due repliche rimanenti perdano dati a causa di nodi inattivi o di qualche altro problema, Cassandra renderà la riga coerente grazie al meccanismo di riparazione integrato in Cassandra.
Qui viene spiegato come avviene il processo di scrittura Cassandra,
- Quando la richiesta di scrittura arriva al nodo, prima di tutto, registra nel log di commit.
- Poi Cassandra scrive i dati nella tabella mem. I dati scritti nella tabella mem su ogni richiesta di scrittura vengono scritti anche separatamente nel log di commit. Mem-table è un dato archiviato temporaneamente nella memoria mentre il log di commit registra i record delle transazioni a scopo di backup.
- Quando la tabella mem è piena, i dati vengono trasferiti nel file di dati SSTable.
Leggi Operazione in Cassandra
Esistono tre tipi di richieste di lettura che un coordinatore invia alle repliche.
- Richiesta diretta
- Richiesta di sintesi
- 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 controlla se i dati restituiti sono dati aggiornati.
Successivamente, il coordinatore invia la richiesta digest a tutte le repliche rimanenti. Se un nodo fornisce un valore non aggiornato, una richiesta di riparazione in lettura in background aggiornerà tali dati. Questo processo è chiamato meccanismo di riparazione della lettura.
Sommario
- Questo tutorial spiega il Cassandra architettura interna e come Cassandra replica, scrive e legge i dati in fasi diverse.
- Inoltre, qui viene spiegato come Cassandra mantiene il livello di coerenza durante tutto il processo.
- Componenti di Cassandra Archiarchitettura: Nodo, Data Center, Cluster, Commit Log, Mem-table, SSTable
- Un fattore di replica significa che esiste una sola copia dei dati mentre tre fattori di replica significano che esistono tre copie dei dati su tre nodi diversi.
- SimpleStrategy viene utilizzato quando si dispone di un solo data center.
- NetworkTopologyStrategy viene utilizzato quando si hanno più di due data center.