IP Library Granted Patent US 9,141,290
Granted Patent B2
US 9,141,290 · App. 13/470,317 · Granted Sep 22, 2015

Snapshot mechanism

Inventors: Renen Hallak (Tel-Aviv, IL); Kirill Shoikhet (RaAana, IL); Irit Yadin-Lempel (Caesarea, IL); Erez Webman (Petach-Tikva, IL); Shahar Frank (Ramat-HaSharon, IL)
Assignee: EMC Corporation
G06F3/061G06F3/065G06F3/067G06F3/0665
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,141,290
App. No.
13/470,317
Granted
Sep 22, 2015
Kind
B2
Abstract

A memory management system for a thinly provisioned memory volume in which a relatively larger virtual address range of virtual address blocks is mapped to a relatively smaller physical memory comprising physical memory blocks via a mapping table containing entries only for addresses of the physical memory blocks containing data. The memory management system comprises a snapshot provision unit to take a given snapshot of the memory volume at a given time, the snapshot comprising a mapping table and memory values of the volume, the mapping table and memory values comprising entries only for addresses of the physical memory containing data. The snapshot is managed on the same thin provisioning basis as the volume itself, and the system is particularly suitable for RAM type memory disks.

Claims (42)

1. A memory management method comprising

taking a given snapshot of a memory volume at a given time,

providing the snapshot with a mapping table and memory values of the volume, the mapping table and memory values comprising entries for addresses of the physical memory containing data, and wherein said values differ from data in an ancestor, wherein the given snapshot is enabled to be a part of a hierarchy of snapshots;

wherein said given snapshot is part of a hierarchy of snapshots taken at succeeding times, the method comprising providing said entries to said given snapshot for addresses of the physical memory to which data was entered subsequent to taking of a most recent previous snapshot in the hierarchy, and providing, to said given snapshot, pointers to previous snapshots in the hierarchy for data entered prior to taking of a most recent previous snapshot;

navigating the hierarchy of snapshots using a first tree, a second tree, and a third tree; wherein the first tree indicates a most recent ancestor snapshot of said given snapshot, wherein the second tree indicates which level of the hierarchy of snapshots contains data, wherein the third tree is enabled to provide a depth-first search ordering of snapshots within the hierarchy of snapshots; and

recognizing a long strand in the hierarchy of snapshots,

aggregating the long strand in the hierarchy of snapshots to create an aggregated snapshot tree, wherein each snapshot is enabled to be a group of snapshots.

2. The method of claim 1 , wherein said memory volume is a thinly provisioned memory volume in which a relatively larger virtual address range of virtual address blocks is mapped to a relatively smaller physical memory comprising physical memory blocks via a mapping table containing entries only for addresses of the physical memory blocks containing data.

3. The memory management method of claim 1 , comprising creating a read-only version of said thinly provisioned memory volume to provide a fixed base for said hierarchy.

4. The memory management method of claim 3 , comprising providing a first tree structure of said hierarchy to indicate for each written memory block a most recent ancestor snapshot of a queried snapshot containing a respective entry.

5. The memory management method of claim 4 , comprising providing a read function which traverses said first tree structure to read a value of a given block, and a write function which writes a block value to a most recent snapshot in said hierarchy.

6. The memory method of claim 4 , comprising providing a second tree structure, said second tree structure indicating, for each written memory block, which level of said hierarchy contains a value for said block.

7. The memory management method of claim 6 , comprising providing a read function to traverse said second memory structure to find a level of said hierarchy containing a value for a requested block and then to use said first memory structure to determine whether said level containing said value is an ancestor in said hierarchy of a level from which said block was requested.

8. The memory management method of claim 4 , comprising providing a delete function for deleting snapshots, wherein for a snapshot to be deleted which has a single sibling, values of sibling and parent nodes merged into a single node.

9. The memory management method of claim 1 , wherein said physical memory comprises random access memory disks.

10. The memory management method of claim 1 , wherein said blocks are of a granularity of one member of the group consisting of less than 100k, less than 10k and 4k.

11. The memory management method of claim 1 , comprising aligning mapping metadata of a respective snapshot to a page of memory.

12. The memory management method of claim 6 , comprising providing a third tree structure, said third tree structure returning a Depth-First Search ordering of respective snapshots of said hierarchy, such that leaves of each snapshot are ordered consecutively and that if a snapshot A is an ancestor of a snapshot B then the ordering of leaves of A completely overlaps that of B.

13. The memory management method of claim 12 , comprising providing a read function, said read function configured to use said third tree structure to obtain a list of snapshots having a value at a requested memory address, and to find a closest ancestor in said list of a requesting snapshot by traversing the snapshots of said list and returning a respective snapshot of said list which is an ancestor of the requesting snapshot and has a minimum number of leaves.

