Está en la página 1de 9

¿Qué es 

Cassandra?
Apache Cassandra es un software que fue lanzado en el año 2008, originalmente
desarrollado por Facebook, posteriormente fue dado a la fundación Apache, hoy en día
es una gran herramienta de código abierto usada por gigantes de la informática como
Twitter, por ejemplo.

Este Software nos permite principalmente el manejo masivo de datos, de una forma
escalable, de hecho, esta es su mayor virtud, la capacidad lineal de escalar que posee.
Este software posee conceptos muy innovadores como lo son el soporte multi-data
center o la comunicación P2P entre nodos. Apache Cassandra es una base de datos de
denominación NoSQL (Not Only SQL).

¿Qué es un NoSQL?
Es una base de datos que debido a la evolución actual y el incremento de datos tuvo que
ser creada. Esta es una base de datos flexible en cuanto a recopilar datos
desestructurados o semi-estructurados se refiere.

Ahora bien, comprendiendo que es una NoSQL, podemos proseguir hablando sobre
Cassandra, este es un Software con distintas características que te mencionaremos a
continuación:

 Tiene la virtud de escalar linealmente, esto quiere decir que, supongamos que
tenemos 2 nodos, con ellos podremos realizar 100.000 operaciones cada
segundo, ahora, si tuviésemos 4 nodos realizaríamos el doble de operaciones, así
sucesivamente.
 Sigue un sistema P2P (Peer-to-peer) y no uno ‘’Maestro-Esclavo’’, ¿Qué
quiere decir esto?, pues que en el sistema P2P si un nodo cae, el resto del
servicio sigue funcionando, en cambio, en el ‘’Maestro-Esclavo’’, si el maestro
cae, el sistema igual.
 Tiene alta tolerancia con los fallos, ya que posee un sistema de replicación de
datos.
 Permite la replicación de datos en múltiples data center.
 Maneja lenguaje CQL, que es muy parecido a SQL.

Entre otras características. Ahora bien, hay una nueva versión de Apache Cassandra en
el mercado, Apache Cassandra 4.0, aún está en fase beta, pero los desarrolladores
aseguran que este Software de Apache es el más estable que se ha lanzado. Posee más
de 1000 correcciones de errores pasados, muchas mejoras y nuevas características,
como por ejemplo la incorporación de nuevas capacidades de auditoría de nivel
empresarial.

Esta nueva versión de Cassandra supone una mejora en distintos aspectos, como, por
ejemplo, la estabilidad. El equipo de desarrolladores de Casandra está convencido de
que la tasa de estabilidad de este software jamás había sido tan alta.

Otro factor importante en esta nueva versión de Cassandra es el nivel


de actuación. Incluye una mayor adopción de Netty Transport Framework alrededor de
todo el código base. Esto facilita muchísimo la comunicación entre nodos al integrar un
código de red dado por eventos asíncronos de Netty. Cassandra 4.0 permite presentar un
único grupo de subprocesos para todas las conexiones de nodos.

Pero una de los detalles más resaltantes que debemos tomar en cuenta, es la asombrosa
comunidad, ya que sin ella Cassandra no sería lo que es y no hubiese podido continuar
mejorando sus capacidades, con esta última versión de Apache Cassandra esta
comunidad ha demostrado la validez y funcionalidad del modelo de Software Open
Source.
¿Qué es Cassandra (Apache
Cassandra)?
Apache Cassandra es un sistema de base de datos distribuida de código
abierto que está diseñado para almacenar y administrar grandes
cantidades de datos en servidores básicos. Cassandra puede servir como
almacén de datos operativos en tiempo real para aplicaciones
transaccionales en línea y como base de datos de lectura intensiva para
sistemas de inteligencia empresarial (BI) a gran escala.

Creada originalmente para Facebook, Cassandra está diseñada para tener


