摘要 |
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. |
主权项 |
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. |