Targetless snapshots

US9965216B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9965216-B1
Application numberUS-201414498093-A
CountryUS
Kind codeB1
Filing dateSep 26, 2014
Priority dateSep 26, 2014
Publication dateMay 8, 2018
Grant dateMay 8, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Providing snapshots for a logical device includes maintaining a global sequence number for the logical device, providing a snapshot table having a plurality of entries, where each of the entries corresponds to a targetless snapshot and includes a sequence number associated with a particular one of the targetless snapshots, the sequence number corresponding to the global sequence number at a time each of the snapshots is created, and, if a sequence number associated with a specific portion of the logical device is less than the global sequence number, then prior to moving new data to a specific portion of the logical device, copying old data from the specific portion to a location in a pool device, setting a pointer in a replication data pointer table to point to the location in the pool device and setting the sequence number associated with the specific portion to equal the global sequence number.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of providing snapshots for a logical device including a plurality of portions, comprising: maintaining a global sequence number for the logical device; providing a snapshot table having a plurality of entries, wherein each of the entries corresponds to a snapshot and includes a sequence number associated with a particular one of the snapshots, the sequence number for each entry corresponding to the global sequence number at a time the particular one of the snapshots is created; providing a replication pointer table having a plurality of entries corresponding to portions of the logical device, one or more of the plurality of entries corresponding to a specific portion of the logical device; in response to a request to perform a write operation to write new data to the specific portion of the logical device, determining whether a sequence number associated with the specific portion of the logical device is less than the global sequence number; if the sequence number associated with the specific portion of the logical device is less than the global sequence number, then prior to performing the write operation, copying old data from the specific portion to a location in a pool device, creating a new entry in the replication pointer table for the specific portion, setting a pointer in the new entry to point to the location in the pool device and setting the sequence number associated with the specific portion to equal the global sequence number, wherein the replication data pointer table is separate from the snapshot table, which is not modified in connection with the write operation, and wherein, for each portion of the plurality of portions, a new entry is created in the replication data table for the portion only when, in response to a request to perform a write operation to the portion, it is determined that a sequence number associated with the portion is less than the global sequence number; maintaining data in a volatile memory portion that corresponds to data previously directed to be written to a corresponding portion of the logical device; associating a sequence number with the volatile memory portion using a table that associates sequence numbers with volatile memory portions; and in response to a sequence number associated with the volatile memory portion being different than the global sequence number, copying data from the corresponding portion of the logical device to the pool device prior to writing new data to the volatile memory portion. 2. A method, according to claim 1 , wherein reading data from a snapshot associated with a particular sequence number includes determining that a sequence number corresponding to data being read is less than or equal to the particular sequence number. 3. A method, according to claim 1 , wherein the logical device is a thin logical device. 4. A method, according to claim 1 , wherein entries in the replication data pointer table each include a pointer to specific data in the data pool and include a sequence number associated with the specific data. 5. A method, according to claim 4 , wherein the entries in the replication data pointer table are accessed according to each portion of the logical device. 6. A method, according to claim 1 , wherein the sequence number associated with the volatile memory portion corresponds to a value of the global sequence number at a time when the data is written. 7. A method, according to claim 1 , further comprising: linking a new logical device to a first particular snapshot by creating a table; and setting entries in the table to point to one of: a portion of the logical device and a location of the pool data. 8. A method, according to claim 7 , wherein, prior to setting entries in the table, each of the entries is provided with an initial value indicating that the corresponding entry is undefined. 9. A method, according to claim 7 , further comprising: relinking the new logical device to a second particular snapshot by modifying entries in the table that point to a portion of the logical device to which a write operation is performed between a time of the first particular snapshot and a time of the second particular snapshot. 10. A non-transitory computer-readable medium containing software that provides snapshots for a logical device, the software comprising: executable code that maintains a global sequence number for the logical device; executable code that provides a snapshot table having a plurality of entries, wherein each of the entries corresponds to a snapshot and includes a sequence number associated with a particular one of the snapshots, the sequence number for each entry corresponding to the global sequence number at a time the particular one of the snapshots is created; executable code that provides a replication pointer table having a plurality of entries corresponding to portions of the logical device, one or more of the plurality of entries corresponding to a specific portion of the logical device; executable code that, in response to a request to perform a write operation to write new data to the specific portion of the logical device, determines whether a sequence number associated with a specific portion of the logical device is less than the global sequence number executable code that, prior to performing the write operation, copies old data from the specific portion to a location in a pool device, creates a new entry in the replication pointer table for the specific portion sets a pointer in the new entry to point to the location in the pool device and sets the sequence number associated with the specific portion to equal the global sequence number in response to the sequence number associated with the specific portion of the logical device being less than the global sequence number, wherein the replication data pointer table is separate from the snapshot table, which is not modified in connection with the write operation, and wherein, for each portion of the plurality of portions, a new entry is created in the replication data table for the portion only when, in response to a request to perform a write operation to the portion, it is determined that a sequence number associated with the portion is less than the global sequence number; executable code that maintains data in a volatile memory portion that corresponds to data previously directed to be written to a corresponding portion of the logical device; executable code that associates a sequence number with the volatile memory portion using a table that associates sequence numbers with volatile memory portions; and executable code that copies data from the corresponding portion of the logical device to the pool device prior to writing new data to the volatile memory portion in response to a sequence number associated with the volatile memory portion being different than the global sequence number. 11. A non-transitory computer-readable medium, according to claim 10 , wherein executable code that reads data from a snapshot associated with a particular sequence number determines that a sequence number corresponding to data being read is less than or equal to the particular sequence number. 12. A non-transitory computer-readable medium, according to claim 10 , wherein the logical device is a thin logical device. 13. A non-transitory computer-readable medium, according to claim 10 , wherein entries in the replication data pointer table each include a pointer to specific data in the data pool and include a sequence number associated with the specific data. 14. A non-transitory computer-readable medium, according to claim 13 , wherein the entries i

Assignees

Inventors

Classifications

  • Disk arrays, e.g. RAID, JBOD · CPC title

  • G06F3/065Primary

    Replication mechanisms · CPC title

  • Improving or facilitating administration, e.g. storage management · CPC title

  • Physics · mapped topic

  • Management of the backup or restore process · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9965216B1 cover?
Providing snapshots for a logical device includes maintaining a global sequence number for the logical device, providing a snapshot table having a plurality of entries, where each of the entries corresponds to a targetless snapshot and includes a sequence number associated with a particular one of the targetless snapshots, the sequence number corresponding to the global sequence number at a tim…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/065. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 08 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).