IP Library Granted Patent US 10,459,664
Granted Patent B1
US 10,459,664 · App. 15/659,910 · Granted Oct 29, 2019

Virtualized copy-by-reference

Inventors: Roland Dreier (Mountain View, CA); Krishna Kant (Sunnyvale, CA); Rachel Shanava (Sunnyvale, CA)
Assignee: Pure Storage, Inc.
G06F3/0667G06F11/1458G06F16/128G06F16/907G06F2201/815G06F2201/84
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 10,459,664
App. No.
15/659,910
Filed
Jul 26, 2017
Granted
Oct 29, 2019
Kind
B1
Art Unit
2135
USPC
711/162
Abstract

A virtualized copy-by-reference includes: receiving, from a first computer system, a request for reference information for source data within a source volume; providing, to the first computer system, the reference information, wherein the reference information corresponds to a metadata representation of the source data; receiving, from a second computer system, a request to write the source data to a target volume, and wherein the request to write the source data indicates the reference information; and copying, using the reference information, the metadata representation of the source data to the target volume.

Claims (31)

1. A method for a virtualized copy-by-reference, the method comprising:

receiving, from a first computer system, a request for reference information for source data within a source volume;

responsive to the request for the reference information for the source data, copying a metadata representation of the source data from the source volume to an intermediary volume;

providing, to the first computer system, the reference information, wherein the reference information indicates a storage location within the intermediary volume for the metadata representation of the source data;

receiving, from a second computer system, a request to write the source data to a target volume, and wherein the request to write the source data indicates the reference information; and

copying, using the reference information, the metadata representation of the source data from the intermediary volume to the target volume.

2. The method of claim 1 , wherein the metadata representation of the source data is a structured collection of metadata objects referring, respectively, to data objects comprising the source data, and wherein the data objects are stored within the source volume.

3. The method of claim 1 , wherein copying the metadata representation of the source data is dependent upon the reference information for identifying the storage location within the intermediary volume that stores the metadata representation of the source data.

4. The method of claim 1 , wherein the source data comprises a plurality of data objects, and wherein the method further comprises:

responsive to a write request directed at a particular data object of the plurality of data objects, copying the particular data object from the source location in the source volume to a target location within the target volume;

wherein copying the particular data object uses the metadata representation of the source data to identify a source location of the particular data object within the source volume.

5. The method of claim 4 , further comprising:

responsive to copying the particular data object from the source volume to the target volume, updating the metadata representation of the source data stored in the target volume to indicate that the particular data object is stored at the target location in the target volume instead of the source location in the source volume.

6. The method of claim 4 , wherein none of the plurality of data objects are copied into the target volume until a given data object of the plurality of data objects is modified within the source volume.

7. The method of claim 1 , wherein the intermediary volume is one of a plurality of intermediary volumes.

8. The method of claim 7 , wherein, for respective metadata representations among a plurality of metadata representations, storage is circulated among the plurality of intermediary volumes according to a specified window of time.

9. The method of claim 1 , wherein the metadata representation is a snapshot of the source data, and wherein there is a single copy of the source data.

10. An apparatus for a virtualized copy-by-reference, the apparatus comprising a computer processor and a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

receiving, from a first computer system, a request for reference information for source data within a source volume;

responsive to the request for the reference information for the source data, copying a metadata representation of the source data from the source volume to an intermediary volume;

providing, to the first computer system, the reference information, wherein the reference information indicates a storage location within the intermediary volume for the metadata representation of the source data;

receiving, from a second computer system, a request to write the source data to a target volume, and wherein the request to write the source data indicates the reference information; and

copying, using the reference information, the metadata representation of the source data from the intermediary volume to the target volume.

11. The apparatus of claim 10 , wherein the metadata representation of the source data is a structured collection of metadata objects referring, respectively, to data objects comprising the source data, and wherein the data objects are stored within the source volume.

12. The apparatus of claim 10 , wherein copying the metadata representation of the source data is dependent upon the reference information for identifying the storage location within the intermediary volume that stores the metadata representation of the source data.

13. The apparatus of claim 10 , wherein the source data comprises a plurality of data objects, and wherein the computer program instructions, when executed by the computer processor, cause the apparatus to carry out the steps of:

responsive to a write request directed at a particular data object of the plurality of data objects, copying the particular data object from the source location in the source volume to a target location within the target volume;

wherein copying the particular data object uses the metadata representation of the source data to identify a source location of the particular data object within the source volume.

14. The apparatus of claim 13 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

responsive to copying the particular data object from the source volume to the target volume, updating the metadata representation of the source data stored in the target volume to indicate that the particular data object is stored at the target location in the target volume instead of the source location in the source volume.

15. The apparatus of claim 13 , wherein none of the plurality of data objects are copied into the target volume until a given data object of the plurality of data objects is modified within the source volume.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2017
From: DREIER, ROLAND; KANT, KRISHNA; SHANAVA, RACHEL
To: PURE STORAGE, INC.
Reel/Frame 043100/0438 →
Continuity (1)
Provisional Application 62483897 · Apr 10, 2017
Cited By (33)
US 12,212,586 US 12,217,079 US 12,219,048 US 12,219,053 US 12,244,627 US 12,244,634 US 12,267,326 US 12,277,216 US 12,278,819 US 12,278,825 US 12,278,840 US 12,284,220 US 12,287,899 US 12,346,309 US 12,353,474 US 12,395,488 US 12,406,071 US 12,411,937 US 12,411,957 US 12,443,720 US 12,443,722 US 12,474,854 US 12,489,781 US 12,495,049 US 12,505,200 US 12,506,755 US 12,511,230 US 12,524,550 US 12,531,881 US 12,547,765 US 12,579,251 US 12,645,785 US 12,688,277