0

I have a single data node cassandra version 3.11.2 , and a cassandra c++ driver version 2.7. Single data node cluster having 500 000 rows. I read asynchronous and then and pushed data to queue where a scheduler take up the data write asynchronous using cassandra c++ driver. I have 10 application thread 10 io thread and 10 schedular thread. I got a TPS of 38000.

But the same activity I did with "TWO DATA NODE" cassandra cluster both reside on same Rack and try to read and write with consistency level "TWO". My TPS drop down to 12000. Why my performance degrades so much even all configuration and client binary is same? By just changing READ CONSISTENCY to TWO and WRITE CONSITENCY to TWO.

What I need to do more to get a TPS around 40000. Do I need to add more DATA NODE?

James Z
  • 12,209
  • 10
  • 24
  • 44
  • For starting performance analysis and troubleshooting you may have a look into [How to increase Transaction Per Second TPS in Cassandra](https://stackoverflow.com/questions/24949097/how-to-increase-transaction-per-secondtps-in-cassandra-by-using-datastax-java) first. – U880D May 11 '18 at 08:04
  • 1
    One other area to help increase your TPS (expanding upon Alex Ott's recommendation and information regarding consistency adding latency) may be to decrease your number of application and IO threads so you do not starve your system resources. This could have an impact on the performance you are seeing as well since the IO threads will perform system level calls. – Fero May 11 '18 at 12:38

1 Answers1

2

The TWO consistency level means that when you read, you need to get data from two nodes, and this adds latency. The same for write - when you write with TWO, 2 nodes should confirm that data is written, that also adds latency...

I would recommend to read following section in DSE Architecture guide (better the whole guide completely) to get understanding about consistency levels.

Alex Ott
  • 80,552
  • 8
  • 87
  • 132