Method and apparatus for managing a dynamic journal using the punch command

US9767111B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9767111-B1
Application numberUS-201113073391-A
CountryUS
Kind codeB1
Filing dateMar 28, 2011
Priority dateMar 28, 2011
Publication dateSep 19, 2017
Grant dateSep 19, 2017

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.

Example embodiments of the present invention leverage the punch command and thin LUNs in order to create a fully dynamic journal which can shrink and grow on demand. The journal may be assigned a maximum allowed size, as well as a journal protection window defining a period for which the journal should retain journal information. A set of currently used blocks will be used and, if protection window is large enough, the oldest data blocks from an undo stream will be punched out from the stream. A manager may monitor how much free space there is in the storage pool and regulate the journal growth if the pool is nearly empty. Additionally, the journal capacity may also depend on the actual usage of the replicated LUNs if the replicated LUNs are thin (i.e., maintain the journal at a particular percentage of the used storage capacity).

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: storing a plurality of journal data streams for a journal in thin-provisioned storage, the journal having a size defined by a first number of segments provided by one or more logical units provisioned for journal storage; monitoring fullness of the journal, wherein the fullness of the journal is defined by a relationship between the size of the journal as defined by the first number of segments and a second number of segments used by the journal to store journal data; and managing the size of the journal according to a policy, wherein the size of the journal is adjusted dynamically according to the policy as determined by the fullness of the journal, comprising deallocating logical units providing excess segments no longer used by the journal to store journal data based upon the fullness of the journal, and comprising deallocating logical units of the journal according to a determination of remaining available user physical storage space in a storage pool from which the journal is allocated. 2. The method of claim 1 wherein managing the size of the journal comprises increasing or decreasing the size of the journal according to the policy. 3. The method of claim 2 wherein the plurality of journal data streams comprises a DO stream and an UNDO stream each comprising linked lists of data blocks, and wherein decreasing the size of the journal according to the policy comprises using a punch command to erase data from blocks of the UNDO stream. 4. The method of claim 2 wherein increasing the size of the journal according to the policy comprises: defining a size of the journal; and writing data to unwritten portions of the journal. 5. The method of claim 1 wherein the size of the journal is managed according to a portion of a volume on which a user volume is stored. 6. The method of claim 1 wherein storing a plurality of journal data streams for a journal in thin-provisioned storage comprises storing the plurality of journal data streams for the journal in a plurality of thin provisioned logical units. 7. The method of claim 1 wherein the size of the journal is managed according to a journal protection window for which journal data is retained. 8. The method of claim 1 wherein the size of the journal is managed according to a minimum journal size and a maximum journal size. 9. An apparatus comprising: one or more processors; and memory storing instructions that, when executed on the one or more processors, cause the apparatus to: store a plurality of journal data streams for a journal in thin-provisioned storage, the journal having a size defined by a first number of segments provided by one or more logical units provisioned for journal storage; monitoring fullness of the journal, wherein the fullness of the journal is defined by a relationship between the size of the journal as defined by the first number of segments and a second number of segments used by the journal to store journal data; and manage the size of the journal according to a policy, wherein the size of the journal is adjusted dynamically according to the policy as determined by the fullness of the journal, comprising deallocating logical units providing excess segments no longer used by the journal to store journal data based upon the fullness of the journal, and comprising deallocating logical units of the journal according to a determination of remaining available user physical storage space in a storage pool from which the journal is allocated. 10. The apparatus of claim 9 wherein the memory further stores instructions that, when executed on the one or more processors, cause the apparatus to increase or decrease the size of the journal according to the policy. 11. The apparatus of claim 10 wherein the plurality of journal data streams comprises a DO stream and an UNDO stream each comprising linked lists of data blocks, and wherein the memory further stores instructions that, when executed on the one or more processors, cause the apparatus to decrease the size of the journal according to the policy by using a punch command to erase data from blocks of the UNDO stream. 12. The apparatus of claim 10 wherein the memory further stores instructions that, when executed on the one or more processors, cause the apparatus to increase the size of the journal according to the policy by defining a size of the journal and writing data to unwritten portions of the journal. 13. The apparatus of claim 9 wherein the memory further stores instructions that, when executed on the one or more processors, cause the apparatus to manage the size of the journal according to a portion of a volume on which a user volume is stored. 14. The apparatus of claim 9 wherein the memory further stores instructions that, when executed on the one or more processors, cause the apparatus to store the plurality of journal data streams for the journal in storage in a plurality of thin provisioned logical units. 15. The apparatus of claim 9 wherein the memory further stores instructions that, when executed on the one or more processors, cause the apparatus to manage the size of the journal according to a journal protection window for which journal data is retained. 16. The apparatus of claim 9 wherein the memory further stores instructions that, when executed on the one or more processors, cause the apparatus to manage the size of the journal according to a minimum journal size and a maximum journal size. 17. A computer program product including a non-transitory computer-readable storage medium encoded with computer program code that, when executed on a processor of a computer, causes the computer to manage a size of a journal, the computer program product comprising: computer program code for storing a plurality of journal data streams for a journal in thin-provisioned storage, the journal having a size defined by a first number of segments provided by one or more logical units provisioned for journal storage; computer program code for monitoring fullness of the journal, wherein the fullness of the journal is defined by a relationship between the size of the journal as defined by the first number of segments and a second number of segments used by the journal to store journal data; and computer program code for managing the size of the journal according to a policy, wherein the size of the journal is adjusted dynamically according to the policy as determined by the fullness of the journal, comprising deallocating logical units providing excess segments no longer used by the journal to store journal data based upon the fullness of the journal, and comprising deallocating logical units of the journal according to a determination of remaining available user physical storage space in a storage pool from which the journal is allocated.

Assignees

Inventors

Classifications

  • Redundant storage or storage space (G06F11/2056 takes precedence) · CPC title

  • Physics · mapped topic

  • Physics · mapped topic

  • Physics · mapped topic

  • Using snapshots, i.e. a logical point-in-time copy of the data · 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 US9767111B1 cover?
Example embodiments of the present invention leverage the punch command and thin LUNs in order to create a fully dynamic journal which can shrink and grow on demand. The journal may be assigned a maximum allowed size, as well as a journal protection window defining a period for which the journal should retain journal information. A set of currently used blocks will be used and, if protection wi…
Who is the assignee on this patent?
Natanzon Assaf, Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/2094. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 19 2017 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).