nodos simétricos de igual a igual, en lugar de nodos maestros o con
nombre, para garantizar que nunca pueda haber un solo punto de falla
(SPoF). Cassandra divide automáticamente los datos en todos los nodos
del clúster de la base de datos, pero el administrador tiene el poder de
determinar qué datos se replicarán y cuántas copias de los datos se
crearán.

Después de que Facebook abriera el código, Cassandra se convirtió en un


proyecto de Apache Incubator en 2008 y en un proyecto de Apache de
alto nivel en 2010. Al momento de escribir este artículo, las
implementaciones de Cassandra incluyen Netflix, Digg, Adobe, Twitter,
HP, IBM, Rackspace, Cisco y Reddit.

El nombre Cassandra se inspiró en la hermosa vidente mística de la


mitología griega cuyas predicciones para el futuro nunca fueron creídas.

Arquitectura de Cassandra con diagramas –


Componentes de Cassandra
Arquitectura Cassandra con Diagrama – Componentes de Cassandra. En este tutorial,
repasaremos la arquitectura de Cassandra y aprenderemos los componentes de
Cassandra. La arquitectura Apache Cassandra está diseñada para proporcionar
escalabilidad, disponibilidad y confiabilidad para almacenar cantidades masivas de
datos. Cassandra fue diseñado para perfeccionar los requisitos de arquitectura.

¿Qué es Cassandra?

Apache Cassandra es una base de datos distribuida orientada a columnas diseñada


para almacenar y manejar big data en múltiples nodos sin ningún punto único de falla.
La razón para diseñar esta forma de arquitectura de Cassandra fue guardar sus datos
de una falla de hardware que podría ocurrir en cualquier momento. No hay garantía ya
que cualquier nodo puede caer debido a problemas técnicos. Por lo tanto, Cassandra
fue diseñado con una arquitectura distribuida para ofrecer una entrega y un
rendimiento continuos.
Si un nodo falla, las solicitudes de lectura y escritura se pueden servir en la red con la
ayuda de otros nodos. En esta guía, discutiremos algunos de los componentes
esenciales de Cassandra, el factor de replicación, las estrategias (Estrategia simple y
estrategia de topología de red) utilizadas en Cassandra y las operaciones de escritura y
lectura en detalle.
Lea también
Cómo configurar Cassandra Cluster en Azure/AWS/GCP

Arquitectura Cassandra con diagrama


Componentes de Cassandra
En esta parte del tutorial de Cassandra Architecture with Diagram es vital entender
que Apache Cassandra es tolerante a fallos, altamente escalable, confiable, segura y
fácil de distribución de datos de base de datos. Comprende varios componentes que
desempeñan un papel clave en el buen funcionamiento de la base de datos distribuida.
Estos son los principales componentes de Cassandra:
1. Nodo: Nodo es la ubicación donde se almacenan todos los datos y archivos.
2. Centro de datos: un centro de datos es un grupo o colección de nodos. Juntos,
estos nodos se clasifican como centros de datos.
3. Cassandra Cluster: El cluster es otro componente de Cassandra. Es un grupo o
colección de uno o más centros de datos.
4. Registro de confirmación: todas las operaciones de escritura se escriben en el
registro de confirmación en Cassandra, utilizado para la recuperación de
bloqueos.
5. Tabla Mem: En Cassandra, la tabla mem tiene una estructura de datos
residente en memoria. Una vez que los datos se escriben en el registro de
confirmación, se escriben en la tabla mem de forma temporal.
6. SSTable: es un archivo de disco al que se vacían todos los datos de la tabla
mem a medida que alcanza un determinado valor umbral.
7. Filtro Bloom: es una caché utilizada para probar después de cada consulta. Los
filtros bloom son algoritmos rápidos, no deterministas, en Cassandra.
8. Tabla CQL: Cassandra Query Language (CQL) es una colección de columnas
ordenadas en una tabla. Cada tabla consta de columnas y clave principal.
9. Protocolo de chismes: Son protocolos de comunicación que ayudan a
descubrir, compartir la ubicación y los datos sobre los diferentes nodos
presentes en el clúster.
Lea también
Cassandra vs. MongoDB vs. Redis vs. MySQL vs. PostgreSQL (Pros y Contras)

