USING AN RPC FRAMEWORK TO FACILITATE OUT-OF-BAND DATA TRANSFERS
First Claim
1. A computer-implemented method, comprising:
- operating a data storage system that stores sets of data blocks in extents that are located in storage devices including a sending device and a receiving device, wherein operating the data storage system includes performing the following operations on the receiving device;
receiving, through a remote procedure call (RPC) framework, a first call to transfer an extent from the sending device to the receiving device; and
in response to the first call,opening a port for a data connection that operates outside the RPC framework,making a second call, to the sending device through the RPC framework, wherein the second call asks to stream the extent to the port,receiving the extent from the sending device through the port,computing a checksum for the extent on 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, andif the checksum computed on the receiving device matches the checksum computed on the sending device, returning the first call, through the RPC framework, to indicate the transfer operation completed successfully.
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.
11 Citations
24 Claims
-
1. A computer-implemented method, comprising:
-
operating a data storage system that stores sets of data blocks in extents that are located in storage devices including a sending device and a receiving device, wherein operating the data storage system includes performing the following operations on the receiving device; receiving, through a remote procedure call (RPC) framework, a first call to transfer an extent from the sending device to the receiving device; and in response to the first call, opening a port for a data connection that operates outside the RPC framework, making a second call, to the sending device through the RPC framework, wherein the second call asks to stream the extent to the port, receiving the extent from the sending device through the port, computing a checksum for the extent on 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 if the checksum computed on the receiving device matches the checksum computed on the sending device, returning the first call, through the RPC framework, to indicate the transfer operation completed successfully. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:
-
operating a data storage system that stores sets of data blocks in extents that are located in storage devices including a sending device and a receiving device, wherein operating the data storage system includes performing the following operations on the receiving device; receiving, through a remote procedure call (RPC) framework, a first call to transfer an extent from the sending device to the receiving device; and in response to the first call, opening a port for a data connection that operates outside the RPC framework, making a second call, to the sending device through the RPC framework, wherein the second call asks to stream the extent to the port, receiving the extent from the sending device through the port, computing a checksum for the extent on 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 if the checksum computed on the receiving device matches the checksum computed on the sending device, returning the first call, through the RPC framework, to indicate the transfer operation completed successfully. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A data storage system, comprising:
-
one or more storage devices including a sending device and a receiving device, wherein the one or more storage devices contain extents that store sets of data blocks; and wherein upon receiving, through a remote procedure call (RPC) framework, a first call to transfer an extent from the sending device to the receiving device, the receiving device is configured to, open a port for a data connection that operates outside the RPC framework, make a second call, to the sending device through the RPC framework, wherein the second call asks to stream the extent to the port, receive the extent from the sending device through the port, compute a checksum for the extent on the receiving device, receive 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 if the checksum computed on the receiving device matches the checksum computed on the sending device, return the first call, through the RPC framework, to indicate the transfer operation completed successfully. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification