Using an rpc framework to facilitate out-of-band data transfers

US2016112293A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016112293-A1
Application numberUS-201414519888-A
CountryUS
Kind codeA1
Filing dateOct 21, 2014
Priority dateOct 21, 2014
Publication dateApr 21, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. 2 . The computer-implemented method of claim 1 , wherein the data connection is a transmission control protocol (TCP) connection; and wherein the port is a TCP ephemeral port. 3 . The computer-implemented method of claim 1 , wherein the checksum comprises an MD5 hash of the extent. 4 . The computer-implemented method of claim 1 , wherein after receiving the extent, the method further comprises storing the extent in a scratch extent on the receiving device, wherein the scratch extent is accessible through a private identifier; and wherein returning the first call involves returning the private identifier for the scratch extent, thereby enabling a requester to access the scratch extent on the receiving device. 5 . The computer-implemented method of claim 4 , wherein the private identifier is randomly selected from a range of identifiers; and wherein the range of identifiers is sufficiently large to ensure to a specified probability that the private identifier is unguessable. 6 . The computer-implemented method of claim 1 , wherein the transfer of the extent is associated with moving the extent from the sending device to the receiving device. 7 . The computer-implemented method of claim 1 , wherein the transfer of the extent is associated with replicating the extent from the sending device to the receiving device. 8 . The computer-implemented method of claim 1 , wherein operating the data storage system includes performing the following operations on the sending device: receiving, through the RPC framework, the second call asking to stream the extent from the sending device through the data connection to the port on the receiving device; and in response to the second call, streaming the extent through the data connection to the port on the receiving device, computing a checksum for the extent on the sending device, and returning the second call along with the computed checksum for the extent through the RPC framework to the receiving device, thereby enabling the receiving device to compare the checksum for the extent computed by the receiving device with the checksum for the extent computed by the sending device to determine whether the extent was transferred successfully. 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. 10 . The non-transitory computer-readable storage medium of claim 9 , wherein the data connection is a transmission control protocol (TCP) connection; and wherein the port is a TCP ephemeral port. 11 . The non-transitory computer-readable storage medium of claim 9 , wherein the checksum comprises an MD5 hash of the extent. 12 . The non-transitory computer-readable storage medium of claim 9 , wherein after receiving the extent, the method further comprises storing the extent in a scratch extent on the receiving device, wherein the scratch extent is accessible through a private identifier; and wherein returning the first call involves returning the private identifier for the scratch extent, thereby enabling a requester to access the scratch extent on the receiving device. 13 . The non-transitory computer-readable storage medium of claim 12 , wherein the private identifier is randomly selected from a range of identifiers; and wherein the range of identifiers is sufficiently large to ensure to a specified probability that the private identifier is unguessable. 14 . The non-transitory computer-readable storage medium of claim 9 , wherein the transfer of the extent is associated with moving the extent from the sending device to the receiving device. 15 . The non-transitory computer-readable storage medium of claim 9 , wherein the transfer of the extent is associated with replicating the extent from the sending device to the receiving device. 16 . The non-transitory computer-readable storage medium of claim 9 , wherein operating the data storage system includes performing the following operations on the sending device: receiving, through the RPC framework, the request to stream the extent from the sending device through the data connection to the port on the receiving device; and in response to the received request, streaming the extent through the data connection to the port on the receiving device, computing a checksum for the extent on the sending device, and sending the computed checksum for the extent through the RPC framework to the receiving device, thereby enabling the receiving device to compare the checksum for the extent computed by the receiving device with the checksum for the extent computed by the sending device to determine whether the extent was transferred successfully. 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

Assignees

Inventors

Classifications

  • G06F9/547Primary

    Remote procedure calls [RPC]; Web services · CPC title

  • H04L67/02Primary

    based on web technology, e.g. hypertext transfer protocol [HTTP] · CPC title

  • H04L43/10Primary

    Active monitoring, e.g. heartbeat, ping or trace-route · CPC title

  • Protocols for remote procedure calls [RPC] · CPC title

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016112293A1 cover?
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 sec…
Who is the assignee on this patent?
Dropbox Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/547. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Apr 21 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).