Hi folks, I am proposing to enable trickle_fsync by default in cassandra.yaml. It is already enabled in cassandra_latest.yaml.
When enabled, SSTable writes are fsync'd at intervals controlled by trickle_fsync_interval (default = 10MiB) as opposed to a single fsync after the SSTable has been written. This bounds dirty page buildup and mitigates kernel writeback storms, benefiting read latencies - see the benchmarks in the comments on CASSANDRA-21487 [1]. CASSANDRA-8763 [2] argued it shouldn't even be optional. Note: trickle_fsync was silently ignored for compressed SSTables until CASSANDRA-21487 [2], so most operators have never actually run with it even when enabled. The original caution was HDDs, where trickle fsync costs some sequential throughput, but that cost falls on throttled background writes, whereas a writeback storm falls on foreground reads If there are no objections I'll raise a JIRA and put up a patch. [1] https://issues.apache.org/jira/browse/CASSANDRA-8763 [2] https://issues.apache.org/jira/browse/CASSANDRA-21487 Sam
