Using an RPC framework to facilitate out-of-band data transfers
First Claim
1. A computer-implemented method, comprising:
- a receiving device receiving, through a remote procedure call (RPC) framework, a first call to transfer an extent from a sending device to the receiving device, the extent containing data blocks;
based on the first call;
the receiving device opening an ephemeral port for an unauthenticated data connection that operates outside the RPC framework, andthe receiving device making a second call, to the sending device through the RPC framework, wherein the second call asks to stream the extent to the ephemeral port, the second call identifying the ephemeral port to which to stream the extent;
the receiving device receiving the extent from the sending device through the unauthenticated data connection and the ephemeral port;
computing a checksum for the extent on the receiving device;
the receiving device receiving a return from the second call, from the sending device through the RPC framework, wherein the return includes a checksum for the extent computed by the sending device; and
based, at least in part, on determining that the checksum computed on the receiving device matches the checksum computed on the sending device, returning the first call through the RPC framework.
3 Assignments
0 Petitions
Accused Products
Abstract
A system that stores sets of data blocks in extents located in storage devices is described. During operation, a receiving device receives, through an RPC framework, a first call asking to transfer an extent from a sending device to the receiving device. In response, the receiving device opens a port for a data connection that operates outside the RPC framework. The receiving device makes a second call, to the sending device through the RPC framework, asking to stream the extent to the port. The receiving device subsequently receives the extent from the sending device through the port and computes a checksum for the extent. The receiving device also receives a return from the second call, including a checksum for the extent computed by the sending device. If the computed checksum matches the received checksum, the receiving device returns the first call to indicate the transfer operation completed successfully.
-
Citations
24 Claims
-
1. A computer-implemented method, comprising:
-
a receiving device receiving, through a remote procedure call (RPC) framework, a first call to transfer an extent from a sending device to the receiving device, the extent containing data blocks; based on the first call; the receiving device opening an ephemeral port for an unauthenticated data connection that operates outside the RPC framework, and the receiving device making a second call, to the sending device through the RPC framework, wherein the second call asks to stream the extent to the ephemeral port, the second call identifying the ephemeral port to which to stream the extent; the receiving device receiving the extent from the sending device through the unauthenticated data connection and the ephemeral port; computing a checksum for the extent on the receiving device; the receiving device receiving a return from the second call, from the sending device through the RPC framework, wherein the return includes a checksum for the extent computed by the sending device; and based, at least in part, on determining that the checksum computed on the receiving device matches the checksum computed on the sending device, returning the first call through the RPC framework. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. One or more non-transitory computer-readable media storage medium storing instructions that when executed by a computer system, cause the computer system to perform:
-
a receiving device receiving, through a remote procedure call (RPC) framework, a first call to transfer an extent from a sending device to the receiving device, the extent containing data blocks; based on the first call; the receiving device opening an ephemeral port for an unauthenticated data connection that operates outside the RPC framework, and the receiving device making a second call, to the sending device through the RPC framework, wherein the second call asks to stream the extent to the ephemeral port, the second call identifying the ephemeral port to which to stream the extent; the receiving device receiving the extent from the sending device through the unauthenticated data connection and the ephemeral port; computing a checksum for the extent on the receiving device; the receiving device receiving a return from the second call, from the sending device through the RPC framework, wherein the return includes a checksum for the extent computed by the sending device; and based, at least in part, on determining that the checksum computed on the receiving device matches the checksum computed on the sending device, returning the first call through the RPC framework. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system, comprising:
-
one or more processors; one or more non-transitory media storing instructions configured for execution by the one or more processors, the instructions configured to perform; a receiving device receiving, through a remote procedure call (RPC) framework, a first call to transfer an extent from a sending device to the receiving device, the extent containing data blocks; based on the first call; the receiving device opening an ephemeral port for an unauthenticated data connection that operates outside the RPC framework and the receiving device making a second call, to the sending device through the RPC framework, wherein the second call asks to stream the extent to the ephemeral port, the second call identifying the ephemeral port to which to stream the extent; the receiving device receiving the extent from the sending device through the unauthenticated data connection and the ephemeral port; computing a checksum for the extent on the receiving device; the receiving device receiving a return from the second call, from the sending device through the RPC framework, wherein the return includes a checksum for the extent computed by the sending device; and based, at least in part, on determining that the checksum computed on the receiving device matches the checksum computed on the sending device, returning the first call through the RPC framework. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification