MEMORY RECLAMATION BASED ON EXCLUSIVE MEMORY USAGE BY SNAPSHOT GROUPS
An apparatus may include one or more processors and a non-transitory, computer-readable medium including instructions which, when executed by the one or more processors, cause the one or more processors to display a user interface including an indication of a snapshot group comprising two or more snapshots and an amount of exclusive storage space used by the snapshot group, receive, via the user interface, a user selection of the snapshot group, and delete the selected snapshot group to reclaim the amount of exclusive storage space used by the snapshot group.
1 . An apparatus, comprising:
one or more processors; and
a non-transitory, computer-readable medium including instructions which, when executed by the one or more processors, cause the one or more processors to:
display a user interface including an indication of a snapshot group comprising two or more snapshots and an amount of exclusive storage space used by the snapshot group;
receive, via the user interface, a user selection of the snapshot group; and
delete the selected snapshot group to reclaim the amount of exclusive storage space used by the snapshot group,
wherein the user interface includes a menu indicating a plurality of options for modifying a retention schedule for the snapshot group as well as a corresponding amount of storage space that can be reclaimed for each option of the plurality of options.
2 . The apparatus of claim 1 , wherein the instructions cause the one or more processors to:
receive a request to display the user interface; and
display the user interface in response to the request in real time.
3 . The apparatus of claim 1 , wherein the amount of exclusive storage space comprises a contiguous extent of computer storage.
4 . The apparatus of claim 1 , wherein the instructions cause the one or more processors to retrieve the amount of exclusive storage space used by the snapshot group for display from a key-value database, wherein keys of the key-value database include snapshot groups and values of the key-value database include amounts of exclusive memory usage for the snapshot groups.
5 . The apparatus of claim 4 , wherein the snapshot groups of the key-value database include a plurality of combinations of snapshots stored in a virtual computing environment.
6 . The apparatus of claim 4 , wherein the key-value database is generated by:
identifying a plurality of virtual memory identifiers in metadata of the snapshot groups;
identifying physical memory corresponding to the plurality of virtual memory identifiers; and
populating the key-value database with amounts of the physical memory corresponding to the plurality of virtual memory identifiers.
7 . The apparatus of claim 6 , wherein the plurality of virtual memory identifiers comprise a plurality of vdisks and a plurality of vblocks, wherein the instructions cause the one or more processors to:
apply a first algorithm to a first mapping of the plurality of vdisks and the plurality of vblocks to contiguous extents in physical memory to reduce a number of vblock identifiers to generate a second mapping of the plurality of vblocks to the extents;
apply a second algorithm to the second mapping to reduce a number of extent identifiers to generate a third mapping of the extents to snapshot groups; and
generate, based on the third mapping, a fourth mapping of the snapshot groups to the amounts of exclusive memory usage to populate the key-value database.
8 . An apparatus, comprising:
one or more processors; and
a non-transitory, computer-readable medium including instructions which, when executed by the one or more processors, cause the one or more processors to:
display a user interface including an indication of a protection domain and a retention schedule for the protection domain, wherein the retention schedule indicates retention of snapshot groups for the protection domain;
receive user input corresponding to a change in the retention schedule for the protection domain; and
display, via the user interface, an indication of a memory impact corresponding to the change in the retention schedule for the protection domain due to deletion of one or more snapshot groups according to the change in the retention schedule, wherein the user interface includes a menu indicating a plurality of options for modifying the retention schedule as well as a corresponding amount of storage space that can be reclaimed for each option of the plurality of options.
9 . The apparatus of claim 8 , wherein the instructions cause the one or more processors to display, via the user interface, the indication of the memory impact in response to the user input in real time.
10 . The apparatus of claim 8 , wherein the snapshot groups for the protection domain each correspond to a contiguous extent in physical memory.
11 . The apparatus of claim 8 , wherein the instructions cause the one or more processors to determine the memory impact corresponding to the change in the retention schedule for the protection domain using a key-value database, wherein keys of the key-value database include the snapshot groups for the protection domain and values of the key-value database include amounts of exclusive memory usage for the snapshot groups.
12 . The apparatus of claim 11 , wherein the key-value database is generated by:
identifying a plurality of virtual memory identifiers in metadata of the snapshot groups;
identifying physical memory corresponding to the plurality of virtual memory identifiers; and
populating the key-value database with amounts of the physical memory corresponding to the plurality of virtual memory identifiers.
13 . The apparatus of claim 12 , wherein the plurality of virtual memory identifiers comprise a plurality of vdisks and a plurality of vblocks, wherein the instructions cause the one or more processors to:
apply a first algorithm to a first mapping of the plurality of vdisks and the plurality of vblocks to contiguous extents in physical memory to reduce a number of vblock identifiers to generate a second mapping of the plurality of vblocks to the extents;
apply a second algorithm to the second mapping to reduce a number of extent identifiers to generate a third mapping of the extents to snapshot groups; and
generate, based on the third mapping, a fourth mapping of the snapshot groups to the amounts of exclusive memory usage to populate the key-value database.
14 . The apparatus of claim 11 , wherein the snapshot groups of the key-value database include a plurality of combinations of snapshots stored in the protection domain, including combinations of snapshots corresponding to different retention schedules.
15 . A method comprising:
receiving a query of an amount of memory used by a set of snapshots, wherein a first snapshot of the set of snapshots references a first portion of virtual memory corresponding to a portion of physical memory, and wherein a second snapshot of the set of snapshots references a second portion of virtual memory corresponding to the portion of physical memory;
determining, using a mapping of sets of snapshots to amounts of exclusive memory usage, an amount of physical memory referred to exclusively by the sets of snapshots, the amount of physical memory including the portion of physical memory; and
generating, based on the determined amount of physical memory, a response to the query, wherein the response to the query is displayed via a user interface that includes a menu indicating a plurality of options for modifying a retention schedule corresponding to the set of snapshots as well as a corresponding amount of storage space that can be reclaimed for each option of the plurality of options.
16 . The method of claim 15 , wherein the response to the query indicates that the determined amount of physical memory can be reclaimed upon deleting the set of snapshots.
17 . The method of claim 15 , wherein the mapping comprises a key-value database, wherein keys of the key-value database include the sets of snapshots and values of the key-value database include the amounts of exclusive memory usage.
18 . The method of claim 15 , wherein the query includes a modification of a retention schedule corresponding to the set of snapshots, the method further comprising identifying the set of snapshots based on the modification of the retention schedule.
19 . The method of claim 15 , further comprising generating the mapping of the sets of snapshots to the amounts of exclusive memory usage by:
identifying a plurality of virtual memory identifiers in metadata of the set of snapshots;
identifying physical memory corresponding to the plurality of virtual memory identifiers; and
populating the mapping of the sets of snapshots to the amounts of exclusive memory with an amount of the physical memory corresponding to the plurality of virtual memory identifiers.
20 . The method of claim 19 , wherein the plurality of virtual memory identifiers comprise a plurality of vdisks and a plurality of vblocks, the method further comprising:
applying a first algorithm to a first mapping of the plurality of vdisks and the plurality of vblocks to contiguous extents in physical memory to reduce a number of vblock identifiers to generate a second mapping of the plurality of vblocks to the extents;
applying a second algorithm to the second mapping to reduce a number of extent identifiers to generate a third mapping of the extents to snapshot groups; and
generating, based on the third mapping, a fourth mapping of the snapshot groups to the amounts of exclusive memory usage to populate the key-value database.
21 . The apparatus of claim 1 , wherein the menu is displayed in real time in response to a user selection of a retention schedule element.
22 . The apparatus of claim 8 , wherein the menu is displayed in real time in response to a user selection of a retention schedule element.
23 . The method of claim 15 , wherein the user interface is displayed in real time in response to a user selection of a retention schedule element.