Arquitectura de Cassandra & Estrategia de factor de replicación

Cassandra está diseñada para manejar big data. La característica principal de Cassandra es almacenar datos en múltiples nodos sin un solo punto de falla.

La razón de este tipo de arquitectura de Cassandra fue que la falla de hardware puede ocurrir en cualquier momento. Cualquier nodo puede estar inactivo. En caso de falla, se pueden utilizar los datos almacenados en otro nodo. Por lo tanto, Cassandra está diseñada con su arquitectura distribuida.

Cassandra almacena datos en diferentes nodos con una arquitectura de moda distribuida de igual a igual.

Todos los nodos intercambian información entre sí mediante el protocolo Gossip . Gossip es un protocolo en Cassandra mediante el cual los nodos pueden comunicarse entre sí.

En este tutorial, aprenderá:

  • Componentes de Cassandra
  • Replicación de datos
  • Operación de escritura
  • Leer operación

Componentes de Cassandra

Hay los siguientes componentes en Cassandra;

Diagrama de arquitectura de Cassandra
  • Nodo

    El nodo es el lugar donde se almacenan los datos. Es el componente básico de Cassandra.

  • Centro de datos

    Una colección de nodos se denomina centro de datos. Muchos nodos se clasifican como centro de datos.

  • Grupo

    El clúster es la colección de muchos centros de datos.

  • Confirmar registro

    Cada operación de escritura se escribe en el registro de confirmación. El registro de confirmación se utiliza para la recuperación de fallos.

  • Mem-mesa

    Después de escribir los datos en el registro de confirmación, los datos se escriben en la tabla Mem. Los datos se escriben en Mem-table temporalmente.

  • SSTable

    Cuando Mem-table alcanza un cierto umbral, los datos se vacían en un archivo de disco SSTable.

Replicación de datos

Como pueden ocurrir problemas de hardware o el enlace puede fallar en cualquier momento durante el proceso de datos, se requiere una solución para proporcionar una copia de seguridad cuando se produce el problema. Por lo tanto, los datos se replican para garantizar que no haya un solo punto de falla.

Cassandra coloca réplicas de datos en diferentes nodos según estos dos factores.

  • La estrategia de replicación determina dónde colocar la siguiente réplica .
  • Mientras que la cantidad total de réplicas colocadas en diferentes nodos está determinada por el factor de replicación .

Un factor de replicación significa que solo hay una copia de los datos, mientras que tres factores de replicación significa que hay tres copias de los datos en tres nodos diferentes.

Para garantizar que no haya un solo punto de falla, el factor de replicación debe ser tres.

Hay dos tipos de estrategias de replicación en Cassandra.

SimpleStrategy

SimpleStrategy se usa cuando solo tiene un centro de datos. SimpleStrategy coloca la primera réplica en el nodo seleccionado por el particionador. Después de eso, las réplicas restantes se colocan en el sentido de las agujas del reloj en el anillo de nodo.

Aquí está la representación pictórica de SimpleStrategy.

RedTopologíaEstrategia

NetworkTopologyStrategy se utiliza cuando tiene más de dos centros de datos.

En NetworkTopologyStrategy, las réplicas se establecen para cada centro de datos por separado. NetworkTopologyStrategy coloca las réplicas en el sentido de las agujas del reloj en el anillo hasta que alcanza el primer nodo en otro bastidor.

Esta estrategia intenta colocar réplicas en diferentes racks en el mismo centro de datos. Esto se debe a que a veces pueden producirse fallos o problemas en el bastidor. Entonces, las réplicas en otros nodos pueden proporcionar datos.

Aquí está la representación pictórica de la estrategia de topología de red

Operación de escritura

El coordinador envía una solicitud de escritura a las réplicas. Si todas las réplicas están activas, recibirán una solicitud de escritura independientemente de su nivel de coherencia.

El nivel de coherencia determina cuántos nodos responderán con el reconocimiento de éxito.

El nodo responderá con el reconocimiento de éxito si los datos se escriben correctamente en el registro de confirmación y memTable.

Por ejemplo, en un solo centro de datos con un factor de replicación igual a tres, tres réplicas recibirán una solicitud de escritura. Si el nivel de coherencia es uno, solo una réplica responderá con el reconocimiento de éxito y las dos restantes permanecerán inactivas.

Suponga que si las dos réplicas restantes pierden datos debido a la caída del nodo o algún otro problema, Cassandra hará que la fila sea coherente mediante el mecanismo de reparación incorporado en Cassandra.

Aquí se explica cómo ocurre el proceso de escritura en Cassandra,

  1. Cuando la solicitud de escritura llega al nodo, en primer lugar, se registra en el registro de confirmación.
  2. Luego, Cassandra escribe los datos en la tabla de memoria. Los datos escritos en la tabla de memorias en cada solicitud de escritura también se escriben en el registro de confirmación por separado. Mem-table es un dato almacenado temporalmente en la memoria, mientras que Commit log registra los registros de transacciones con fines de respaldo.
  3. Cuando la tabla de memoria está llena, los datos se vacían en el archivo de datos de SSTable.

Leer operación

Hay tres tipos de solicitudes de lectura que un coordinador envía a las réplicas.

  1. Solicitud directa
  2. Solicitud de resumen
  3. Leer solicitud de reparación

El coordinador envía una solicitud directa a una de las réplicas. Después de eso, el coordinador envía la solicitud de resumen al número de réplicas especificado por el nivel de coherencia y comprueba si los datos devueltos son datos actualizados.

Después de eso, el coordinador envía una solicitud de resumen a todas las réplicas restantes. Si algún nodo da un valor desactualizado, una solicitud de reparación de lectura en segundo plano actualizará esos datos. Este proceso se denomina mecanismo de reparación de lectura.

Resumen

Este tutorial explica la arquitectura interna de Cassandra y cómo Cassandra replica, escribe y lee datos en diferentes etapas. Además, aquí explica cómo Cassandra mantiene el nivel de consistencia durante todo el proceso.

Articulos interesantes...