Remote retreival of data files
AssigneeRed Hat, Inc.
InventorBill C. Riemers
Life of this patent
Estimating the term…
Abstract
A method and apparatus that include a hashing and retrieval module that receives an indicator of a portion of a file to access, generates a hash value of a local copy of the portion and generates a request for a remote copy of the portion of the file, the request including the hash value. A verification and response module receives the request for a portion of a server copy of a data file, the request including a first hashing value. The verification and response module retrieves the portion from a server storage device, generates a second hashing value from the portion, compares the first hash value and the second hash value and returns the portion of the file in response to a failed comparison of the first hash value and second hash value.
Claims18
A method comprising:
- receiving, by a client device, an indicator of a portion of a file to access, wherein the portion comprises a segment of the file that is less than a whole of the file;
- generating, by a processing device of the client device, a hash value for a portion of the file calculated from of a local copy of the portion of the file in view of the indicator, wherein the hash value is generated using a shared seed, wherein the shared seed is pre-set by the client device and is shared between the client device and a server device;
- generating, by the processing device of the client device, a request for a remote copy of the portion of the file, wherein the request comprises a uniform resource indicator (URI) of the file, a byte range identifier, and the hash value for the portion of the file, wherein the byte range indicator identifies the portion of the file that the hash value was calculated from, and further wherein the request is sent in a selected transfer protocol that is shared between the server device and the client device;
- determining, by the client device in view of the selected transfer protocol, whether an acknowledgement of the request has been received from the server device, wherein a format and content of the acknowledgement are in view of the selected transfer protocol, and wherein failure to receive the acknowledgement indicates that the local copy of the portion of the file is current;
- receiving, by the client device, a response to the request, the response comprising the URI of the file and the byte range identifier from the server device indicating the remote copy of the portion of the file matches the local copy of the portion of the file in response to a determination, made by the server device, that a comparison between the hash value and a remote hash value indicates the local copy of the portion of the file matches the remote copy of the portion of the file, wherein the remote hash value was generated by the server device using the shared seed, and wherein the response is sent in the selected transfer protocol;
- and
- causing meta data of a local storage device to be updated to indicate that the local copy of the portion of the file has been verified as current.
A method comprising:
- receiving, by a processing device of a server device, a request from a client device for a portion of a server copy of a data file, wherein the portion comprises a segment of the data file that is less than a whole of the data file and wherein the request comprises a uniform resource indicator (URI) of the file, a byte range indicator, and a first hashing value calculated from a corresponding portion of a client copy of the data file, wherein the byte range indicator identifies the portion of the data file that the first hashing value was calculated from, and further wherein the request is sent in a selected transfer protocol that is shared between the server device and the client device, wherein the first hashing value is calculated using a shared seed;
- retrieving, by the server device, the portion of the server copy of the data file from a storage device in view of the request;
- generating, by the server device, a second hashing value from the portion of the server copy of the data file in view of the byte range indicator identifying the portion of the data file using the shared seed;
- comparing, by the server device, the first hash value and the second hash value;
- transmitting, by the server device, an acknowledgement to the client device that the request has been received, wherein a format and content of the acknowledgement are in view of the selected transfer protocol, and wherein failure to transmit the acknowledgement indicates that the corresponding portion of the client copy of the data file is current;
- returning, by the server device, the portion of the data file in response to the comparison indicating that the local copy of the portion of the data file matches the remote copy of the portion of the data file;
- and
- returning, by the processing device of the server device, a response to the request, the response comprising the URI of the file and the byte range indicator, the response indicating the portion of the data file has not changed in response to the comparison of the first hash value and second hash value indicating that the local copy of the portion of the data file matches the remote copy of the portion of the data file, wherein the response is returned using the selected transfer protocol, and wherein returning the response causes the client device to update meta data of a local storage device to indicate that the local copy of the portion of the data file has been verified as current.
A non-transitory computer-readable storage medium having stored therein a set of instructions, which when executed cause a processing device to:
- receive, by the processing device, a uniform resource indicator (URI) of a portion of a file to access, wherein the portion comprises a segment of the file that is less than a whole of the file;
- generate, by the processing device, a hash value calculated from a local copy of the portion of the file, in view of the URI indicator, wherein the hash value is generated using a shared seed, wherein the shared seed is pre-set by the client device and is shared between the client device and the server;
- generate, by the processing device, a request for a remote copy of the portion of the file, wherein the request comprises the URI indicator of the file, a byte range identifier, the hash value for the portion of the file, wherein the byte range indicator identifies the portion of the file that the hash value was calculated from, and further where in the request is sent in a selected transfer protocol that is shared between the server device and the client device;
- determine whether an acknowledgement of the request has been received from the server, wherein a format and content of the acknowledgement are in view of the selected transfer protocol, and wherein failure to receive the acknowledgement indicates that the local copy of the portion of the file is current;
- receive, by the processing device, a response to the request, the response comprising the URI of the file and the byte range identifier, the response indicating the remote copy of the portion of the file matches the local copy of the portion of the file in response to a determination, made by the server device, that a comparison between the hash value and a remote hash value indicates that the local copy of the portion of the file matches the remote copy of the portion of the file, wherein the remote hash value was generated by the server device using the shared seed, and wherein the response is sent in the selected transfer protocol;
- and
- cause meta data of a local storage device to be updated to indicate that the local copy of the portion of the file has been verified as current.
A non-transitory computer-readable storage medium having stored therein a set of instructions, which when executed cause a processing device of a server device to:
- receive, by the processing device, a request from a client device for a portion of a server copy of a data file, wherein the portion comprises a segment of the data file that is less than a whole of the data file and wherein the request comprises a uniform resource indicator (URI) of the data file, a byte range indicator, and a first hashing value calculated from a corresponding portion of a client copy of the data file, wherein the byte range indicator identifies the portion of the file that the first hashing value was calculated from, and further wherein the request is sent in selected transfer protocol that is shared between the server device and the client device wherein the first hashing value is generated using a shared seed;
- retrieve, by the processing device, the portion of the server copy of the data file from a storage device in view of the request;
- generate, by the processing device, a second hashing value from the portion of the server copy of the data file in view of the byte range indicator identifying the portion of the data file in view of the shared seed;
- compare, by the processing device, the first hashing value and the second hashing value;
- transmit an acknowledgement to the client device that the request has been received, wherein a format and content of the acknowledgement are in view of the selected transfer protocol, and wherein failure to transmit the acknowledgement indicates that the corresponding portion of the client copy of the data file is current;
- return, by the processing device, the portion of the file in response to the comparison indicating that the local copy of the portion of the data file matches the remote copy of the portion of the data file;
- and
- return, by the processing device, a response to the request, the response comprising the URI of the data file and the byte range indicator, the response indicating the portion of the data file has not changed in response the comparison of the first hash value and second hash value indicating that the local copy of the portion of the data file matches the remote copy of the portion of the data file, wherein the response is returned using the selected transfer protocol, and wherein return of the response causes the client device to update meta data of a local storage device to indicate that the local copy of the portion of the data file has been verified as current.
An apparatus comprising:
- a memory;
- and
- a processing device of a server device, operatively coupled to the memory, to:
- receive a request from a client device for a portion of a file, wherein the portion comprises a segment of the file that is less than a whole of the file and wherein the request comprises a uniform resource indicator (URI) of the file, a byte range indicator, and a first hash value calculated from a client copy of the portion of the file, wherein the byte range indicator identifies the portion of the file that the first hashing value was calculated from, and further where the request is sent in a selected transfer protocol that is shared between the server device and the client device, wherein the first hash value is calculated using a shared seed;
- and
- generate a second hash value of a server copy of the portion of the file in view of the shared seed;
- check the first hash value against the second hash value;
- transmit an acknowledgement to the client device that the request has been received, wherein a format and content of the acknowledgement are in view of the selected transfer protocol, and wherein failure to transmit the acknowledgement indicates that the client copy of the portion of the file is current;
- and
- return a response to the request, the response comprising the URI of the file and the byte range indicator, the response indicating the portion of the file has not changed in response to a comparison of the first hash value against the second hash value indicating that the local copy of the portion of the file matches the remote copy of the portion to the file, wherein the response is returned using the selected transfer protocol, and wherein the return of the response indicating that the local copy of the portion of the file matches the remote copy of the portion of the file causes the client device to update meta data of a local storage device to indicate that the local copy of the portion of the file has been verified as current.
Dependencies are inferred from the claim text.