Acerca del factor de replicación de Cassandra y el nivel de coherencia

Información acerca del factor de replicación de Cassandra

Cassandra almacena réplicas de datos en varios nodos para garantizar la confiabilidad y la tolerancia a errores. La estrategia de replicación para cada espacio de claves de Edge determina los nodos en los que se encuentran las réplicas y dónde se colocará.

La cantidad total de réplicas de un espacio de claves en un clúster de Cassandra se conoce como factor de replicación de espacio de claves. Un factor de replicación de uno significa que solo hay un copia de cada fila en el clúster de Cassandra. Un factor de replicación de dos significa que hay dos copias de cada fila, y cada copia está en un nodo diferente. Todas las réplicas son igualmente importantes; no hay una réplica principal o principal.

En un sistema de producción con tres o más nodos Cassandra en cada centro de datos, el valor predeterminado el factor de replicación del espacio de claves de Edge es tres. Como regla general, el factor de replicación no debe superar la cantidad de nodos de Cassandra en el clúster.

Usa el siguiente procedimiento para ver el esquema de Cassandra, que muestra el factor de replicación para cada espacio de teclas de Edge:

  1. Accede a un nodo de Cassandra.
  2. Ejecuta el siguiente comando:
    /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    Donde $(hostname -i) se resuelve en la dirección IP del nodo de Cassandra. O tú puede reemplazar $(hostname -i) por la dirección IP del nodo.

Para cada espacio de claves, verás un resultado con el siguiente formato:

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

Puedes ver que, para el centro de datos 1, dc-1, el factor de replicación predeterminado para la El espacio de teclas kms es tres para una con tres nodos Cassandra.

Si agregas nodos de Cassandra adicionales al clúster, el factor de replicación predeterminado no es afectado.

Por ejemplo, si aumentas la cantidad de nodos de Cassandra a seis, pero dejas la replicación factor en tres, no te aseguras de que todos los nodos de Cassandra tengan una copia de todos los datos. Si un el nodo deja de funcionar, un factor de replicación más alto significa una mayor probabilidad de que los datos del nodo existe en uno de los nodos restantes. La desventaja de un factor de replicación más alto es un aumento latencia en escrituras de datos.

Información acerca del nivel de coherencia de Cassandra

El nivel de coherencia de Cassandra se define como la cantidad mínima de nodos de Cassandra que deben confirmar una operación de lectura o escritura antes de que se considere correcta. Se pueden asignar diferentes niveles de coherencia a distintos espacios de claves de Edge.

Cuando te conectas a Cassandra para operaciones de lectura y escritura, Message Processor and Management Por lo general, los nodos del servidor usan el valor Cassandra de LOCAL_QUORUM para especificar el nivel de coherencia de un espacio de claves. Sin embargo, algunos espacios de claves se definen para usar una el nivel de coherencia de uno.

El cálculo del valor de LOCAL_QUORUM para un centro de datos es el siguiente:

LOCAL_QUORUM = (replication_factor/2) + 1

Como se describió anteriormente, el factor de replicación predeterminado para un entorno de producción de Edge con tres nodos de Cassandra es tres. Por lo tanto, el valor predeterminado de LOCAL_QUORUM = (3/2) +1 = 2 (el valor se redondea a un número entero).

Con LOCAL_QUORUM = 2, al menos dos de los tres nodos de Cassandra en los datos centro debe responder a una operación de lectura/escritura para que la operación tenga éxito. Para un nodo de tres nodos Por lo tanto, el clúster de Cassandra podría tolerar que un nodo esté inactivo por cada centro de datos.

Cuando se especifica el nivel de coherencia como LOCAL_QUORUM, Edge evita la latencia. necesarios validando las operaciones en varios centros de datos. Si un espacio de claves usaba el ícono de Cassandra QUORUM como nivel de coherencia, las operaciones de lectura y escritura tendrían que validados en todos los centros de datos.

Para ver el nivel de coherencia que usan los nodos del Procesador de mensajes perimetrales o del Servidor de administración, haz lo siguiente:

  1. Accede a un nodo del procesador de mensajes.
  2. Cambia al directorio /opt/apigee/edge-message-processor/conf:
    cd /opt/apigee/edge-message-processor/conf
  3. Para lograr coherencia de escritura, usa el siguiente código:
    grep -ri "write.consistencylevel" *
  4. Para lograr coherencia de lectura:
    grep -ri "read.consistencylevel" *
  5. Accede al nodo del servidor de administración.
  6. Cambia al directorio /opt/apigee/edge-management-server/conf:
    cd /opt/apigee/edge-management-server/conf
  7. Repite los pasos 3 y 4.

Si agregas nodos de Cassandra adicionales al clúster, el nivel de coherencia no se ve afectado.