Replicación de datos en Cassandra


Se utiliza como un plan de copia de seguridad para las condiciones cuando un enlace se
cae o se produce un problema de hardware durante el proceso de datos. La estrategia
de replicación de datos en Cassandra utiliza la replicación para garantizar una alta
disponibilidad y sin un solo punto de falla. Cassandra coloca una copia o modelo exacto
de cada elemento de datos en diferentes nodos sobre la base de estos dos factores:
1. Estrategia de replicación determina el lugar para la siguiente réplica.
 
1. El factor de replicación determina la suma total de réplicas que se colocarán
para cada nodo.
Por ejemplo, un único factor de replicación implica que existe una única copia de datos
en un nodo. Sin embargo, tres factores de replicación implican que hay tres copias de
los datos disponibles en tres nodos diferentes.
El factor de replicación debe ser tres para garantizar que no haya un único punto de
falla y que el rendimiento sea continuo. Cada nodo se comunica con el otro utilizando
el protocolo Gossip en Cassandra.
Lea también
Cómo instalar Apache Cassandra en Ubuntu 20.04 (Tutorial)

Estrategias de replicación en Cassandra


Eche un vistazo a los dos tipos de estrategias de replicación utilizadas en Cassandra.
1. Estrategia simple en Cassandra
Se utiliza principalmente cuando solo tiene un centro de datos. Según la estrategia
simple, el practicante selecciona el nodo para colocar la primera réplica. Después de
colocar el primero, las réplicas se colocan en el sentido de las agujas del reloj a los
nodos restantes en Cassandra.
Mira la representación pictórica de la Estrategia Simple en Casandra.

2. Estrategia de topología de red en Cassandra


Esta estrategia se utiliza cuando se tienen dos o más centros de datos. Según la
estrategia de topología de red, se colocan réplicas separadas para cada centro de
datos en el sentido de las agujas del reloj en el anillo.
De acuerdo con la estrategia, las réplicas se colocan en cada nodo hasta que llegan al
primer nodo de otro rack. La estrategia de topología de red garantiza la colocación de
réplicas en otros racks del mismo centro de datos.
El propósito es garantizar que si un rack falla o se produce un problema, los otros
nodos de la réplica puedan servir los datos.
Mira la representación pictórica de la estrategia de Topología de Red en Cassandra.

Lea también
Redis Sentinel vs Cluster – ¿Cuál es mejor? (Pros y contras)

Lenguaje de consulta Cassandra


Los usuarios acceden a Cassandra a través de los nodos aplicando Cassandra Query
Language (CQL). CQL utiliza la base de datos como contenedor de tablas. Los
programadores usan cqlsh, que es un mensaje para trabajar con CQL o controladores
de lenguaje de aplicación separados.
Operación de escritura de Cassandra
Las réplicas reciben la solicitud de escritura de los coordinadores independientemente
de su nivel de consistencia. El nivel de coherencia decide cuántos nodos de un clúster
se revertirán reconociendo el éxito, es decir, los datos se escriben correctamente en el
registro de confirmación.
Los registros de confirmación capturan todas las operaciones de escritura de los nodos
que luego se almacenan en la tabla mem de forma temporal. El registro de
confirmación mantiene registros de transacciones para la copia de seguridad. A
medida que la tabla mem alcanza su valor de umbral, todos los datos se mueven y se
escriben en el archivo de datos SStable. Cassandra consolida el archivo de datos
SStable de forma oportuna y elimina los datos innecesarios.
Un ejemplo: un solo dato con un factor de replicación como tres recibirá una solicitud
de escritura para tres réplicas. Ahora, si su nivel de consistencia es uno, entonces solo
una réplica se revertirá con el reconocimiento de éxito y la otra permanecerá inactiva.
Además, consideremos que las otras dos réplicas restantes pierden datos debido a una
falla del nodo u otros problemas, Cassandra utilizará el mecanismo de reparación
incorporado para hacer que la fila sea consistente en Cassandra.
En resumen, así es como se lleva a cabo el proceso de escritura en Cassandra:
 
