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
