Skip to content

Conversation

@Sreekala-Gopakumar
Copy link
Contributor

#1648

New parameter related to NIO selector provider added for -Djava.nio.channels.spi.SelectorProvider system property.

Closes #1648
Signed-off-by: Sreekala Gopakumar [email protected]

@Sreekala-Gopakumar
Copy link
Contributor Author

Jenkins doc stage

@Sreekala-Gopakumar
Copy link
Contributor Author

@pshipton - I have updated the topics. Please check and let me know if the changes are ok. Thanks!


## ![Start of content that applies to Java 11 (LTS)](cr/java11.png) Configuring the NIO selector provider (AIX only)

In the 0.57.0 release, a new New Input/Output (NIO) channels selector provider, which is based on pollset system facility, is implemented on AIX. NIO selectors are used for scalable I/O operations, allowing a single thread to monitor multiple channels. The pollset facility is an AIX-specific system call that efficiently handles multiple file descriptors. The new NIO selector provider configuration provides significant performance benefits when reading from, writing to, or managing a steady number of network sockets.
Copy link
Member

Choose a reason for hiding this comment

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

channels -> channel
based on pollset -> based on the pollset
Same changes apply to version0.57.md

Copy link
Contributor

Choose a reason for hiding this comment

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

I suggest removing "steady" from the final sentence here.

Copy link
Contributor Author

@Sreekala-Gopakumar Sreekala-Gopakumar Jan 14, 2026

Choose a reason for hiding this comment

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

@keithc-ca - Would it better to say "...managing multiple network sockets"?

Copy link
Contributor

Choose a reason for hiding this comment

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

That works for me.


In the 0.57.0 release, a new New Input/Output (NIO) channels selector provider, which is based on pollset system facility, is implemented on AIX. NIO selectors are used for scalable I/O operations, allowing a single thread to monitor multiple channels. The pollset facility is an AIX-specific system call that efficiently handles multiple file descriptors. The new NIO selector provider configuration provides significant performance benefits when reading from, writing to, or managing a steady number of network sockets.

This feature is available only optionally at run time and not by default. You can configure it by specifying the new parameter `sun.nio.ch.PollsetSelectorProvider` in the `-Djava.nio.channels.spi.SelectorProvider` system property on the command line.
Copy link
Member

Choose a reason for hiding this comment

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

"only" can be removed.


### ![Start of content that applies to Java 11 (LTS)](cr/java11.png) A new NIO selector provider implementation is available for AIX

A new New Input/Output (NIO) channel selector provider, which is based on the pollset system facility, is implemented on AIX. The new implementation provides significant performance benefits when reading from, writing to, or managing a steady number of network sockets.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggest removing "steady" here as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Would it better to say "...managing multiple network sockets"?

@Sreekala-Gopakumar
Copy link
Contributor Author

Jenkins doc stage

@Sreekala-Gopakumar
Copy link
Contributor Author

@pshipton @keithc-ca - I have changed the sentence to "...managing multiple network sockets". Hope that is ok.

Also, I have assumed that the -Djava.nio.channels.spi.SelectorProvider system property is not a new property. It is the parameter sun.nio.ch.PollsetSelectorProvider for this system property that is the new change. I have documented based on this assumption.

Btw, I don't see a separate topic for the -Djava.nio.channels.spi.SelectorProvider system property. This is not documented. Should it be documented? Thanks!

Copy link

@zl-wang zl-wang left a comment

Choose a reason for hiding this comment

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

LGTM


In the 0.57.0 release, a new New Input/Output (NIO) channel selector provider, which is based on the pollset system facility, is implemented on AIX. NIO selectors are used for scalable I/O operations, allowing a single thread to monitor multiple channels. The pollset facility is an AIX-specific system call that efficiently handles multiple file descriptors. The new NIO selector provider configuration provides significant performance benefits when reading from, writing to, or managing multiple network sockets.

This feature is available optionally at run time and not by default. You can configure it by specifying the new parameter `sun.nio.ch.PollsetSelectorProvider` in the `-Djava.nio.channels.spi.SelectorProvider` system property on the command line.
Copy link
Contributor

Choose a reason for hiding this comment

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

I suggest "value" would be better than "parameter" here.


A new New Input/Output (NIO) channel selector provider, which is based on the pollset system facility, is implemented on AIX. The new implementation provides significant performance benefits when reading from, writing to, or managing multiple network sockets.

This feature is available optionally at run time and not by default. You can configure it by specifying the new parameter `sun.nio.ch.PollsetSelectorProvider` in the `-Djava.nio.channels.spi.SelectorProvider` system property on the command line.
Copy link
Contributor

Choose a reason for hiding this comment

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

Again, parameter -> value.

@pshipton
Copy link
Member

I don't see a separate topic for the -Djava.nio.channels.spi.SelectorProvider system property. This is not documented. Should it be documented?

