cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benedict (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-9533) Make batch commitlog mode easier to tune
Date Tue, 02 Jun 2015 17:29:50 GMT


Benedict commented on CASSANDRA-9533:

Well, the old behaviour really was to just ignore the property, since you can at most flush
concurrent_writers operations in a batch (typically 32), and it would flush as soon as any
messages that had arrived in a group had been written to the buffer cache. So I cannot imagine
a scenario in which the upper limit would have been enforced.

We only updated its behaviour because the docs all described the new behaviour. If we just
remove the docs, we're pretty much good AFAICT, although I have nothing against inverting
the docs, and imposing an upper limit that isn't enforced :)

Documentation exhibits:

# When in batch mode, Cassandra won't ack writes until the commit log
# has been fsynced to disk.  It will wait up to
# commitlog_sync_batch_window_in_ms milliseconds for other writes, before
# performing the sync.

Users familiar with PostgreSQL may note that commitlog_sync_period_in_ms and commitlog_batch_window_in_ms
correspond to the PostgreSQL settings of wal_writer_delay and commit_delay, respectively.

commit_delay (integer)
Time delay between writing a commit record to the WAL buffer and flushing the buffer out to
disk, in microseconds. A nonzero delay can allow multiple transactions to be committed with
only one fsync() system call, if system load is high enough that additional transactions become
ready to commit within the given interval. But the delay is just wasted if no other transactions
become ready to commit. Therefore, the delay is only performed if at least commit_siblings
other transactions are active at the instant that a server process has written its commit
record. The default is zero (no delay).

> Make batch commitlog mode easier to tune
> ----------------------------------------
>                 Key: CASSANDRA-9533
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Benedict
>             Fix For: 3.x
> As discussed in CASSANDRA-9504, 2.1 changed commitlog_sync_batch_window_in_ms from a
maximum time to wait between fsync to the minimum time, so one must be very careful to keep
it small enough that most writers aren't kept waiting.

This message was sent by Atlassian JIRA

View raw message