Skip Headers
Previous
Previous
 
Next
Next

Flight Recorder Data Flow

Figure: Java Flight Recorder Data Flow shows how data flows through the JFR.

Java Flight Recorder Data Flow

Description of this figure follows
Description of "Java Flight Recorder Data Flow"

Data is sent to the Flight Recorder recorder by the JVM (through internal APIs) and by the Java application (through the Flight Recorder APIs). The Flight Recorder runtime stores this data in small thread-local buffers that are flushed to a global in-memory buffer when they are full. When the Flight Recorder is running in a persistent storage mode, data in the global in-memory buffer(s) is written to disk when those buffers are full.

Information overlap between the various buffers will not occur. A particular chunk of data is available either in memory or on disk, but never both. This has the following implications:

In some extreme cases, HotSpot will drop events order to not block the JVM from running. Any data that can not be written fast enough to disk will be discarded. When this happens, the recording file will include information on which time period was affected. This information will also be logged to the logging facility of the JVM.