2

While reading or writing from a node in a Cassandra cluster, using cassandra-stress tool, there is an option called no-warmup. What does that mean?

Will there be any performance improvement when using that option? Or does it have something to do with the latency of data ?

Aaron
  • 55,518
  • 11
  • 116
  • 132
Keerthikanth Chowdary
  • 728
  • 1
  • 10
  • 17

1 Answers1

4

From the DataStax Developer Blog, specifically Jonathan Ellis' post titled How not to benchmark Cassandra:

Tests against JVM-based systems like Cassandra need to be long enough to allow the JVM to “warm up” and JIT-compile the bytecode to machine code. cassandra-stress has a “daemon” mode to make it easy to separate the warm-up phase from results that you actually measure; for other workload generators, your best bet is to simply make enough requests that the warmup is negligible.

Essentially, when your queries run on Cassandra normally, the JVM "warm up" period would have passed shortly after your node started. When you run cassandra-stress without allowing it the chance to properly compile everything it needs, your query latencies will be skewed (probably higher).

If you're interested, this question talks a little more about the warm-up period, issues it can cause, as well as solutions for dealing with it: Technique or utility to minimize Java "warm-up" time?

Therefore, specifying "no warmup" will effectively ruin the results of your test. That is, unless you are specifically trying to test what your latencies would be during the JVM's "warm up" phase.

Community
  • 1
  • 1
Aaron
  • 55,518
  • 11
  • 116
  • 132