Elassandra is a fork of Elasticsearch modified to run on top of Apache Cassandra in a scalable and resilient peer-to-peer architecture. Elasticsearch code is embedded in Cassanda nodes providing advanced search features on Cassandra tables and Cassandra serve as an Elasticsearch data and configuration store.
Elassandra supports Cassandra vnodes and scale horizontally by adding more nodes. A demo video is available on youtube.
Cassandra could be your unique datastore for indexed and non-indexed data, it's easier to manage and secure. Source documents are now stored in Cassandra, reducing disk space if you need a noSql database and elasticsearch.
In elassandra, Elasticsearch is masterless and split-brain resistant because cluster state is now managed within a cassandra lightweight transactions.
Write operations are not more restricted to one primary shards, but distributed on all cassandra nodes in a virtual datacenter. Number of shards does not limit your write throughput, just add some elassandra nodes to increase both read and write throughput.
Elasticsearch indices can be replicated between many cassandra datacenters, allowing to write to the closest datacenter and search globally.
CQL3 truncate has not effect on elasticsearch indices.
Elasticsearch
tribe, percolate, snapshots and recovery service not tested.
Geoshape type not supported.
Any Elasticsearch metadata update require the LOCAL_QUORUM (more than half the number of nodes in the elassandra datacenter)
Document version is alaways 1 for all documents (because cassandra index rebuild would increment version many times, document version become meaningless).
Contribute
Contributors are welcome to test and enhance Elassandra to make it production ready.
License
This software is licensed under the Apache License, version 2 ("ALv2"), quoted below.
Copyright 2015, Vincent Royer (vroyer@vroyer.org).
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.