This document discusses Elassandra, which combines Elasticsearch and Cassandra to provide search capabilities within Cassandra. It maps concepts between Elasticsearch and Cassandra, describes chaos testing by taking nodes down and performance testing. Performance tests showed some degradation using Cassandra but acceptable, and Elasticsearch performance was 50% lower than standalone Elasticsearch but workarounds exist. Throughput improved up to 50% from version 2.1.1 to 2.4.2.
7. Elassandra Concepts mapping
Elasticsearch Cassandra
Mapping Schema
Cluster Virtual DC
Index Keyspace
Type Table
Document Row
Field Column
Object Nested Field User Defined Type
9. Elassandra Chaos - Strategy
❏ Via Cassandra API (Reads/Writes)
❏ Test 1. Tear Down node 2 -> Keep node 1 up
❏ Test 2. Tear Down node 1 -> Them put it up after 10s
❏ Via ES API (Reads/Writes)
❏ Test 1. Tear Down node 2 -> Keep node 1 up
❏ Test 2. Tear Down node 1 -> Them put it up after 10s
18. Elassandra Performance - Results - Details!
2.1.1 2.1.1-18 on CASS 2.2.8
Read ALL 21k
Read Get ID 59k
Read Search ID 15k
Read ALL 3k
Read Get ID 17k
Read Search ID 3k
19. Elassandra Performance - Results - tuning!
2.1.1-18 on CASS 2.2.8
Read ALL OK 3k
Read ALL KO 4k
Threadpool.index.queue_size = 10k
Threadpool.index.queue_size = 1k (default)
Read ALL OK 5k
Read ALL KO 6k
27. Conclusions
❏ Performance has some minor degradation with CASS but is acceptable.
❏ ES performance still 50% less than original elasticsearch but you can manage to workaround.
❏ Tests was run on 4th JAN 2017 from 12:00 to 17:00 BRT
❏ CPU CASS Improvement from 1500% to 500%
❏ Up to 50% Throughput improvement from 2.1.1 to 2.4.2 (5k to 12k)
❏ OS Used was Amazon Linux (CentOS Based)
❏ All Boxes was Optimized in sense on Open Files (65k) and Gatling TCP Settings
https://gist.github.com/diegopacheco/31091f9c507b9c78128e73b48f2ce08a