IP Library Granted Patent US 10,552,373
Granted Patent B2
US 10,552,373 · App. 15/694,604 · Granted Feb 4, 2020

Space accounting for storage system snapshots

Inventors: Edward Brow (Seattle, WA); Nicholas Wilson (Seattle, WA); Robert Gebert (Seattle, WA); Thomas Scott Urban (Seattle, WA); Michael Adam Krasnow (Seattle, WA); Steven Haber (Seattle, WA)
Assignee: Qumulo, Inc.
G06F16/128G06F11/1469G06F16/113G06F16/125G06F16/13G06F16/148G06F16/162G06F11/1451G06F2201/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,552,373
App. No.
15/694,604
Filed
Sep 1, 2017
Granted
Feb 4, 2020
Kind
B2
Art Unit
2166
USPC
707/649
Abstract

A facility for snapshot space accounting for a storage system, such as a filesystem is disclosed. The facility enables users to quickly and easily determine the amount of storage space that would be released or recovered if a snapshot were to be purged. The facility may work in conjunction with, or as part of, a snapshot service. The facility maintains an expiration data structure and a count data structure and uses these data structures in implementing the disclosed snapshot space accounting techniques. The expiration data structure represents the life cycle of each snapshot element maintained by the facility while the count data structure represents, for pairs of snapshots, the size of the information stored in the snapshot data that expired and that spans the corresponding pair of snapshots.

Claims (72)

1. A method, performed by a computing system having one or more processors, for space accounting in a storage system, the method comprising:

determining a current epoch value for a plurality of blocks of data and a previous birthdate for each block of data in response to receiving a write request;

employing the received write request to provide an expiration entry to an expiration data structure for two snapshot values of each data block, wherein each expiration entry includes an identifier, an associated previous birthdate, and the current epoch value;

providing a count data structure, for each block of data, that includes an entry for a first snapshot value corresponding to the previous birthdate and a second snapshot value corresponding to the current epoch value; and

increasing a size of the entry based on a size of an associated block of data.

2. The method of claim 1 , further comprising:

in response to receiving a request to determine an amount of storage space to be recovered when an identified snapshot is purged from the storage system, determining a range of the identified snapshot;

employing the range to determine a chronologically ordered pair of snapshots that includes the identified snapshot; and

employing a size of the pair of snapshots to provide the amount of storage space recoverable by purging the identified snapshot.

3. The method of claim 1 , further comprising:

receiving a request to determine a size of a chronologically ordered pair of snapshots; and

generating the size based on a predetermined block size and a count value associated with each of the ordered pair of snapshots.

4. The method of claim 1 , further comprising:

a graphical user interface that includes a plurality of visual elements associated with a plurality of snapshots for the plurality of data blocks, including:

a first visual element having a width that represents an amount storage space to be recovered when a selected snapshot is purged;

a second visual element having a height that represents a range for the selected snapshot; and

wherein one or more of color, patterns, or shading are employed to provide additional information for one or more of the plurality of snapshots and the plurality of data blocks.

5. The method of claim 1 , further comprising:

providing a separate epoch counter for each different entity using the storage space system, wherein a different entity includes one of a user or a snapshot policy.

6. The method of claim 1 , further comprising:

identifying one or more deleted snapshots that are chronologically adjacent to a selected snapshot; and

employing the one or more identified deleted snapshot to select a range for the selected snapshot.

7. The method of claim 1 , further comprising:

storing an indication of the current value for the epoch counter in each of the plurality of blocks of data.

8. A computer-readable non-transitory media that stores instructions for space accounting in a storage system, wherein execution of the instructions by one or more processors performs actions, comprising:

determining a current epoch value for a plurality of blocks of data and a previous birthdate for each block of data in response to receiving a write request;

employing the received write request to provide an expiration entry to an expiration data structure for two snapshot values of each data block, wherein each expiration entry includes an identifier, an associated previous birthdate, and the current epoch value;

providing a count data structure, for each block of data, that includes an entry for a first snapshot value corresponding to the previous birthdate and a second snapshot value corresponding to the current epoch value; and

increasing a size of the entry based on a size of an associated block of data.

9. The media of claim 8 , further comprising:

