Simplify Your Data Stack With Elassandra

Simplify Your Data Stack With Elassandra

Elassandra enhance the Open-Source Apache Cassandra ™ database with an embedded Elasticsearch ™ search engine.

Run Always-On Modern Applications

Elassandra is the only open source Database and Search Engine based on a Multi-Master architecture. Resilient by design, Elassandra continuously serves requests when a server or a datacenter fails. Read more.

Keep it Simple and Secure

By using Apache Cassandra™ as a primary data storage for Elasticsearch™, Elassandra eliminates the need to continuously replicate and synchronise data to Elasticsearch™. With integrated security and monitoring, Elassandra makes your data stack simple, secure and easy to manage.

Optimise your Cloud Costs

Run your applications anywhere, in any datacenter, On-Premise, Hybrid or Multi-Cloud. Elassandra gives you the flexibility to migrate with no downtime and the freedom to choose your cloud provider.

Simplified Data Pipeline

Cassandra data can be indexed in Elasticsearch without being duplicated, no need for a complex pipeline to populate your Elasticsearch.

Reconcile Dev, Ops, Security and Costs concerns

Designed for developer productivity

No need to learn a new API or to setup a complex dev/test environment, you can use both the Cassandra CQL drivers and the Elasticsearch Clients to develop your applications in your favorite language. See the Elassandra Quickstart.

Be cost-effective without losing sleep

You can run Elassandra anywhere, across clouds or on-prem, on VMs or Kubernetes with our multi-cloud Kubernetes Elassandra Operator. You can scale up and upgrade your Elassandra clusters during buisness hours with no downtime.

Secured and reliable
for mission-critical workloads.

Get your data GDPR-Compliant with Elassandra Enterprise features: network encryption, role-based access control, audit and true resiliency on many datacenters.

