IP Library › Granted Patent US 12,223,197
Granted Patent B2
US 12,223,197 · App. 17/870,992 · Granted Feb 11, 2025

Metadata-based data copying

Inventors: Nimrod Shani (Raanana, IL); Tal Zohar (Tel Aviv, IL); Vamsi K. Vankamamidi (Hopkinton, MA)
Assignee: Dell Products L.P.
G06F3/065G06F3/064G06F3/0607G06F3/0679
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 12,223,197
App. No.
17/870,992
Filed
Jul 22, 2022
Granted
Feb 11, 2025
Kind
B2
Art Unit
2136
USPC
711/154
Abstract

A technique for copying data from a source range to a destination range includes identifying a chunk of the source range. The chunk includes multiple logical blocks that map, through a series of source-mapping pages, to a set of virtual pages that point to physical data of the chunk. The technique further includes copying the series of source-mapping pages to form a corresponding series of destination-mapping pages pointed to by the destination range, so that a corresponding chunk of the destination range maps, via the series of destination-mapping pages, to the same set of virtual pages mapped to by the series of source mapping pages.

Claims (38)

1. A method of copying data, comprising:

receiving a request to copy a set of data from a source range to a destination range;

identifying a chunk of the source range, the chunk including multiple logical blocks that are mapped, through a series of source-mapping pages, to a set of virtual pages that point to physical data of the chunk;

copying the series of source-mapping pages to provide a corresponding series of destination-mapping pages pointed to by the destination range, the corresponding series of destination-mapping pages mapping multiple logical blocks in a corresponding chunk of the destination range to the set of virtual pages, the destination range thereby pointing to the physical data of the chunk of the source range and providing a copy thereof.

2. The method of claim 1 , wherein the source range and the destination range are both located within a logical address space of a storage system.

3. The method of claim 2 , wherein the series of source-mapping pages includes a source-leaf page that points to the set of virtual pages, the source-leaf page including pointers that map every one of the logical blocks of the chunk.

4. The method of claim 2 , wherein the method further comprises, prior to copying the series of source-mapping pages:

accessing the series of destination-mapping pages with a write-lock; and

allocating a new destination-mapping page for each of the series of destination-mapping pages.

5. The method of claim 4 , wherein at least one of the new destination-mapping pages does not replace any previously allocated destination-mapping page.

6. The method of claim 4 , wherein at least one of the new destination-mapping pages replaces an old destination mapping page that already exists.

7. The method of claim 6 , wherein a parent-child relationship exists between the old destination-mapping page and one of the series of source-mapping pages, and wherein allocating the new destination-mapping page causes the new destination mapping page to have no parent-child relationship with any of the series of source-mapping pages.

8. The method of claim 4 , further comprising accessing the series of source-mapping pages for reading using a try-lock, the try-lock configured to return a failure result if the try-lock cannot be obtained.

9. The method of claim 8 , wherein the method further comprises, responsive to the try-lock returning the failure result:

committing, in a transaction log, a transaction that involves at least one of the series of source-mapping pages; and

after committing the transaction, accessing the series of source-mapping pages using a read-lock.

10. The method of claim 9 , wherein copying the series of source-mapping pages to the corresponding series of destination-mapping pages includes copying mapping pointers from the series of source-mapping pages to the new destination-mapping pages.

11. A computerized apparatus, comprising control circuitry that includes a set of processors coupled to memory, the control circuitry constructed and arranged to:

receive a request to copy a set of data from a source range to a destination range;

identify a chunk of the source range, the chunk including multiple logical blocks that are mapped, through a series of source-mapping pages, to a set of virtual pages that point to physical data of the chunk;

copy the series of source-mapping pages to provide a corresponding series of destination-mapping pages pointed to by the destination range, the corresponding series of destination-mapping pages mapping multiple logical blocks in a corresponding chunk of the destination range to the set of virtual pages, the destination range thereby pointing to the physical data of the chunk of the source range and providing a copy thereof.

12. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a computerized apparatus, cause the computerized apparatus to perform a method of copying data, the method comprising:

receiving a request to copy a set of data from a source range to a destination range;

identifying a chunk of the source range, the chunk including multiple logical blocks that are mapped, through a series of source-mapping pages, to a set of virtual pages that point to physical data of the chunk;

copying the series of source-mapping pages to provide a corresponding series of destination-mapping pages pointed to by the destination range, the corresponding series of destination-mapping pages mapping multiple logical blocks in a corresponding chunk of the destination range to the set of virtual pages, the destination range thereby pointing to the physical data of the chunk of the source range and providing a copy thereof.

13. The computer program product of claim 12 , wherein the source range and the destination range are both located within a logical address space of a storage system.

14. The computer program product of claim 13 , wherein the series of source-mapping pages includes a source-leaf page that points to the set of virtual pages, the source-leaf page including pointers that map every one of the logical blocks of the chunk.

15. The computer program product of claim 13 , wherein the method further comprises, prior to copying the series of source-mapping pages:

accessing the series of destination-mapping pages with a write-lock; and

allocating a new destination-mapping page for each of the series of destination-mapping pages.

16. The computer program product of claim 15 , wherein at least one of the new destination-mapping pages does not replace any previously allocated destination-mapping page.

17. The computer program product of claim 15 , wherein at least one of the new destination-mapping pages replaces an old destination mapping page that already exists.

18. The computer program product of claim 17 , wherein a parent-child relationship exists between the old destination-mapping page and one of the series of source-mapping pages, and wherein allocating the new destination-mapping page causes the new destination mapping page to have no parent-child relationship with any of the series of source-mapping pages.

19. The computer program product of claim 15 , further comprising accessing the series of source-mapping pages for reading using a try-lock, the try-lock configured to return a failure result if the try-lock cannot be obtained.

20. The computer program product of claim 19 , wherein the method further comprises, responsive to the try-lock returning the failure result:

committing, in a transaction log, a transaction that involves at least one of the series of source-mapping pages; and

after committing the transaction, accessing the series of source-mapping pages using a read-lock.

21. The method of claim 1 , wherein copying the series of source-mapping pages to the corresponding series of destination-mapping pages includes adjusting pointers of at least one of the destination-mapping pages for offsets so that relative pointing between the series of destination-mapping pages is analogous to relative pointing between the series of source-mapping pages.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2022
From: SHANI, NIMROD; ZOHAR, TAL; VANKAMAMIDI, VAMSI K.
To: DELL PRODUCTS L.P.
Reel/Frame 061398/0210 →
Continuity (1)
Related Publication 20240028240A1 · Jan 25, 2024
References Cited (7)
US 9696919B1 · Vankamamidi et al. · 2017 [cited by applicant]
US 9916112B1 · Taylor · 2018 [cited by examiner]
US 10146454B1 · Koli et al. · 2018 [cited by applicant]
US 10318178B1 · Feng et al. · 2019 [cited by applicant]
US 11366594B2 · Ruff et al. · 2022 [cited by applicant]
US 20100211616A1 · Khandelwal · 2010 [cited by examiner]
US 20160070652A1 · Sundararaman · 2016 [cited by examiner]