I'm doing some benchmarking of Cassandra on a single m6gd.large instance. It works fine with periodic or batch commitlog_sync options, but I'm having tons of issues when I change it to "group". I have "commitlog_sync_group_window" set to 1000ms.
My client is doing writes like this (pseudocode): Semaphore sem = new Semaphore(numTickets); while(true) { sem.acquire(); session.executeAsync(insert.bind(genUUIDStr(), genUUIDStr(), genUUIDStr()) .whenComplete((t, u) -> sem.release()) } If I set numTickets higher than 20, I get tons of timeout errors. I've also tried doing single commands with BatchStatement with many inserts at a time, and that fails with timeout when the batch size gets more than 20. Increasing the write request timeout in cassandra.yaml makes it time out at slightly higher numbers of concurrent requests. With periodic I'm able to get about 38k writes / second, and with batch I'm able to get about 14k / second. Any tips on what I should be doing to get group commitlog_sync to work properly? I didn't expect to have to do anything other than change the config.