I am doing Cassandra Benchmarking using YCSB for evaluating the best performance for my application which will be both read and write intensive. I have set up a three cluster environment on EC2 and i am using YCSB in the same availability region as a client. I have tried various combinations of tuning cassandra parameters like FSync ( Setting to batch and periodic ), Increasing the number of rpc_threads, increasing number of concurrent reads and concurrent writes, write consistency one and Quorum i am not getting very great results and also i do not see a linear graph in terms of scalability that is if i increase the number of clients i do not see an increase in the throughput.
Here are some sample numbers that i got :-
Test 1:- Write Consistency set to Quorum Write Proportion = 100%. FSync = Batch and Window = 0ms
|Threads||Throughput ( write per sec )
||Avg Latency (ms)||TP95(ms)||
If you look at the numbers the number of threads do not increase the throughput. Also the latency values are not that great. I am using fsync set to batch and with 0 ms window.
Test 2:- Write Consistency set to Quorum Write Proportion = 100%. FSync = Periodic and Window = 1000 ms
Are these numbers expected numbers or does Cassandra perform better ? Am i missing something ?