Efficient incremental backup and restoration of file system hierarchies with cloud object storage
US-2020004772-A1 · Jan 2, 2020 · US
US12455790B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12455790-B2 |
| Application number | US-202418624619-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 2, 2024 |
| Priority date | Jan 21, 2020 |
| Publication date | Oct 28, 2025 |
| Grant date | Oct 28, 2025 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method for a storage system to process input and output operations. The method includes receiving writes over time to an address at a base virtual volume, storing each of the writes in a physical storage at a new location that is without existing data, tagging each stored write with a different generation number to distinguish between different versions of data written to the address at the base virtual volume, receiving a read of the address at the base virtual volume, and, in response to the read of the address at the base virtual volume, returning one of the stored writes that is tagged with a newer generation number than a remainder of the stored writes.
Opening claim text (preview).
What is claimed is: 1. A method for operating a storage system, the method comprising: receiving a series of write requests from one or more storage clients to a base virtual volume, the write requests specifying respective data to be written to respective offsets in the base virtual volume, at least two of the write requests requesting writing to a same first offset in the base virtual volume, the two write requests corresponding to two versions of a same respective data; for individual write requests of the series of write requests, performing a write process comprising: assigning to the write request a generation number from a series of generation numbers, the generation number uniquely identifying the write request; storing the data from the write request in a physical storage; and adding an entry to a database, the entry identifying the offset in the base virtual volume, the generation number of the write request, and a location in which the data from the write request is stored. 2. The method of claim 1 , further comprising: receiving a first read request requesting the data at the first offset in the base virtual volume; and in response to the first read request, performing a read process comprising: identifying a set of entries in the database including the entries that identify the first offset in the base virtual volume; and returning the data stored at the location identified by a newest entry of the set of entries, the newest entry determined by having a generation number that is newer than the generation numbers of a remainder of the set of entries. 3. The method of claim 2 , further comprising performing a garbage collection process that reclaims space in the physical storage, the garbage collection process comprising: invalidating the data at the locations identified by the remainder of the entries in the set, thereby reclaiming space in the physical storage; and deleting from the database the remainder of the entries in the set. 4. The method of claim 1 , further comprising: capturing a snapshot virtual volume of the base virtual volume by creating a first metadata structure that identifies a creation generation number of the snapshot virtual volume without copying data in the physical storage. 5. The method of claim 4 , further comprising: receiving a second read request requesting data from the first offset in the snapshot virtual volume; and in response to the second read request, performing a second read process comprising identifying a second set of entries in the database including entries that identify the first offset in the base virtual volume, and returning the data stored in the location identified by the entry that is in the second set that, based on the creation generation number of the snapshot and the generation numbers of the entries in the second set, is the newest of the entries in the set that are older than of the snapshot virtual volume. 6. The method of claim 1 , further comprising performing a garbage collection process that reclaims space in the physical storage, the garbage collection process comprising, for a range between a creation generation number of the base virtual volume and the creation generation number of a static view, deleting all but a stored write having the most recent generation number in the range. 7. The method of claim 1 , further comprising: capturing a first snapshot virtual volume of the base virtual volume by creating a first metadata structure that identifies a first creation generation number of a first static view; capturing a second snapshot virtual volume of the base virtual volume by creating a second metadata structure that identifies a second creation generation number of a second static view; and reclaiming space in the physical storage by: identifying a first set of entries including all entries in the database that identify offsets in the base virtual volume and generation numbers between a creation generation number of the base virtual volume and the first creation generation number; and for individual offsets of the offsets identified by entries in the first set, identifying which of the entries in the first set and identifying the offset has a most recent generation number and invalidating the data at the locations identified by a remainder of the entries that are in the first set and identify the offset, thereby reclaiming space in the physical storage; and identifying a second set of entries including all entries in the database that identify offsets in the base virtual volume and generation numbers between the first creation generation number and the second creation generation number; and for individual offsets of the offsets identified by entries in the second set, identifying which of the entries in the second set and identifying the offset has a most recent generation number and invalidating the data at the locations identified by a remainder of the entries that are in the second set and identify the offset, thereby reclaiming space in the physical storage. 8. The method of claim 1 , further comprising: receiving a command to copy data from a source offset range at the base virtual volume to a target offset range at a second virtual volume; creating a metadata structure that identifies the source offset range, the target offset range, a creation generation number of the base virtual volume, and a creation generation number of the metadata structure; receiving a second read request requesting the data at a second offset that is within the target offset range at the second virtual volume; and in response to the second read request, performing a read process comprising identifying a second set of entries in the database that includes the entries that identify the second offset in the second virtual volume and that includes entries that identify an offset in the source offset range, and returning the data stored in the location identified by a newest one of the entries in the second set. 9. The method of claim 8 , further comprising reclaiming space in the storage by: identifying a third set of entries that identify generation numbers in range between the creation generation number of the base virtual volume the creation generation number of the command; and for each of the offsets identified by entries in the third set, identifying which of the entries in the third set and identifying the offset has a most recent generation number and invalidating the data at the locations identified by a remainder of the entries that are in the third set and identify the offset, thereby reclaiming space in the physical storage. 10. The method of claim 1 , further comprising performing an unmap command by: receiving a command to unmap data from an offset range at the base virtual volume; creating a first query range that identifies the offset range, a creation generation number of the base virtual volume, and a creation generation number of the first query range; attaching the first query range to the base virtual volume; creating a second query range that identifies (1) the base virtual volume, (2) a range between the creation generation number of the first query range and a current generation number, and (3) a zero view for returning zero data; and attaching the second query range to the virtual volume. 11. The method of claim 10 , further comprising: receiving a read of an offset in the offset range at the base virtual volume; in response to receiving the read, using the first query range to search the base virtual volume for a stored write to the offset and having a generation number in the range; when using the first query range to search the base virtual volume succeeds, returning
Monitoring storage devices or systems · CPC title
Using snapshots, i.e. a logical point-in-time copy of the data · CPC title
Disk arrays, e.g. RAID, JBOD · CPC title
at area level, e.g. provisioning of virtual or logical volumes · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.