-
Enhancement
-
Resolution: Fixed
-
P4
-
14
-
b25
-
generic
-
linux
Please see:
https://mail.openjdk.java.net/pipermail/hotspot-dev/2019-August/039130.html
The basic high level idea is to maintain a cyclical fixed size in-memory buffer into which JVM threads would log at full-speed (i.e. the asynchronous logging would ideally not constrain the full concurrency supported by the existing implementation without asynchronous logging). A new demon thread would eagerly flush the log payload to the associated log output stream.
In one post-JDK 8 based implementation, support exists for Unified Logging, with the attendant constraints on concurrency of Unified Logging designed to avoid arbitrary interleaving of logging payload to a specific logging stream. In one JDK 8 based implementation, support exists for GC logging with possibly higher levels of logging concurrency than in the aforementioned Unified Logging case, and with no change in the interleaving semantics of log messages to the GC log file.
Other alternative implementations are possible.
As described in the email, there are a few alternative existing implementations on various vintages of the JVM.
This ticket is a placeholder to share a couple of different patches from various alternative existing implementations, so that we can collaboratively work towards creating one that can be subjected to the usual code review process in due course.
Specific sub-tickets will be created in the fullness of time for specific backports as needed, as the implementation matures into reviewable state.
- csr for
-
JDK-8264323 Add a global option -Xlog:async for Unified Logging
- Closed
- relates to
-
JDK-8268165 AsyncLogging will crash if rotate() fails
- Resolved
-
JDK-8268852 AsyncLogWriter should not overide is_Named_thread()
- Resolved
-
JDK-8267952 async logging supports to dynamically change tags and decorators
- Resolved
-
JDK-8268638 semaphores of AsyncLogWriter may be broken when JVM is exiting.
- Resolved
-
JDK-8269064 Dropped messages of AsyncLogWriter cause memleak
- Resolved
-
JDK-8267926 AsyncLogGtest.java fails on assert with: decorator was not part of the decorator set specified at creation.
- Resolved