[Core] Change object's owner

I have a list of ObjectRefs (in my case, each is a result of executing a DAGNode, e.g. refs = [node.execute() for node in dag_nodes]).

I want to be able to be able to retrieve underlying objects (ray.get(refs)) even if workers which calculated these objects are dead (currently I get The object's owner has exited error). I know I can do ray.put(object, _owner=owner), but since I have refs only, my understanding is I need to fetch each object by ref first (to driver/client?) and then call ray.put (from client again?) which obviously is not ideal and requires a lot of unneccessery data transfer. Can I change an owner only by ref?


I found [core] Support detached/GCS owned objects · Issue #12635 · ray-project/ray · GitHub suggesting

ray.util.set_object_lifetime(obj_ref, lifetime="detached"|"lru"|<actorRef>)

Is this something that has been implemented?

Hey @dirtyValera - this is something we are finally actively working on now.

@yic is currently working on object ownership transfer protocol, and I believe we should have an update in the coming months.