1. A medida que el nodo recibe la solicitud de escritura, escribe en el registro de
confirmación que mantiene los registros de transacciones para la copia de
seguridad.
 
1. En el siguiente paso, el registro de confirmación escribe y almacena datos en
la tabla mem temporalmente.
 
1. La tabla mem minuto a minuto se llena, todos los datos se vacían en el
archivo de datos SSTable.

Leer Operación en Casandra


Para las operaciones de lectura, Cassandra recibe todos los valores de la tabla mem.
También utiliza el filtro de floración para descubrir SSTable que contiene la
información requerida. Hay tres tipos de solicitudes de lectura en Cassandra enviadas
por el coordinador a las réplicas:
1. Solicitud directa.
 
1. Solicitud de resumen.
 
1. Lea la solicitud de reparación.
La solicitud directa es enviada por el coordinador a una de las réplicas en el nodo en
Cassandra. Más tarde, la solicitud de resumen se reenvía al número de réplicas por
parte del coordinador según el nivel de coherencia.
Una vez que el coordinador envía las solicitudes de resumen a todas las réplicas
restantes, comprueba si el valor devuelto del nodo es un valor actualizado o tiene un
valor desactualizado. Si hay un valor desactualizado, la solicitud de reparación de
lectura en segundo plano actualizará los datos. Todo este proceso se conoce como un
mecanismo de reparación de lectura.
Lea también
Cómo configurar MariaDB en Windows en Azure/AWS/GCP

Arquitectura cassandra con diagrama –


Componentes de Cassandra Conclusión
Apache Cassandra es una base de datos distribuida de código abierto que ayuda a
almacenar y administrar grandes volúmenes de datos en diferentes centros de datos.
Tiene una arquitectura peer to peer que ayuda a los programadores a escribir
rápidamente grandes datos almacenados sin afectar la eficiencia de lectura. En este
artículo hemos explicado la arquitectura interna de Cassandra y cómo replica, escribe y
lee las solicitudes.
Además, hemos discutido cómo Cassandra mantiene el nivel de consistencia durante
todo el proceso. Además, en la arquitectura de Cassandra, cómo el usuario autorizado
puede conectarse a los nodos del centro de datos y acceder a los datos con la ayuda
del lenguaje CQL. Node, Data Center, Cluster, Commit Log, Mem table, SSTable, Bloom
filter, CQL table, Gossip Protocol son algunos de los componentes principales de
Cassandra.
Cassandra ofrece consistencia y ayuda a eliminar el tiempo de inactividad y la pérdida
de datos con sus características como ningún punto único de falla, alta disponibilidad,
rendimiento de escala lineal rápida, implementaciones descentralizadas, registro de
auditorías, escalabilidad lineal, soporte ACID, etc. En la arquitectura de Cassandra, un
factor de replicación significa que solo existe una copia de datos en cada nota,
mientras que tres factores de replicación implican tres copias de datos para tres nodos
diferentes.
Además, hemos destacado las estrategias en Cassandra, Estrategia simple (utilizada
para un centro de datos) y Estrategia de topología de red (utilizada para dos o más
centros de datos). Además, hemos dado un resumen sobre cómo funcionan las
operaciones de lectura y escritura en Cassandra. Cassandra es muy adecuado para
cargas de trabajo en tiempo real y big data, juegos en línea, gestión de datos de series
temporales, gestión de transmisión de medios y análisis de datos en tiempo real.

También podría gustarte