Informazioni sul livello di coerenza e sul fattore di replica Cassandra

Edge per Private Cloud v4.18.01

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 perimetrale determina i nodi in cui vengono posizionate le repliche.

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

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

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

  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. In alternativa, puoi sostituire $(hostname -i) con l'indirizzo IP del nodo.

Per ogni spazio dei tasti, visualizzerai l'output nel modulo:

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

Come puoi notare, per il data center 1, dc-1, il fattore di replica predefinito per lo spazio delle chiavi kms è tre per un'installazione con tre nodi Cassandra.

L'aggiunta di altri nodi Cassandra al cluster non influisce sul fattore di replica predefinito.

Ad esempio, se aumenti il numero di nodi Cassandra a sei, ma lasci il fattore di replica su tre, non avrai la certezza 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 sul nodo esistano su uno dei nodi rimanenti. Lo svantaggio di un fattore di replica più elevato è una maggiore latenza nelle scritture dei dati.

Informazioni sul livello di coerenza 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 Edge differenti.

Durante la connessione a Cassandra per le operazioni di lettura e scrittura, i nodi del processore di messaggi e del server di gestione in genere utilizzano il valore Cassandra LOCAL_QUORUM per specificare il livello di coerenza per uno spazio delle chiavi. Tuttavia, alcuni spazi delle chiavi sono definiti in modo da utilizzare un livello di coerenza pari a 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 perimetrale con tre nodi Cassandra è tre. Pertanto, 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 nel data center devono rispondere a un'operazione di lettura/scrittura affinché l'operazione vada a buon fine. Per un cluster Cassandra a tre nodi, il cluster potrebbe quindi tollerare che un nodo sia inattivo per data center.

Specificando il livello di coerenza come LOCAL_QUORUM, Edge evita la latenza richiesta convalidando le operazioni su più data center. Se uno spazio delle chiavi utilizzasse il valore QUORUM di Cassandra come livello di coerenza, le operazioni di lettura/scrittura dovrebbero essere convalidate in tutti i data center.

Per visualizzare il livello di coerenza utilizzato dai nodi del processore dei messaggi periferico 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 nella scrittura:
    > grep -ri "write.consistencylevel" *
  4. Per coerenza di lettura:
    > grep -ri "read.consistencylevel" *
  5. Accedere 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.

L'aggiunta di altri nodi Cassandra al cluster non influisce sul livello di coerenza.