-
Notifications
You must be signed in to change notification settings - Fork 28.9k
[SPARK-54023][CORE] Support AUTO IO Mode
#52724
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
cc @yaooqinn and @LuciferYang |
AUTO Netty IO ModeAUTO IO Mode
|
Could you review this PR when you have some time, @viirya and @peter-toth ? |
viirya
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks okay.
|
Thank you so much, @viirya . Merged to master for Apache Spark 4.1.0-preview3. |
peter-toth
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Late LGTM.
|
Late LGTM |
|
Thank you, @peter-toth and @LuciferYang . |
|
Late LGTM |
|
Thank you, @yaooqinn . |
### What changes were proposed in this pull request? Support native kqueue transport on BSD/MacOS for `celeborn.<module>.io.mode`. Backport: - apache/spark#52703 - apache/spark#52724 ### Why are the changes needed? Netty provides the following platform specific JNI transports for [native transports](https://netty.io/wiki/native-transports.html): - Linux (since 4.0.16) - MacOS/BSD (since 4.1.11) These JNI transports add features specific to a particular platform, generate less garbage, and generally improve performance when compared to the NIO based transport. ### Does this PR introduce _any_ user-facing change? Change the default value of `celeborn.<module>.io.mode` from `NIO` to `EPOLL` if epoll mode is available, from `NIO` to `KQUEUE` if kqueue mode is available, falling back to `NIO` otherwise. ### How was this patch tested? CI. Closes #3518 from SteNicholas/CELEBORN-2185. Authored-by: SteNicholas <[email protected]> Signed-off-by: SteNicholas <[email protected]>
### What changes were proposed in this pull request? This PR aims to support a new Netty IO Mode, `AUTO`, on top of the existing `NIO`, `EPOLL`, and `KQUEUE`. `AUTO` mode prefers to use native `EPOLL` mode on Linux and `KQUEUE` mode on MacOS if available. Then, it fallbacks to `NIO` mode. ### Why are the changes needed? To help a user to try to use native IO mode more easily. ### Does this PR introduce _any_ user-facing change? No, this is a new IO mode. ### How was this patch tested? Pass the CIs with newly added test suite, `ShuffleNettyAutoSuite`. ### Was this patch authored or co-authored using generative AI tooling? No. Closes apache#52724 from dongjoon-hyun/SPARK-54023. Authored-by: Dongjoon Hyun <[email protected]> Signed-off-by: Dongjoon Hyun <[email protected]>
What changes were proposed in this pull request?
This PR aims to support a new Netty IO Mode,
AUTO, on top of the existingNIO,EPOLL, andKQUEUE.AUTOmode prefers to use nativeEPOLLmode on Linux andKQUEUEmode on MacOS if available. Then, it fallbacks toNIOmode.Why are the changes needed?
To help a user to try to use native IO mode more easily.
Does this PR introduce any user-facing change?
No, this is a new IO mode.
How was this patch tested?
Pass the CIs with newly added test suite,
ShuffleNettyAutoSuite.Was this patch authored or co-authored using generative AI tooling?
No.