It's documented in OpenJDK API documentation:
https://docs.oracle.com/javase/8/docs/api/java/nio/channels/spi/SelectorProvider.html


## ![Start of content that applies to Java 11 (LTS)](cr/java11.png) Configuring the NIO selector provider (AIX only)

In the 0.57.0 release, a new New Input/Output (NIO) channel selector provider, which is based on the pollset system facility, is implemented on AIX. NIO selectors are used for scalable I/O operations, allowing a single thread to monitor multiple channels. The pollset facility is an AIX-specific system call that efficiently handles multiple file descriptors. The new NIO selector provider configuration provides significant performance benefits when reading from, writing to, or managing multiple network sockets.
Copy link
Member

Choose a reason for hiding this comment

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

This contains "new New", I think "new" can be removed. Also it would read better as:

a New Input/Output (NIO) channel selector provider is implemented on AIX, which is based on the pollset system facility.

Copy link
Member

Choose a reason for hiding this comment

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

Even for "new NIO" the "new" can be removed. It's new today, but it won't be in 3 months.

Copy link
Contributor

Choose a reason for hiding this comment

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

The "new New" sequence made me pause. Perhaps it would read better as:

an NIO (New Input/Output) channel selector

Copy link
Contributor Author

@Sreekala-Gopakumar Sreekala-Gopakumar Jan 15, 2026

Choose a reason for hiding this comment

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

This contains "new New", I think "new" can be removed. Also it would read better as:

a New Input/Output (NIO) channel selector provider is implemented on AIX, which is based on the pollset system facility.

@pshipton @keithc-ca - Yes, this "new New" did make me pause too, but I was not sure whether there were any other NIO channel provider or not. I will change this.

@pshipton - But, the "a New Input/Output (NIO) channel selector provider is implemented on AIX, which is based on the pollset system facility" might be misinterpreted as that the AIX itself is based on the pollset system facility, rather than the NIO provider. The " which is based on the pollset..." should be near "...provider" because that sentence modifies the "provider" not "AIX". (I am assuming that it is the NIO channel security provider that is based on the pollset facility.) I would strongly recommend to keep the sentence as

"...a New Input/Output (NIO) channel selector provider, which is based on the pollset system facility, is implemented on AIX."

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The "new New" sequence made me pause. Perhaps it would read better as:

an NIO (New Input/Output) channel selector

As a rule, we usually provide the expanded form first and then place the abbreviation in the brackets. I have changed the sentence to read

...a New Input/Output (NIO) channel selector provider, which is based on the pollset system facility, is implemented on AIX.

eclipse-openj9#1648

New parameter related to NIO selector provider added for `-Djava.nio.channels.spi.SelectorProvider` system property. Review comment incorporated.

Closes eclipse-openj9#1648
Signed-off-by: Sreekala Gopakumar [email protected]
@Sreekala-Gopakumar
Copy link
Contributor Author

Jenkins doc stage


A New Input/Output (NIO) channel selector provider, which is based on the pollset system facility, is implemented on AIX. The new implementation provides significant performance benefits when reading from, writing to, or managing multiple network sockets.

This feature is available optionally at run time and not by default. You can configure it by specifying the new value `sun.nio.ch.PollsetSelectorProvider` in the `-Djava.nio.channels.spi.SelectorProvider` system property on the command line.
Copy link
Contributor

Choose a reason for hiding this comment

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

Perhaps a nit, but the system property name does not start with -D.

The phrase "optionally at run time" suggests that the choice can be made after the VM starts which is not the case.

Copy link
Contributor Author

@Sreekala-Gopakumar Sreekala-Gopakumar Jan 15, 2026

Choose a reason for hiding this comment

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

So, what is the correct system property name? Also, in our existing documents, all the system properties have "-D". Is this system property different?

Regarding the 2nd change, how about:

This feature is available at run time only and not by default.

Copy link
Contributor

Choose a reason for hiding this comment

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

The system property name is "java.nio.channels.spi.SelectorProvider". I think we should use the same style as in https://github.com/eclipse-openj9/openj9-docs/blob/master/docs/version0.56.md which says

the format of the java.vm.version system property value

or https://github.com/eclipse-openj9/openj9-docs/blob/master/docs/vgclog.md which says

the system property file.encoding is set to bestfit936

It might look like this: This feature is not enabled by default; to enable it, set the value of the system property java.nio.channels.spi.SelectorProvider to sun.nio.ch.PollsetSelectorProvider.

Copy link
Contributor Author

@Sreekala-Gopakumar Sreekala-Gopakumar Jan 16, 2026

Choose a reason for hiding this comment

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

@keithc-ca - Should we also specify that this is possible at run time only and not after the VM starts?

This feature is not enabled by default. To enable it, set the value of the system property java.nio.channels.spi.SelectorProvider to sun.nio.ch.PollsetSelectorProvider at run time.

Also, should -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollsetSelectorProvider be changed or is it correct?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

jdk11 AIX PollsetSelector implementation

4 participants