Reputation: 468
We are running our end-to-end tests using a single Cassandra node running on k8s, this node gets quite a lot reads and writes, note that this node is deleted once tests have finished, so there is no need to consider long term maintenance of data etc. what optimisations would you recommend to configure in this use case to reduce overhead? Disabling auto compaction had came in my mind... anything else?
Upvotes: 1
Views: 133
Reputation: 57748
So there are always a few things that I do when building up a single node for development or testing. My goals are more about creating something which matches the conditions in production, as opposed to reducing overhead. Here's my list:
GossipingPropertyFileSnitch
.PasswordAuthenticator
and the CassandraAuthorizer
.dc
and rack
names in the cassandra-rackdc.properties
file.NetworkTopologyStrategy
and the dc
name from the previous step.Again, I wouldn't build an unsecured node with SimpleStrategy
keyspaces in production. So I don't test that way, either.
With building a new single node cluster each time, I can't imagine much overhead getting in your way. I don't think that you can fully disable compaction, but you can reduce the compaction throughput (YAML) down to the point where it will consume almost no resources:
compaction_throughput: 1MiB/s
It might be easiest to set that in the YAML, but you can also do this from the command line:
nodetool setcompactionthroughput 1
I'd also have a look at the GC settings, and try to match what you have in production as well. But for the least amount of overhead with the least config, I'd go with G1GC.
Upvotes: 1