"batch" mode works fine. I'm having trouble with "group" mode. The only config for that is "commitlog_sync_group_window", and I have that set to the default 1000ms.
On Tue, Apr 23, 2024 at 8:15 AM Bowen Song via user < user@cassandra.apache.org> wrote: > Why would you want to set commitlog_sync_batch_window to 1 second long > when commitlog_sync is set to batch mode? The documentation > <https://cassandra.apache.org/doc/stable/cassandra/architecture/storage_engine.html> > on this says: > > *This window should be kept short because the writer threads will be > unable to do extra work while waiting. You may need to increase > concurrent_writes for the same reason* > > If you want to use batch mode, at least ensure commitlog_sync_batch_window > is reasonably short. The default is 2 millisecond. > > > On 23/04/2024 18:32, Nathan Marz wrote: > > 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. > >