Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-22972 [JDK11] Support JDK11 LTS in HBase
  3. HBASE-24143

[JDK11] Switch default garbage collector from CMS

    XMLWordPrintableJSON

    Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.0.0-alpha-1, 2.3.0
    • Fix Version/s: 3.0.0-alpha-1, 2.3.0
    • Component/s: scripts
    • Labels:
      None
    • Release Note:
      Hide
      <!-- markdown -->
      `bin/hbase` will now dynamically select a Garbage Collector implementation based on the detected JVM version. JDKs 8,9,10 use `-XX:+UseConcMarkSweepGC`, while JDK11+ use `-XX:+UseG1GC`.

      Notice a slight compatibility change. Previously, the garbage collector choice would always be appended to a user-provided value for `HBASE_OPTS`. As of this change, this setting will only be applied when `HBASE_OPTS` is unset. That means that operators who provide a value for this variable will now need to also specify the collector. This is especially important for those on JDK8, where the vm default GC is not the recommended ConcMarkSweep.
      Show
      <!-- markdown --> `bin/hbase` will now dynamically select a Garbage Collector implementation based on the detected JVM version. JDKs 8,9,10 use `-XX:+UseConcMarkSweepGC`, while JDK11+ use `-XX:+UseG1GC`. Notice a slight compatibility change. Previously, the garbage collector choice would always be appended to a user-provided value for `HBASE_OPTS`. As of this change, this setting will only be applied when `HBASE_OPTS` is unset. That means that operators who provide a value for this variable will now need to also specify the collector. This is especially important for those on JDK8, where the vm default GC is not the recommended ConcMarkSweep.

      Description

      When running HBase tools on the cli, one of the warnings generated is

      OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
      

      Java9+ use G1GC as the default collector. Maybe we simply omit GC configurations and use the default settings? Or someone has some suggested settings we can ship out of the box?

        Attachments

          Activity

            People

            • Assignee:
              ndimiduk Nick Dimiduk
              Reporter:
              ndimiduk Nick Dimiduk
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: