Skip to content

[Broker/Bookie] Set -Dio.netty.tryReflectionSetAccessible=true for pulsar processes#11138

Merged
sijie merged 4 commits into
apache:masterfrom
lhotari:lh-enable-Netty-UnpooledUnsafeNoCleanerDirectByteBuf-on-JDK11
Jun 30, 2021
Merged

[Broker/Bookie] Set -Dio.netty.tryReflectionSetAccessible=true for pulsar processes#11138
sijie merged 4 commits into
apache:masterfrom
lhotari:lh-enable-Netty-UnpooledUnsafeNoCleanerDirectByteBuf-on-JDK11

Conversation

@lhotari

@lhotari lhotari commented Jun 28, 2021

Copy link
Copy Markdown
Member

Motivation

  • allows Netty to use reflection access on JDK9+
  • fixes jvm_memory_direct_bytes_used Prometheus metric for Bookkeeper (Bookie). The direct memory usage metrics are disabled in Bookie on JDK11 unless -Dio.netty.tryReflectionSetAccessible=true is used.
  • enables Netty to use more efficient byte buffer implementation such as UnpooledUnsafeNoCleanerDirectByteBuf in JDK9+ (JDK 11 in this case). This is already used in JDK8. In JDK9+, it is necessary to set -Dio.netty.tryReflectionSetAccessible=true to use UnpooledUnsafeNoCleanerDirectByteBuf. This is necessary for preventing performance regressions in this area.

Modifications

  • pass -Dio.netty.tryReflectionSetAccessible=true JVM option by default to all pulsar process started with bin/pulsar script.

…l pulsar processes

- enables Netty to use UnpooledUnsafeNoCleanerDirectByteBuf in JDK9+ (JDK 11 in this case)
- fixes jvm_memory_direct_bytes_used metric for Bookie
@lhotari lhotari added type/bug The PR fixed a bug or issue reported a bug release/2.8.1 labels Jun 28, 2021
@lhotari lhotari added this to the 2.9.0 milestone Jun 28, 2021
@lhotari lhotari self-assigned this Jun 28, 2021

@eolivelli eolivelli left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

lhotari added a commit to datastax/pulsar that referenced this pull request Jun 30, 2021
…lsar processes

- allows Netty to use reflection access on JDK9+
- fixes jvm_memory_direct_bytes_used Prometheus metric for Bookkeeper (Bookie). The direct memory usage metrics are disabled in Bookie on JDK11 unless -Dio.netty.tryReflectionSetAccessible=true is used.
- enables Netty to use more efficient byte buffer implementation such as UnpooledUnsafeNoCleanerDirectByteBuf in JDK9+ (JDK 11 in this case). This is already used in JDK8. In JDK9+, it is necessary to set -Dio.netty.tryReflectionSetAccessible=true to use UnpooledUnsafeNoCleanerDirectByteBuf. This is necessary for preventing performance regressions in this area.

upstream PR apache#11138
@sijie
sijie merged commit f0cbcb5 into apache:master Jun 30, 2021
lhotari added a commit to datastax/pulsar that referenced this pull request Jul 2, 2021
…lsar processes (apache#11138)

- allows Netty to use reflection access on JDK9+
- fixes `jvm_memory_direct_bytes_used` Prometheus metric for Bookkeeper (Bookie). The direct memory usage metrics are disabled in Bookie on JDK11 unless `-Dio.netty.tryReflectionSetAccessible=true` is used.
- enables Netty to use more efficient byte buffer implementation such as UnpooledUnsafeNoCleanerDirectByteBuf in JDK9+ (JDK 11 in this case). This is already used in JDK8. In JDK9+, it is necessary to set `-Dio.netty.tryReflectionSetAccessible=true` to use UnpooledUnsafeNoCleanerDirectByteBuf. This is necessary for preventing performance regressions in this area.

- pass `-Dio.netty.tryReflectionSetAccessible=true` JVM option by default to all pulsar process started with `bin/pulsar` script.

(cherry picked from commit f0cbcb5)
codelipenghui pushed a commit that referenced this pull request Jul 7, 2021
…lsar processes (#11138)

### Motivation

- allows Netty to use reflection access on JDK9+ 
- fixes `jvm_memory_direct_bytes_used` Prometheus metric for Bookkeeper (Bookie). The direct memory usage metrics are disabled in Bookie on JDK11 unless `-Dio.netty.tryReflectionSetAccessible=true` is used.
- enables Netty to use more efficient byte buffer implementation such as UnpooledUnsafeNoCleanerDirectByteBuf in JDK9+ (JDK 11 in this case). This is already used in JDK8. In JDK9+, it is necessary to set `-Dio.netty.tryReflectionSetAccessible=true` to use UnpooledUnsafeNoCleanerDirectByteBuf. This is necessary for preventing performance regressions in this area.


### Modifications

- pass `-Dio.netty.tryReflectionSetAccessible=true` JVM option by default to all pulsar process started with `bin/pulsar` script.

(cherry picked from commit f0cbcb5)
@codelipenghui codelipenghui added the cherry-picked/branch-2.8 Archived: 2.8 is end of life label Jul 7, 2021
bharanic-dev pushed a commit to bharanic-dev/pulsar that referenced this pull request Mar 18, 2022
…lsar processes (apache#11138)

### Motivation

- allows Netty to use reflection access on JDK9+ 
- fixes `jvm_memory_direct_bytes_used` Prometheus metric for Bookkeeper (Bookie). The direct memory usage metrics are disabled in Bookie on JDK11 unless `-Dio.netty.tryReflectionSetAccessible=true` is used.
- enables Netty to use more efficient byte buffer implementation such as UnpooledUnsafeNoCleanerDirectByteBuf in JDK9+ (JDK 11 in this case). This is already used in JDK8. In JDK9+, it is necessary to set `-Dio.netty.tryReflectionSetAccessible=true` to use UnpooledUnsafeNoCleanerDirectByteBuf. This is necessary for preventing performance regressions in this area.


### Modifications

- pass `-Dio.netty.tryReflectionSetAccessible=true` JVM option by default to all pulsar process started with `bin/pulsar` script.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cherry-picked/branch-2.8 Archived: 2.8 is end of life release/2.8.1 type/bug The PR fixed a bug or issue reported a bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants