IP Library Granted Patent US 11,550,665
Granted Patent B2
US 11,550,665 · App. 15/721,311 · Granted Jan 10, 2023

Techniques for preserving clone relationships between files

Inventors: Pavel Cisler (Redwood City, CA); Christopher A. Wolf (Bahama, NC); Loic E. Vandereyken (Palo Alto, CA); Eric A. Weiss (Paris, FR)
Assignee: Apple Inc.
G06F11/1448G06F3/0486G06F11/1469G06F16/11G06F16/128G06F16/164G06F16/168G06F16/178G06F3/04845G06F2201/80G06F2201/805G06F2201/82
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 11,550,665
App. No.
15/721,311
Granted
Jan 10, 2023
Kind
B2
Abstract

The described embodiments set forth techniques for preserving clone relationships between files at a computing device. In particular, the techniques involve identifying clone relationships between files in conjunction with performing operations on the files where it can be beneficial to preserve the clone relationships. The operations can include, for example, preserving clone relationships between files that are being copied from a source storage device (that supports file cloning) to a destination storage device that supports file cloning. Additionally, the operations can include preserving clone relationships when backing up and restoring files between a source storage device (that supports file cloning) and a destination storage device that does not support file cloning. In this manner, the various benefits afforded by the clone relationships between files can be retained even as the files are propagated to destination storage devices that may or may not support file cloning.

Claims (50)

1. A method for retaining clone relationships between files when performing file copy operations in order to preserve available storage space, the method comprising:

receiving a request to copy a first file and a second file from a source storage device to a destination storage device, wherein a first clone relationship exists between the first and second files;

identifying that the destination storage device supports file cloning capabilities; and

performing, on the destination storage device:

(1) a file copy operation that causes a copy of the first file to be established at the destination storage device as a third file, and

(2) a file cloning operation that causes a clone of the third file to be established at the destination storage device as a fourth file, wherein:

the fourth file contains only a subset of data of the third file such that a second clone relationship exists between the third and fourth files that is the same as the first clone relationship between the first and second files.

2. The method of claim 1 , wherein:

the first clone relationship is a perfect clone relationship when extents referred to by the first and second files are identical in nature, and

the first clone relationship is a partial clone relationship when at least one physical block overlap exists between extents of the first and second files.

3. The method of claim 1 , wherein the second clone relationship is the same as the first clone relationship when the third and fourth files are cloned in the same manner as the first and second files.

4. The method of claim 1 , where the subset of data comprises information that refers to at least one extent that is shared between the third and fourth files.

5. The method of claim 1 , wherein the request is generated in response to:

receiving a selection of the first and second files in a user interface (UI); and

receiving a copy command associated with the first and second files.

6. The method of claim 5 , wherein the copy command is issued in conjunction with receiving, at a user interface (UI) element that represents the destination storage device, a drop event from a drag of the selection of the first and second files.

7. The method of claim 5 , wherein the copy command is issued in conjunction with (1) (i) receiving a second selection of a copy UI element/a third selection of a paste UI element within a context menu displayed in association with the selection, or (2) detecting (i) a first hotkey that corresponds to the copy command and (ii) a second hotkey that corresponds to a paste command.

8. At least one non-transitory computer readable storage medium configured to store instructions that, when executed by a processor included in a computing device, cause the computing device to retain clone relationships between files when performing file copy operations in order to preserve available storage space, by carrying out steps that include:

receiving a request to copy a first file and a second file from a source storage device to a destination storage device, wherein a first clone relationship exists between the first and second files;

identifying that the destination storage device supports file cloning capabilities; and

performing, on the destination storage device:

(1) a file copy operation that causes a copy of the first file to be established at the destination storage device as a third file, and

(2) a file cloning operation that causes a clone of the third file to be established at the destination storage device as a fourth file, wherein:

the fourth file contains only a subset of data of the third file such that a second clone relationship exists between the third and fourth files that is the same as the first clone relationship between the first and second files.

9. The non-transitory computer readable storage medium of claim 8 , wherein:

the first clone relationship is a perfect clone relationship when extents referred to by the first and second files are identical in nature, and

the first clone relationship is a partial clone relationship when at least one physical block overlap exists between extents of the first and second files.

10. The non-transitory computer readable storage medium of claim 8 , wherein the second clone relationship is the same as the first clone relationship when the third and fourth files are cloned in the same manner as the first and second files.

11. The non-transitory computer readable storage medium of claim 8 , where the subset of data comprises information that refers to at least one extent that is shared between the third and fourth files.

12. The non-transitory computer readable storage medium of claim 8 , wherein the request is generated in response to:

receiving a selection of the first and second files in a user interface (UI); and

receiving a copy command associated with the first and second files.

13. The non-transitory computer readable storage medium of claim 12 , wherein the copy command is issued in conjunction with receiving, at a user interface (UI) element that represents the destination storage device, a drop event from a drag of the selection of the first and second files.

14. The non-transitory computer readable storage medium of claim 12 , wherein the copy command is issued in conjunction with (1) (i) receiving a second selection of a copy UI element/a third selection of a paste UI element within a context menu displayed in association with the selection, or (2) detecting (i) a first hotkey that corresponds to the copy command and (ii) a second hotkey that corresponds to a paste command.

15. A computing device configured to retain clone relationships between files when performing file copy operations in order to preserve available storage space, the computing device comprising a processor configured to cause the computing device to carry out steps that include:

receiving a request to copy a first file and a second file from a source storage device to a destination storage device, wherein a first clone relationship exists between the first and second files;

identifying that the destination storage device supports file cloning capabilities; and

performing, on the destination storage device:

(1) a file copy operation that causes a copy of the first file to be established at the destination storage device as a third file, and

(2) a file cloning operation that causes a clone of the third file to be established at the destination storage device as a fourth file, wherein:

the fourth file contains only a subset of data of the third file such that a second clone relationship exists between the third and fourth files that is the same as the first clone relationship between the first and second files.

16. The computing device of claim 15 , wherein:

the first clone relationship is a perfect clone relationship when extents referred to by the first and second files are identical in nature, and

the first clone relationship is a partial clone relationship when at least one physical block overlap exists between extents of the first and second files.

17. The computing device of claim 15 , wherein the second clone relationship is the same as the first clone relationship when the third and fourth files are cloned in the same manner as the first and second files.

18. The computing device of claim 15 , where the subset of data comprises information that refers to at least one extent that is shared between the third and fourth files.

19. The computing device of claim 15 , wherein the request is generated in response to:

receiving a selection of the first and second files in a user interface (UI); and

receiving a copy command associated with the first and second files.

20. The computing device of claim 19 , wherein the copy command is issued in conjunction with receiving, at a user interface (UI) element that represents the destination storage device, a drop event from a drag of the selection of the first and second files.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2017
From: CISLER, PAVEL; WOLF, CHRISTOPHER A.; VANDEREYKEN, LOIC E.; WEISS, ERIC A.
To: APPLE INC.
Reel/Frame 044425/0624 →
Continuity (2)
Provisional Application 62514733 · Jun 2, 2017
Related Publication 20180349407A1 · Dec 6, 2018