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) 1021493.198451.499291 100407023.828702.2260 200415145.96571301.71242 300419764.681154222.09216 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* * * 18031.237121.012312.9Q100159445.3439251.21579.1Q200196309.04719701.171851Q Are these numbers expected numbers or does Cassandra perform better ? Am i missing something ?