They use Elassandra

  • "With multiple Data Centers totaling more than 50 Elassandra nodes, thousands of CPUs, more than 10TB RAM, and several hundred TB of storage in a self-managed Kubernetes cluster and 1500+ Elasticsearch indexes, we get a powerful and flexible solution for many applications including Reporting, Business Intelligence, Operational Systems, and Machine Learning from a single Big Data Platform.”, Robert LIOTTA, SVP IT ENTERPRISE ARCHITECT at Ceva Logistics

  • "We collect and visualize our infrastructure logs with Beat, Logstash, Elassandra and Kibana running in docker containers. Because Elassandra has no Single Point Of Write, Logstash does not need to buffer events into memory when an Elassandra node is down, preventing us from losing events.",
    Emmanuel Peru, CTO at INEAT-Group

    "We started using Cassandra in 2015 and we switched to Elassandra very easily. It provides powerful Elasticsearch queries through the CQL driver allowing us to build our SAAS Skill Data service at a large scale.",
    Florian Bojda, CTO at eLamp  

    "We continuously collect energy production and various sensors metrics into Elassandra from our solar PV plants located in Japan. Realtime visualisation and Apache Spark processing helped us to improve the design of our product, the Hydrelio™ technology.",
    Alexis Gaveau, CEO at Ciel & Terre.

    A Mission Critical Database and Search Engine

    Master-Slave databases are well known for more than three decades. Whatever a database is monolithic or distributed, SQL or NoSQL, when an outage occurs, a master-slave system requires a runtime decision to promote a slave node or a slave datacenter to the master role. The runtime decision to switch must be taken carefully, not too fast, otherwise you can get an unstable system.

    By contrast, Cassandra and Elassandra are Multi-Master, they relaxe the consistency and repair the data asynchronously and thus continuously take read/write operations with no downtime, and no runtime decision.

    Elassandra multi-master database

    Frequently Asked Questions

    When moving from Apache Cassandra to Elassandra

    • Is Elassandra compatible with Apache Cassandra ?

      Yes, Elassandra is the opensource Apache Cassandra version 3.11.last with a tightly integrated Elasticsearch engine. Cassandra SSTable files, administration tasks and tools remain the same, it IS the Apache Cassandra code with additional features that you can enable if needed.

    • Can I run Cassandra and Elassandra datacenters in the same cluster ?

      Yes, you can run Apache Cassandra datacenters and Elassandra datacenters in the same cluster, you just need to add a dummy java class in the Cassandra classpath to avoid a ClassNotFoundException when Cassandra creates an Elasticsearch secondary index referenced in the CQL schema.

    • How can I migrate from Cassandra to Elassandra ?

      There is several ways to migrate from Cassandra to Elassandra : You can replace the Cassandra binaries by Elassandra ones (or even switch a docker image as explained in this Blog form Pythian) and rolling restart nodes. You can also add an Elassandra datacenter to an existing Cassandra cluster and stream tables. Finally, you can create a new Elassandra cluster and restore SSTables from your existing Cassandra cluster.

    • Where are Elasticsearch source documents stored ?

      To avoid data duplication and wastage of disk space, Elassandra only stores data into Cassandra tables, Elasticsearch only manages Lucene indices and the source document is not more stored in Elasticsearch, but fetched from the underlying Cassandra table.

    • What are Elassandra performances ?

      On the write path, Elassandra synchronously updates in-memory Lucene segments with the defined Elasticsearch fields. Of course, write overhead depends on what you index (numbers, text, full text, etc...), but keep in minds that write throughput lineary scales with the number of nodes.

      On the search path, there is two way to request Elasticsearch. If the partition key column is known, the search (or aggregation) request is directed to one node hosting the targeted data (like routing in Elasticsearch). Thus, search throughput scale lineary with the number of nodes. Without the partition key, all nodes in the datacenter are queried like with a Cassandra secondary index. If your Cassandra replication factor is 2 for example, you can use an optimized search strategy to request half the number of nodes in the datacenter, and thus, increase the search throughput by increasing the replication factor.

      Finally, comparing Elassandra performances to Cassandra or Elasticsearch ones is not really meaningful, you should rather compare the TCO of an equivalent architecture delivering the same services, same throughput and resiliency. By synchronously writing in Elasticsearch indices without duplicating the data, Elassandra drastically reduce the total volume of disk and network IOs compared to more sophisticated architectures.

    • How Elassandra eliminates the need for the Elasticsearch master node ?

      All Elassandra nodes are Elasticsearch data, primary and master nodes. Elasticsearch mapping updates are managed through a PAXOS transaction to avoid concurrent mapping updates. Consequently, Elassandra has no Single Point Of Failure and no Single Point of Write, it's a Multi-Master Search Engine, see here why it's easier to operate in the cloud.

    • Does Elassandra work with Kibana, Logstash, Beat ....

      Yes, by keeping the Elasticsearch REST API unchanged, Elassandra works as Elasticsearch for Kibana, Logstash, Beat, Fluentd, Fluentbit and many other tools. However, you cannot use the Elasticsearch x-pack features because it's proprietary code.

    • Can I execute Elasticsearch requests through the the CQL driver ?

      Yes, you can run Elasticsearch queries through your favorite CQL driver. It supports search and aggregation queries as described in the Elassandra documentation. Search results are returned as Cassandra rows, allowing to use the same Data Access Objects for both Cassandra and Elasticsearch queries.

    • How does Elassandra support the Elasticsearch dynamic mapping ?

      The Elasticsearch dynamic mapping is a great feature allowing to update the mapping when a new field is detected in an ingested document. Elassandra automatically translate the Elasticsearch mapping to update the underlying CQL schema. Elassandra batches Cassandra DDL statements to reduce the number of broadcasted schema mutations, and validate all changes before applying it. Thus, Elassandra supports logs ingestion as Elasticsearch.

    • Can I backup Elasticsearch indices ?

      Yes, like with Cassandra SSTables, you can snapshot Elasticsearch indices on disk (Lucene files) when snapshotting a Cassandra table. Like with Cassandra snapshots, you can then restore these files on a node having the same Cassandra token ranges. Otherwise, you can only snapshot Cassandra SSTables, and Elasticsearch indices will automatically be rebuilt when restoring SSTables (The Elasticsearch mapping is stored in the Cassandra snapshots).

    • Can I use Elasticsearch Ingest processor ?

      Yes, through its REST API, Elassandra supports Elasticsearch ingest processors allowing to transform the original document before writing into the underlying Cassandra table.