Details
-
Bug
-
Resolution: Fixed
-
P3
-
11
-
b13
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8339732 | 21.0.6-oracle | Joakim Nordström | P3 | Resolved | Fixed | master |
Description
When committing JFR events with string data longer than 128 characters, the string isn't added to the JFR string pool.
In scenarios with many events containing large string values, this can lead to very large JFR recordings. This is mostly the case for custom events, containing f.i. SQL strings, or other data. In the case where the string data consist of mostly duplicate data, adding them to the string pool has been shown to reduce the recording size by a factor of 10.
The current scheme for adding strings to the pool adheres to strings 16-128 characters long. In order for a string to be pooled, potential duplicates are cached and checked in a set of four. With this change, the current scheme still holds for lengths 16-128, but strings longer than 128 characters are always pooled.
In scenarios with many events containing large string values, this can lead to very large JFR recordings. This is mostly the case for custom events, containing f.i. SQL strings, or other data. In the case where the string data consist of mostly duplicate data, adding them to the string pool has been shown to reduce the recording size by a factor of 10.
The current scheme for adding strings to the pool adheres to strings 16-128 characters long. In order for a string to be pooled, potential duplicates are cached and checked in a set of four. With this change, the current scheme still holds for lengths 16-128, but strings longer than 128 characters are always pooled.
Attachments
Issue Links
- backported by
-
JDK-8339732 [JFR] Long strings should be added to the string pool
- Resolved
- links to
-
Commit(master) openjdk/jdk/d5c6158c
-
Review(master) openjdk/jdk23u/97
-
Review(master) openjdk/jdk/20596