Skip to content

[WIP][Feature commit] Initial commit for supporting IPv6 stack in Ray Clus…#40332

Closed
jjacobj84 wants to merge 3 commits intoray-project:masterfrom
jjacobj84:ipv6_final
Closed

[WIP][Feature commit] Initial commit for supporting IPv6 stack in Ray Clus…#40332
jjacobj84 wants to merge 3 commits intoray-project:masterfrom
jjacobj84:ipv6_final

Conversation

@jjacobj84
Copy link
Copy Markdown

@jjacobj84 jjacobj84 commented Oct 13, 2023

Why are these changes needed?

Initial commit for supporting IPv6 stack in Ray Cluser
Changes in the PR include the following
1 : Refactoring python code base to support IPv6 addressing.
- Replacing split(":") with rsplit(":", 1) to be compatible with IPv4 and IPv6 address
2 : Implemented a utility function build_grpc_address to support IPv6 addressing format for GRPC C-core implementation as per https://grpc.github.io/grpc/cpp/md_doc_naming.html

 IPv4 format : <address>:<port>
 IPv6 format : "ipv6":[<address>]:<port>

3 : Integrated build_grpc_address in init_grpc_channel and _connect_channel to support IPv6 based client connectivity
4 : Refactoring GcsClientOptions and PythonGcsPublisher address split to support IPv6 address format
5 : Changes in BuildChannel for building GRPC tunnels to support IPv6 addressing format

Scope of this commit is limited to the following based on validation
1 : Manually starting head and worker node using --node-ip-address parameter with IPv6 address.
Test also covered connectivity between head and worker nodes using IPv6 protocol
e.g ray start --head --node-ip-address 2600:1f18:8ce:5f00:1198:a288:1745:1979

Pending items in this PR

  • Adding Unit testcase.
  • Validating CI/CD flow is good.

Scope for next PR would include the following
1 : Validating autodiscovery of head and worker node using IPv6 stack
2 : Autodiscovery of IPV6 node ip address based on google's DNS query and preferring IPv6 over IPv4 in the case of dual stack.

Related issue number

Checks

  • I've signed off every commit(by using the -s flag, i.e., git commit -s) in this PR.
  • I've run scripts/format.sh to lint the changes in this PR.
  • I've included any doc changes needed for https://docs.ray.io/en/master/.
    • I've added any new APIs to the API Reference. For example, if I added a
      method in Tune, I've added it in doc/source/tune/api/ under the
      corresponding .rst file.
  • I've made sure the tests are passing. Note that there might be a few flaky tests, see the recent failures at https://flakey-tests.ray.io/
  • Testing Strategy
    • Unit tests
    • Release tests
    • This PR is not tested :(

…ter.

Changes in the PR include the following
1 : Refactoring python code base to support IPv6 addressing.
    Replacing `split(":")` with `rsplit(":", 1)` to be compatible with IPv4 and IPv6 address
2 : Implemented a utility function `build_grpc_address` to support IPv6 addressing format for GRPC C-core implementation as per https://grpc.github.io/grpc/cpp/md_doc_naming.html
    IPv4 format : <address>:<port>
    IPv6 format : "ipv6":[<address>]:<port>
3 : Integrated `build_grpc_address` in `init_grpc_channel` and `_connect_channel` to support IPv6 based client connectivity
4 : Refactoring `GcsClientOptions` and `PythonGcsPublisher` address split to support IPv6 address format
5 : Changes in `BuildChannel` for building GRPC tunnels to support IPv6 addressing format

**Scope of this commit is limited to the following based on validation**
1 : Manually starting head and worker node using `--node-ip-address` parameter with IPv6 address.
    Test also covered connectivity between head and worker nodes using IPv6 protocol
    **Head Node Start Command**
    `ray start --head --node-ip-address 2600:1f18:8ce:5f00:1198:a288:1745:1979`
**Pending**
- Adding Unit testcase.
- Validating CI/CD flow is good.

**Scope for next PR would include the following**
1 : Validating autodiscovery of head and worker node using IPv6 stack
2 : Autodiscovery of IPV6 node ip address based on google's DNS query and preferring IPv6 over IPv4 in the case of dual stack.

Signed-off-by: Japson Jeyasekaran <jjacobj@amazon.com>
Signed-off-by: Japson Jeyasekaran <jjacobj@amazon.com>
Signed-off-by: Japson Jeyasekaran <jjacobj@amazon.com>
@rkooo567 rkooo567 self-assigned this Oct 17, 2023
@rkooo567
Copy link
Copy Markdown
Contributor

Thanks for the contribution! We will take a look at this PR shotly :)

