Hi everyone,

I’d like to propose [1] enabling async GC logging by default for Cassandra
6.0 and trunk branches on JDK 17 and 21 (-Xlog:async).

GC logs are diagnostic-only, and async logging reduces the chance of GC log
I/O impacting Cassandra latency during GC activity. I’ve seen several cases
in both production and development environments where JVM pauses were
caused by GC log file I/O blocking. See [2] and [3] for more details on
this class of issue.

The tradeoff is potential loss of a small amount of buffered log data on
abrupt JVM termination, which seems acceptable for GC logs.

Operators who prefer synchronous logging can still override the setting
explicitly.

Unless there are objections or edge cases I missed, I’d like to move
forward with enabling this by default on these branches.

Thanks,
Dmitry

[1] https://issues.apache.org/jira/browse/CASSANDRA-21372
[2] https://aws.amazon.com/blogs/developer/asynchronous-logging-corretto-17
[3]
https://www.linkedin.com/blog/engineering/archive/eliminating-large-jvm-gc-pauses-caused-by-background-io-traffic

Reply via email to