in response to receiving a request to determine an amount of storage space to be recovered when an identified snapshot is purged from the storage system, determining a range of the identified snapshot;

employing the range to determine a chronologically ordered pair of snapshots that includes the identified snapshot; and

employing a size of the pair of snapshots to provide the amount of storage space recoverable by purging the identified snapshot.

10. The media of claim 8 , further comprising:

receiving a request to determine a size of a chronologically ordered pair of snapshots; and

generating the size based on a predetermined block size and a count value associated with each of the ordered pair of snapshots.

11. The media of claim 8 , further comprising:

a graphical user interface that includes a plurality of visual elements associated with a plurality of snapshots for the plurality of data blocks, including:

a first visual element having a width that represents an amount storage space to be recovered when a selected snapshot is purged;

a second visual element having a height that represents a range for the selected snapshot; and

wherein one or more of color, patterns, or shading are employed to provide additional information for one or more of the plurality of snapshots and the plurality of data blocks.

12. The media of claim 8 , further comprising:

providing a separate epoch counter for each different entity using the storage space system, wherein a different entity includes one of a user or a snapshot policy.

13. The media of claim 8 , further comprising:

identifying one or more deleted snapshots that are chronologically adjacent to a selected snapshot; and

employing the one or more identified deleted snapshot to select a range for the selected snapshot.

14. The media of claim 8 , further comprising:

storing an indication of the current value for the epoch counter in each of the plurality of blocks of data.

15. An apparatus that provide for space accounting in a storage system, comprising:

a memory that stores instructions;

one or more processors that execute the instructions to perform actions, including:

determining a current epoch value for a plurality of blocks of data and a previous birthdate for each block of data in response to receiving a write request;

employing the received write request to provide an expiration entry to an expiration data structure for two snapshot values of each data block, wherein each expiration entry includes an identifier, an associated previous birthdate, and the current epoch value;

providing a count data structure, for each block of data, that includes an entry for a first snapshot value corresponding to the previous birthdate and a second snapshot value corresponding to the current epoch value; and

increasing a size of the entry based on a size of an associated block of data.

16. The apparatus of claim 15 , further comprising:

in response to receiving a request to determine an amount of storage space to be recovered when an identified snapshot is purged from the storage system, determining a range of the identified snapshot;

employing the range to determine a chronologically ordered pair of snapshots that includes the identified snapshot; and

employing a size of the pair of snapshots to provide the amount of storage space recoverable by purging the identified snapshot.

17. The apparatus of claim 15 , further comprising:

receiving a request to determine a size of a chronologically ordered pair of snapshots; and

generating the size based on a predetermined block size and a count value associated with each of the ordered pair of snapshots.

18. The apparatus of claim 15 , further comprising:

a graphical user interface that includes a plurality of visual elements associated with a plurality of snapshots for the plurality of data blocks, including:

a first visual element having a width that represents an amount storage space to be recovered when a selected snapshot is purged;

a second visual element having a height that represents a range for the selected snapshot; and

wherein one or more of color, patterns, or shading are employed to provide additional information for one or more of the plurality of snapshots and the plurality of data blocks.

19. The apparatus of claim 15 , further comprising:

providing a separate epoch counter for each different entity using the storage space system, wherein a different entity includes one of a user or a snapshot policy.

20. The apparatus of claim 15 , further comprising:

identifying one or more deleted snapshots that are chronologically adjacent to a selected snapshot; and

employing the one or more identified deleted snapshot to select a range for the selected snapshot.

Assignments (2)
SECURITY INTEREST Recorded Jun 24, 2022
From: QUMULO, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 060439/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2017
From: BROW, EDWARD; WILSON, NICHOLAS; GEBERT, ROBERT; URBAN, THOMAS SCOTT; KRASNOW, MICHAEL ADAM; HABER, STEVEN
To: QUMULO, INC.
Reel/Frame 043475/0159 →
Continuity (3)
Continuation 15473051 · Mar 29, 2017
Provisional Application 62457754 · Feb 10, 2017
Related Publication 20180232386A1 · Aug 16, 2018
Cited By (9)
US 12,222,903 US 12,292,853 US 12,346,290 US 12,443,559 US 12,443,568 US 12,481,625 US 12,585,563 US 12,619,582 US 12,670,081