IP Library Granted Patent US 9,235,577
Granted Patent B2
US 9,235,577 · App. 12/399,871 · Granted Jan 12, 2016

File transfer using standard blocks and standard-block identifiers

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,235,577
App. No.
12/399,871
Granted
Jan 12, 2016
Kind
B2
Abstract

Instead of transferring a large original file from a source system to a target system, the original file is encoded to define a recipe. The recipe is then decoded to yield a duplicate of the original file on the target system. Encoding involves identifying standard blocks in the original file and including standard-block identifiers for the standard blocks in the recipe in lieu of the original blocks. Decoding involves an exchange with a standard-block identifier server system, which provides standard blocks in response to received standard-block identifiers.

Claims (34)

1. A computer-implemented method comprising:

converting by a processor of a source system an original file into original blocks;

generating hashes from said original blocks;

transmitting some of said hashes over a network to a server system and, in response thereto, receiving, from the server system, identifiers of standard blocks having hashes that match one of the hashes transmitted over the network;

generating a recipe file including the received identifiers; and

transferring over said network said recipe file to a target system.

2. The computer-implemented method as recited claim 1 further comprising:

in response to said transmitting, further receiving from the server system an indication that a hash generated from an original block and transmitted to the server system does not match a hash of a standard block; and

responsive to receiving said indication in response to transmitting said hash, including in said recipe file a compressed version of the original block from which said hash was generated.

3. The computer-implemented method as recited in claim 1 further comprising decoding said recipe file at the target system to yield a duplicate file of said original file.

4. The computer-implemented method as recited in claim 3 wherein said decoding involves:

transmitting identifiers included in said recipe file from said target system over said network to said server system; and

in response to said transmitting, receiving at said target system a compressed version of standard blocks from said server system.

5. The computer-implemented method as recited in claim 1 wherein said original file is a virtual-machine image file.

6. A non-transitory computer-readable storage media encoded with instructions executable by a processor to cause the processor to perform a method comprising the steps of:

dividing an original file into file blocks;

compressing said file blocks to yield compressed file blocks;

generating hashes from said compressed file blocks;

generating a recipe file by processing said hashes to determine whether each of said hashes that are currently processed matches a previously-processed hash;

responsive to determining that a currently-processed hash matches a previously-processed hash, associating an identifier for the currently-processed hash with an identifier for the matching previously-processed hash, and

responsive to determining that the currently-processed hash does not match a previously-processed hash, transmitting the currently-processed hash to a server system and, responsive to receiving an identifier from the server system in response to said transmitting, including the identifier in said recipe file.

7. The non-transitory computer-readable storage media as recited in claim 6 wherein, responsive to said server system returning an indication that said currently-processed hash does not correspond to a standard block, including a copy of a compressed file block from which said currently processed hash was generated in said recipe file.

8. The non-transitory computer-readable storage media as recited in claim 6 wherein the method further comprises the step of:

transmitting said recipe file from a source system to a target system,

said recipe file being decoded at the target system to yield a duplicate file of said original file.

9. The non-transitory computer-readable storage media as recited in claim 6 wherein said original file is a virtual-machine image file.

10. A computer system having source, target, and server systems connected over a network, wherein the source system has an original file that is to be duplicated at the target system, and the server system comprises:

a storage unit for storing standard data blocks of the original file in a predetermined format;

a first converter, executing in a processor of the server system, that receives hashes from the source system over the network, compares the received hashes with hashes generated from the standard data blocks, and transmits to the source system over the network, identifiers of the standard data blocks that have hashes that match one of the received hashes; and

a second converter, executing in the processor of the server system, that receives identifiers of standard data blocks from the target system over the network, and transmits to the target system over the network, the standard data blocks that are associated with the received identifiers.

11. The computer system as recited in claim 10 wherein said first converter, in response to receiving from said source system a hash that is not identical to a hash of any of said standard data blocks, returns an indication that the received hash does not correspond to any of said standard data blocks.

12. The computer system as recited in claim 11 wherein said source system includes an encoder for generating a recipe file by encoding the original file, and said target system includes a decoder for generating a duplicate of said original file by decoding said recipe file, said recipe file including identifiers of standard data blocks and a compressed version of file blocks of said original file.

13. The computer system as recited in claim 12 wherein said source system includes a chunker for dividing said original file into file blocks, and a hash generator for generating hashes from said file blocks.

14. The computer system as recited in claim 12 wherein said original file is a virtual-machine image file.

Assignments (6)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
RELEASE OF SECURITY INTERESTS Recorded Sep 4, 2014
From: SILICON VALLEY BANK
To: ASPEN AEROGELS, INC.
Reel/Frame 033686/0702 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 30, 2014
From: PJC CAPITAL LLC
To: ASPEN AEROGELS, INC.
Reel/Frame 033253/0985 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 24, 2013
From: ASPEN AEROGELS, INC.
To: PJC CAPITAL LLC
Reel/Frame 030292/0456 →
SECURITY AGREEMENT Recorded Apr 5, 2013
From: ASPEN AEROGELS, INC.
To: SILICON VALLEY BANK
Reel/Frame 030157/0815 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2009
From: AASTED, MATTHEW; SHAH, MEERA; AMARASINGHE, SAMAN P.; GARNETT, TIMOTHY
To: VMWARE, INC.
Reel/Frame 022360/0900 →