JDK-8231731 : Improve cardinality estimations of combined remembered sets for G1
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 14
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2019-10-01
  • Updated: 2022-10-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Blocks :  
Duplicate :  
Duplicate :  
Relates :  
Description
G1 estimates the size (cardinality) of combined remembered sets to determine whether a given set of regions can be evacuated within a certain time.

The current way of having a single predictor predicting the percentage of the number of remembered set entries of a given region to be added to the total when adding that given region is totally inadequate.

While it works fairly well for young gen regions, the estimation for old gen regions is completely wrong.

E.g. having determined that a given young gen will yield ~1000 cards to actually scan, and an old gen region having 42k regions, G1 estimates that of those 42k (distinct entries) only 108 will be added to the 1000.
This does not make sense at  all, and ultimately causes G1 to underestimate the time taking this region into the collection set by a big margin.

(From printing the estimations from a specjvm2008 xml.validation run at 2GB, 15ms pause time goal)

Try to improve the estimation.