@rkooo567
Copy link
Copy Markdown
Contributor

is it still in WIP state now?

@rkooo567
Copy link
Copy Markdown
Contributor

ping on ^

@jjacobj84
Copy link
Copy Markdown
Author

ping on ^
Yes the changes are still WIP. Working on Fixing the UT failures and will update with a newer version.

@jjacobj84 jjacobj84 marked this pull request as draft December 5, 2023 18:15
@rkooo567
Copy link
Copy Markdown
Contributor

rkooo567 commented Dec 6, 2023

gotcha. please ping me when it is ready!

@samrocketman samrocketman mentioned this pull request Mar 25, 2024
8 tasks
@samrocketman
Copy link
Copy Markdown

samrocketman commented Mar 31, 2024

@jjacobj84 do you mind if I cherry-pick your src/ changes into PR #44252 preserving authorship and sign-off?

My python code changes are complete but the C++ and headers changes are missing.

samrocketman added a commit to samrocketman/ray that referenced this pull request Feb 13, 2025
This is the literal changes from @jjacobj84 from while I will build upon in later commits.

Specifically files:

- src/ray/gcs/gcs_client/gcs_client.h
- src/ray/gcs/pubsub/gcs_pub_sub.cc
- src/ray/rpc/grpc_client.h

Sam Gleske (samrocketman) has updated these files resolving conflicts
but left them in a similar form Japson originally contributed.

See also
--------

ray-project#40332

Signed-off-by: Japson Jeyasekaran <jjacobj@amazon.com>
Signed-off-by: Sam Gleske <sam.mxracer@gmail.com>
Signed-off-by: Sam Gleske <sgleske@integralads.com>
Co-authored-by: Sam Gleske <sam.mxracer@gmail.com>
Co-authored-by: Sam Gleske <sgleske@integralads.com>
@jcotant1 jcotant1 added the core Issues that should be addressed in Ray Core label Mar 27, 2025
@hainesmichaelc hainesmichaelc added the community-contribution Contributed by the community label Apr 4, 2025
@stale
Copy link
Copy Markdown

stale bot commented May 6, 2025

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs. Thank you for your contributions.

  • If you'd like to keep this open, just leave any comment, and the stale label will be removed.

@stale stale bot added the stale The issue is stale. It will be closed within 7 days unless there are further conversation label May 6, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jun 1, 2025

This pull request has been automatically closed because there has been no more activity in the 14 days
since being marked stale.

Please feel free to reopen or open a new pull request if you'd still like this to be addressed.

Again, you can always ask for help on our discussion forum or Ray's public slack channel.

Thanks again for your contribution!

@github-actions github-actions bot closed this Jun 1, 2025
che-sh pushed a commit to che-sh/ray that referenced this pull request Nov 13, 2025
This is the literal changes from @jjacobj84 from while I will build upon in later commits.

Specifically files:

- src/ray/gcs/gcs_client/gcs_client.h
- src/ray/gcs/pubsub/gcs_pub_sub.cc
- src/ray/rpc/grpc_client.h

Sam Gleske (samrocketman) has updated these files resolving conflicts
but left them in a similar form Japson originally contributed.

See also
--------

ray-project#40332

Signed-off-by: Japson Jeyasekaran <jjacobj@amazon.com>
Signed-off-by: Sam Gleske <sam.mxracer@gmail.com>
Signed-off-by: Sam Gleske <sgleske@integralads.com>
Co-authored-by: Sam Gleske <sam.mxracer@gmail.com>
Co-authored-by: Sam Gleske <sgleske@integralads.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community-contribution Contributed by the community core Issues that should be addressed in Ray Core stale The issue is stale. It will be closed within 7 days unless there are further conversation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants