Edge for Private Cloud v4.18.05
Informazioni sul fattore di replica di Cassandra
Cassandra archivia le repliche dei dati su più nodi per garantire affidabilità e tolleranza di errore. La strategia di replica per ogni keyspace Edge determina i nodi in cui vengono posizionate le repliche.
Il numero totale di repliche per un keyspace in un cluster Cassandra è definito fattore di replica del keyspace. Un fattore di replica pari a uno significa che esiste una sola copia di ogni riga nel cluster Cassandra. Un fattore di replica pari a due significa che esistono due copie di ogni riga, ciascuna 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 ogni data center, il fattore di replica predefinito per un keyspace Edge è tre. In linea 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 keyspace Edge:
- Accedi a un nodo Cassandra.
- Esegui questo comando:
/opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"
Dove
$(hostname -i)viene risolto nell'indirizzo IP del nodo Cassandra. In alternativa, puoi sostituire$(hostname -i)con l'indirizzo IP del nodo.
Per ogni keyspace, l'output sarà nel seguente formato:
create keyspace kms
with placement_strategy = 'NetworkTopologyStrategy'
and strategy_options = {dc-1 : 3}
and durable_writes = true;Puoi vedere che per il data center 1, dc-1, il fattore di replica predefinito per il keyspace kms è tre per un'installazione con tre nodi Cassandra.
Se aggiungi altri nodi Cassandra al cluster, il fattore di replica predefinito non viene modificato.
Ad esempio, se aumenti il numero di nodi Cassandra a sei, ma lasci il fattore di replica a tre, non garantisci che tutti i nodi Cassandra abbiano una copia di tutti i dati. Se un nodo non è disponibile, un fattore di replica più elevato significa 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 sulle scritture dei dati.
Informazioni sul livello di coerenza di Cassandra
Il livello di coerenza di 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 livelli di coerenza diversi a keyspace Edge diversi.
Quando ci si connette a Cassandra per le operazioni di lettura e scrittura, i nodi processore di messaggi e Management Server in genere utilizzano il valore Cassandra di LOCAL_QUORUM per specificare il livello di coerenza per un keyspace. Tuttavia, alcuni keyspace sono definiti per 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 Edge 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 un nodo non attivo per data center.
Specificando il livello di coerenza come LOCAL_QUORUM, Edge evita la latenza richiesta dalla convalida delle operazioni in più data center. Se un keyspace utilizzava il valore QUORUM di Cassandra come livello di coerenza, le operazioni di lettura/scrittura dovevano essere convalidate in tutti i data center.
Per visualizzare il livello di coerenza utilizzato dai nodi processore di messaggi o Management Server di Edge:
- Accedi a un nodo Processore di messaggi.
- Passa alla directory /opt/apigee/edge-message-processor/conf:
cd /opt/apigee/edge-message-processor/conf
- Per la coerenza di scrittura:
grep -ri "write.consistencylevel" *
- Per la coerenza di lettura:
grep -ri "read.consistencylevel" *
- Accedi al nodo del server di gestione.
- Passa alla directory /opt/apigee/edge-management-server/conf:
cd /opt/apigee/edge-management-server/conf
- Ripeti i passaggi 3 e 4.
Se aggiungi altri nodi Cassandra al cluster, il livello di coerenza non viene influenzato.