ray-project / ray

Ray is an AI compute engine. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads.
https://ray.io
Apache License 2.0
33.69k stars 5.72k forks source link

[RFC] Open source RayCommonLibs, which'll enrich the Ray ecosystem. #20760

Closed jovany-wang closed 2 years ago

jovany-wang commented 2 years ago

An initial public proposal doc: https://docs.google.com/document/d/1keQjKNKmhlC7SJQCGByPB-knnVMk9W_0khh7qpZv9Js/edit#heading=h.k3w9s2fjmhwo

Some related issues: [RFC] Feature request about Actor State/Migration Notification.

-------Updated An pubsub lightweight library proposal: https://docs.google.com/document/d/1eOiTBDO8Crpc4GgKKrKuy-IlUYzKkBrYevopXA8ksxA/edit#heading=h.y9vrwvnhp4t4

jovany-wang commented 2 years ago

@ericl @simon-mo @raulchen @lixin-wei @clay4444 CC

ericl commented 2 years ago

This seems quite similar to the actor pool proposal from @edoakes for improving actors management for Serve. If we go ahead with the ActorPool concept, it seems these efforts can be unified.

simon-mo commented 2 years ago

Are the libraries implemented purely in Java at the moment?

jovany-wang commented 2 years ago

Are the libraries implemented purely in Java at the moment?

Some of them are implemented in multiple languages. The ActorStateNotification is implemented in Java currently.

jovany-wang commented 2 years ago

@simon-mo Any concern on introducing a new language for RayServe?

simon-mo commented 2 years ago

Serve and other Ray Python libraries cannot depend on Java due to memory overhead and JVM dependencies. So this has to be either Python, C++ actor, or C++ core component.

jovany-wang commented 2 years ago

Serve and other Ray Python libraries cannot depend on Java due to memory overhead and JVM dependencies. So this has to be either Python, C++ actor, or C++ core component.

I see.

jovany-wang commented 2 years ago

@ericl @edoakes @simon-mo Is there any doc or related issue around actor pool concept?

jovany-wang commented 2 years ago

Hi @ericl and @raulchen ,

I had talked with @simon-mo and @liuyang-my about the ray.util.EventBroker and ray.util.ActorStateObserver. We've got phased agreements on the following points:

We're making efforts on the above items, such as Simon is making efforts on API review and I'm rewriting it in Python, and we'll put them into ray.util package currently.

But for a long term plan of riching our Ray ecosystems, I'm very open to discuss the topic that whether ray.util is the best place for these components.

As described in the title of this issue, we'd like to propose commonlibs library for Ray ecosystem to bridge Ray applications and Ray core. The key difference between commonlibs and ray.util package is commonlibs is an independent package/library. This is very used for hot bug fix in practice.

Looking forward more different voices :)

jovany-wang commented 2 years ago

@ericl @edoakes @simon-mo Is there any doc or related issue around actor pool concept?

Things were investigated clearly. Thanks.

stale[bot] commented 2 years ago

Hi, I'm a bot from the Ray team :)

To help human contributors to focus on more relevant issues, I will automatically add the stale label to issues that have had no activity for more than 4 months.

If there is no further activity in the 14 days, the issue will be closed!

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

stale[bot] commented 2 years ago

Hi, I'm a bot from the Ray team :)

To help human contributors to focus on more relevant issues, I will automatically add the stale label to issues that have had no activity for more than 4 months.

If there is no further activity in the 14 days, the issue will be closed!

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

stale[bot] commented 2 years ago

Hi again! The issue will be closed because there has been no more activity in the 14 days since the last message.

Please feel free to reopen or open a new issue if you'd still like it to be addressed.

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

Thanks again for opening the issue!