[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?

Thanks!!

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.

Hey @rickyyx is there any news about object ownership transfer protocol? My team is working with upward data flow using large numpy arrays, so we are highly interested in ownership transfer feature