Cassandra es una base de datos distribuida, con la que podemos obtener un alto rendimiento en entrada/salida de datos y además es extremadamente escalable. Además está creada para ser tolerante a fallos, veremos que esto más tarde.
Se dice que Cassandra es una solución de bases de datos post-relacional. Cassandra es al mismo tiempo un datastore en tiempo real para aplicaciones online/transaccionales y una base de datos de alto rendimiento.
Es el producto de la unión de ideas de BigTable y Dynamo. Y fue primeramente utilizado en Facebook.
Arquitectura en Cassandra
La arquitectura de Cassandra está creada teniendo en cuenta que alguna parte del sistema puede fallar, es por ello que está construida como un sistema Peer To Peer.
Los datos son distribuidos a lo largo de todos los nodos del clúster y permite que los datos sean replicados para asegurarnos la tolerancia a fallos.
Cada nodo se comunica con otro a través de Gossip, que es un protocolo que sirve para intercambiar información entre los nodos del clúster continuamente.
Se realizan Logs de los commits en cada nodo cuando estos utilizan operaciones de escritura, por lo tanto, la consistencia de los datos está prácticamente asegurada, siempre que la arquitectura del mismo sea sea correcta.