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

ThreadsThroughput ( write per sec ) Avg Latency (ms)TP95(ms) TP99(ms)Min(ms)Max(ms)

102149 3.1984 51.499291   
1004070 23.82870 2.2260   
2004151 45.9657130 1.71242    
300419764.68 1154222.09 216            

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

1803 1.23712 1.012312.9Q
10015944 5.343925 1.21579.1Q
200196309.047 19701.17 1851Q

Are these numbers expected numbers or does Cassandra perform better ? Am i missing something ?