How do I setup esrally to use with elassandra and my own tests?

264 views Asked by At

I'm wondering whether others have attempt benchmarking Elassandra (more specifically, I'm using express-cassandra) using esrally. I'm hoping to not spend to much more time on esrally if that's not a good solution to test Elassandra.

Reading the documentation, it looks like Rally is capable of starting from scratch: Download Elasticsearch, install the source, build it, run it, connect, create a full schema, then start testing with data filling the schema (possibly done with some random data), do queries, ...

I already have everything in place and the only thing I really want to see a few things such as:

  • Which of 10 different memory setup is faster.
  • Which type of searches work, whether option 1, 2 and 3 from my existing software create drastic slow downs or not...
  • Whether insertion while doing searches have a effects on the speed of my searches.

I'm not going to change many parameters other than the memory (-Xmx, -Xms, maybe some others... like cached row in a separate heap.) For sure, I want to run all the tests with the latest Elassandra and not consider rebuilding or anything of the sort.

From reading the documentation, there is no mention of Elassandra. I found total of TWO PAGES in Google about testing with esrally and Elassandra and that did not boost my confidence that it's doable...

I would imagine that I have to use the benchmark-only pipeline. That at least removes all the gathering of the source, building, etc. I guess it also reduces the number of parameters I get in the resulting benchmark, but I don't need all the details...

Have you had any experience with such a setup? (Elassandra + esrally)

1

There are 1 answers

1
barth On

Yes, esrally works with Elassandra by using the --benchmark-only option.

To automate the creation of elassandra clusters to benchmark, you could either use ecm or k8s helm chart.

For instance, using ccm :

ecm create bench_cluster -v 6.2.3.10 -n 3 -s -e
esrally --pipeline=benchmark-only --target hosts=127.0.0.1:9200,127.0.0.2:9200,127.0.0.3:9200
ecm remove bench_cluster

For testing specific scenarios, you can write custom tracks.