Hi all, I'm comparing performance between Cassandra 2.2.10 and 3.0.15. SELECT of 3.0.15 is faster than 2.2.10. However, conditional INSERT and UPDATE of 3.0.15 are slower than 2.2.10. Is it expected? If so, I want know why.
I'm trying to measure performance for non-conditional operation next. Environment: - 3 nodes in a single cluster - AWS EC2 i3.large (2 cores, 30GB memory, NVMe SSD) - Cassandra commitlog and data are stored in NVMe SSD Configuration: - Replication factor: 3 - commitlog_sync: batch - conccurent_reads: 512 - concurrent_writes: 512 Request: - SELECT "id", "val" from testdb.testtbl WHERE "id" = id with CL.SERIAL - INSERT INTO testdb.testtbl ("id", "val") VALUES (id, val) IF NOT EXIST - UPDATE testdb.testtbl SET "val" = val WHERE "id" = id IF EXISTS - Client program requests these operations via Java driver Result: - INSERT throughput [operations per sec] | Concurrency | 2.2.10 [op/s] |3.0.15 [op/s] | | 1 | 303 | 263 | | 2 | 526 | 454 | | 4 | 784 | 666 | | 8 | 1066 | 888 | | 16 | 1391 | 1194 | | 32 | 1649 | 1428 | | 64 |1802 | 1553 | - UPDATE throughput | Concurrency | 2.2.10 [op/s] | 3.0.15 [op/s] | | 1 | 322 | 277 | | 2 | 606 | 512 | | 4 | 1000 | 727 | | 8 | 1250 | 1012 | | 16| 1495|1280 | | 32| 2147|1739 | | 64| 3248|2949 | - SELECT throughput | Concurrency | 2.2.10 [op/s] | 3.0.15 [op/s] | | 1 | 454 | 476 | | 2 | 869 | 909 | | 4 | 1333 | 1333 | | 8 | 1818 | 1777 | | 16 | 2424 | 2539 | | 32 | 2990 | 3018 | | 64 | 3422 | 3699 | Thanks, Yuji