US 12,093,208 B2
Remote descriptor to enable remote direct memory access (RDMA) transport of a serialized object
Ryan Olson, Golden, CO (US); Michael Demoret, Denver, CO (US); and Bartley Richardson, Alexandria, VA (US)
Assigned to Nvidia Corporation, Santa Clara, CA (US)
Filed by NVIDIA Corporation, Santa Clara, CA (US)
Filed on Jul. 11, 2022, as Appl. No. 17/862,222.
Claims priority of provisional application 63/346,501, filed on May 27, 2022.
Prior Publication US 2023/0385227 A1, Nov. 30, 2023
Int. Cl. G06F 15/173 (2006.01); G06F 9/30 (2018.01); H04L 67/025 (2022.01); H04L 67/1097 (2022.01)
CPC G06F 15/17331 (2013.01) [G06F 9/3004 (2013.01); H04L 67/025 (2013.01); H04L 67/1097 (2013.01)] 21 Claims
OG exemplary drawing
 
1. A method of operating a first computing device, the method comprising:
generating a remote descriptor associated with a serialized object, wherein the remote descriptor is an object that uniquely identifies a first contiguous block of the serialized object stored in a first memory associated with the first computing device; and
sending the remote descriptor to a second computing device, wherein contents of the first contiguous block are obtained from the first memory for storage at a second memory associated with the second computing device when the remote descriptor is processed by the second computing device, wherein:
the object uniquely identifies a starting address of the first contiguous block in the first memory, a size of the first contiguous block, a physical machine identifier corresponding to the first memory, a remote direct memory access (RDMA) access key, and a value of a reference count token representing one or more shares of ownership of the serialized object;
the second computing device is to use the remote descriptor to obtain contents of the first contiguous block from the first memory for storage at the second memory; and
the method further comprises:
receiving a message from the second computing device to release the remote descriptor;
updating the value of the reference count token responsive to receiving the message; and
releasing the serialized object from the first memory responsive to the value of the reference count token satisfying a threshold value.