A lo mejor lo habéis adivinado por el nombre del cacharro que juega con las palabras Elastic y Cassandra.
Pues bien, Elassandra integra Elasticsearch con Apache Cassandra como índice secundariop permitiendo todas las búsquedas online con las APIs y herramientas de Elasticsearch. Así, cuando se indexa un documento, el documento JSON se almacena como una fila en una tabla en Cassandra y de forma se indexa síncronamente en Elasticsearch.
Elassandra es un fork de Elasticsearch (y por tanto con licencia Apache2) modificado para ejecutar como un plugin para Apache Cassandra. El código Elasticsearch se embebe en los nodos Cassandra ofreciendo capacidades avanzadas de búsqueda en las tablas Cassandra:
Elassandra soporta los vnodes de Cassandra y escala horizontalmente añadiendo más nodos.
Beneficios de Elassandra
Los beneficios de Elassandra se pueden enumerar desde 2 perspectivas:
Para los usuarios de Cassandra:
- Los updates de Cassandra se indexan con Elasticsearch.
- Sobre los datos de Cassandra tenemos búsquedas Full-text y espacial
- Agregación online (sin Spark o Hadoop)
- Búsqueda sobre multiples keyspaces y tablas en una consulta
- Creación automática de esquema y documentos anidados usando User Defined Types.
- Provee un API REST sobre JSON para acceso a los datos Cassandra
- Todos los plugins de Elasticsearch (como Kibana) funcionan o como su plugin JDBC:
- Soporta Elasticsearch ingest processors para ingesta..
Mientras que para los usuarios de Elasticsearch ofrece:
- Elassandra es una arquitectua masterless. El estado del cluser se gestiona a través de cassandra lightweight transactions.
- Elassandra es una base de datos multi-master en shards, mientras que en Elasticsearch el sharded es master-slave. De esta forma, Elassandra no tiene Single Point Of Write.
- Elassandra hereda de Cassandra los mecanismos de reparación de datos (hinted handoff, read repair and nodetool repair) ofreciendo soporte para replicación entre datacenters.
- Al añadir un nodo a un cluster Elassandra, solo los datos extraídos de los nodos existentes se reindexan en Elasticsearch.
- Con Elassandra, Cassandra puede ser tu único datastore para datos indexados y no indexados. De esta forma se reduce la gestión y la seguridad y los documentos se almacenan en Cassandra reduciendo el espacio en disco.
- Las Operaciones de escritura no se restringuen a un shard primario, si no que se distribuye a los nodos Cassandra. Añadiendo nuevos nodos Elassandra se mejan el throughput de lectura y escritura.
- Los índices Elasticsearch puedes replicarse entre multiples datacenters Cassandra.
- Elassandra almacena eficientemnete documentos Elasticsearch en binary SSTables sin overhead JSON.
Podéis continuar en su página de documentación: http://doc.elassandra.io/en/latest/
¿Qué os parece? Habrá que darle una oportunidad, no? J