Informazioni sul fattore di replica e sul livello di coerenza di Cassandra

Informazioni sul fattore di replica Cassandra

Cassandra archivia le repliche dei dati su più nodi per garantire affidabilità e tolleranza di errore. La strategia di replica per ogni spazio delle chiavi Edge determina i nodi in cui si trovano le repliche inserito.

Il numero totale di repliche per uno spazio delle chiavi in un cluster Cassandra è denominato fattore di replica dello spazio delle chiavi. Un fattore di replica pari a uno significa che c'è solo uno di ogni riga nel cluster Cassandra. Un fattore di replica pari a due significa che ci sono due di copie di ogni riga, dove ogni copia si trova su un nodo diverso. Tutte le repliche sono ugualmente importanti, non esiste una replica principale o master.

In un sistema di produzione con tre o più nodi Cassandra in ciascun data center, l'impostazione predefinita il fattore di replica per uno spazio delle chiavi Edge è tre. Come regola generale, il fattore di replica non deve superare il numero di nodi Cassandra nel cluster.

Utilizza la seguente procedura per visualizzare lo schema Cassandra, che mostra il fattore di replica per ogni spazio delle chiavi Edge:

  1. Accedi a un nodo Cassandra.
  2. Esegui questo comando:
    /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    Dove $(hostname -i) si risolve nell'indirizzo IP del nodo Cassandra. Oppure tu può sostituire $(hostname -i) con l'indirizzo IP del nodo.

Per ogni spazio delle chiavi, l'output sarà visualizzato nel seguente formato:

create keyspace kms
  with placement_strategy = 'NetworkTopologyStrategy'
  and strategy_options = {dc-1 : 3}
  and durable_writes = true;

Puoi notare che per il data center 1, dc-1, il fattore di replica predefinito per Lo spazio delle chiavi kms è tre per con tre nodi Cassandra.

Se aggiungi altri nodi Cassandra al cluster, il fattore di replica predefinito non è interessati.

Ad esempio, se aumenti il numero di nodi Cassandra a sei, ma lasci la replica fattore tre, non ti assicuri che tutti i nodi Cassandra abbiano una copia di tutti i dati. Se un nodo smette di funzionare, un fattore di replica più elevato indica una maggiore probabilità che i dati su uno dei nodi rimanenti. Lo svantaggio di un fattore di replica più elevato è la latenza di scrittura di dati.

Informazioni sul livello di coerenza di Cassandra

Il livello di coerenza Cassandra è definito come il numero minimo di nodi Cassandra che devono confermare un'operazione di lettura o scrittura prima che l'operazione possa essere considerata riuscita. È possibile assegnare diversi livelli di coerenza a spazi dei tasti di Edge diversi.

Quando ti connetti a Cassandra per le operazioni di lettura e scrittura, il processore di messaggi e la gestione I nodi server in genere utilizzano il valore Cassandra di LOCAL_QUORUM per per specificare il livello di coerenza di uno spazio delle chiavi. Tuttavia, alcuni spazi delle chiavi sono definiti in modo da utilizzare con un livello di coerenza di uno.

Il calcolo del valore di LOCAL_QUORUM per un data center è:

LOCAL_QUORUM = (replication_factor/2) + 1

Come descritto sopra, il fattore di replica predefinito per un ambiente di produzione Edge con tre nodi Cassandra sono tre. Di conseguenza, il valore predefinito di LOCAL_QUORUM = (3/2) +1 = 2 (il valore viene arrotondato per difetto a un numero intero).

Con LOCAL_QUORUM = 2, almeno due dei tre nodi Cassandra nei dati center deve rispondere a un'operazione di lettura/scrittura affinché l'operazione riesca. Per un modello a tre nodi, nel cluster Cassandra, il cluster potrebbe quindi tollerare lo stato inattivo di un nodo per data center.

Specificando il livello di coerenza come LOCAL_QUORUM, Edge evita la latenza necessarie convalidando le operazioni in più data center. Se uno spazio delle chiavi utilizzava Cassandra QUORUM come livello di coerenza, le operazioni di lettura/scrittura dovrebbero essere viene convalidata in tutti i data center.

Per visualizzare il livello di coerenza utilizzato dai nodi del processore di messaggi Edge o del server di gestione:

  1. Accedi a un nodo del processore di messaggi.
  2. Passa alla directory /opt/apigee/edge-message-processor/conf:
    cd /opt/apigee/edge-message-processor/conf
  3. Per coerenza in scrittura:
    grep -ri "write.consistencylevel" *
  4. Per coerenza di lettura:
    grep -ri "read.consistencylevel" *
  5. Accedi al nodo del server di gestione.
  6. Passa alla directory /opt/apigee/edge-management-server/conf:
    cd /opt/apigee/edge-management-server/conf
  7. Ripeti i passaggi 3 e 4.

Se aggiungi altri nodi Cassandra al cluster, il livello di coerenza non viene influenzato.