14. The memory management method of claim 1 , wherein said snapshot provision unit is configured to provide an indirection layer or a look-aside table to provide data deduplication.

15. A system comprising

a data storage system including a storage array;

a memory volume on the storage array; and

computer-executable program logic encoded in memory of one or more computers in communication with the data storage system to enable management of a snapshot provision unit, wherein the computer-executable program logic is configured for the execution of:

taking a given snapshot of the memory volume at a given time using the snapshot provision unit, the snapshot comprising a mapping table and memory values of the volume, the mapping table and memory values comprising entries for addresses of the physical memory containing data, which values entered differ from an ancestor of said snapshot;

wherein the given snapshot is enabled to be a part of a hierarchy of snapshots;

wherein said given snapshot is part of a hierarchy of snapshots taken at succeeding times, and wherein said snapshot provision unit is configured to provide said entries to said given snapshot for addresses of the physical memory to which data was entered subsequent to taking of a most recent previous snapshot in the hierarchy, and to provide to said given snapshot pointers to previous snapshots in the hierarchy for data entered prior to taking of a most recent previous snapshot;

wherein the provision unit navigates the hierarchy of snapshots using a first tree, a second tree, and a third tree; wherein the first tree indicates a most recent ancestor snapshot of said given snapshot, wherein the second tree indicates which level of the hierarchy of snapshots contains data, wherein the third tree is enabled to provide a depth-first search ordering of snapshots within the hierarchy of snapshots; and

wherein the provision unit is enabled to recognize a long strand in the hierarchy of snapshots and the provision unit is enabled to aggregate the long strand in the hierarchy of snapshots to create an aggregated snapshot tree, wherein each snapshot is enabled to be a group of snapshots.

16. The system of claim 15 , wherein said memory volume is a thinly provisioned memory volume in which a relatively larger virtual address range of virtual address blocks is mapped to a relatively smaller physical memory comprising physical memory blocks via a mapping table containing entries only for addresses of the physical memory blocks containing data.

17. The system of claim 15 , wherein the computer-executable program logic is further configured for the execution of creating a read-only version of thinly provisioned memory volume to provide a fixed base for said hierarchy.

18. The system of claim 17 , wherein the computer-executable program logic is further configured for the execution of providing a first tree structure of said hierarchy to indicate for each written memory block a most recent ancestor snapshot of a queried snapshot containing a respective entry.

19. The system of claim 18 , wherein said snapshot provision unit comprises a read function which traverses said first tree structure to read a value of a given block, and a write function which writes a block value to a most recent snapshot in said hierarchy.

20. The system of claim 18 , wherein the computer-executable program logic is further configured for the execution of providing a second tree structure, said second tree structure indicating, for each written memory block, which level of said hierarchy contains a value for said block.

21. The system of claim 20 , wherein said snapshot provision unit comprises a read function configured to traverse said second memory structure to find a level of said hierarchy containing a value for a requested block and then to use said first memory structure to determine whether said level containing said value is an ancestor in said hierarchy of a level from which said block was requested.

22. The system of claim 18 , wherein said snapshot provision unit further comprises a delete function for deleting snapshots, wherein for a snapshot to be deleted which has a single sibling, values of sibling and parent nodes are merged into a single node.

23. The system of claim 15 , wherein said physical memory comprises random access memory disks.

24. The system of claim 15 , wherein said blocks are of a granularity of one member of the group consisting of less than 100k, less than 10k and 4k.

25. The system of claim 15 , wherein the computer-executable program logic is further configured for the execution of aligning mapping data of a respective snapshot to a page of memory.

26. The system of claim 20 , wherein the computer-executable program logic is further configured for the execution of providing a third tree structure, said third tree structure returning a Depth-First Search ordering of respective snapshots of said hierarchy, such that leaves of each snapshot are ordered consecutively and that if a snapshot A is an ancestor of a snapshot B then the ordering of leaves of A completely overlaps that of B.

27. The system of claim 26 , wherein said snapshot provisioning unit comprises a read function, said read function configured to use said third tree structure to obtain a list of snapshots having a value at a requested memory address, and to find a closest ancestor in said list of a requesting snapshot by traversing the snapshots of said list and returning a respective snapshot of said list which is an ancestor of the requesting snapshot and has a minimum number of leaves.

28. The memory management system of claim 15 , wherein the computer-executable program logic is further configured for the execution of providing an indirection layer or a look-aside table to provide data deduplication.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2013
From: XTREMIO LIMITED
To: EMC CORPORATION
Reel/Frame 029763/0054 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2012
From: HALLAK, RENEN; SHOIKHET, KIRILL; YADIN-LEMPEL, IRIT; WEBMAN, EREZ; FRANK, SHAHAR
To: XTREMIO LTD.
Reel/Frame 028215/0335 →
Continuity (1)
Related Publication 20130305002A1 · Nov 14, 2013