← Back to Patent Explorer
US6748504B2 Expired / Lapsed US ⏱️ 0.0 years remaining

Deferred copy-on-write of a snapshot

Assignee: International Business Machines Corp
•
Filing: 2002-02-15
•
Granted: 2004-06-08
•
Expires: 2022-02-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system, method and computer readable medium for deferring copy-on-write of a snapshot is disclosed. The method includes the generation of snapshot of a source file. Upon modification of a first data block referenced by the source file, the first data block is referenced by the snapshot and a second data block is allocated for the source file. Then, a first variable associated with the source file is set to a value indicating an incomplete source file data block and a second variable associated with the source file is set to a value indicating the valid portion of the second data block. Any portion of the second data block that is overwritten is considered valid. The second data block is then modified and the second variable is changed to reflect the modification. Upon reception of a read request, the corresponding portion of the second data block is retrieved.

Inventors

  • 👤 Wayne A. Sawdon
  • 👤 Frank B. Schmuck

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 19:03
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1402; G06F11/1415; G06F11/1435; G06F11/1446; G06F11/1458; G06F11/1466; G06F11/1469; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/061; G06F3/0628; G06F3/0646; G06F3/065; G06F3/0668; G06F3/067; G06F2201/00; G06F2201/84; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 39
Claim 1
Independent Claim 92 words
A method for deferring copy-on-write, comprising: generating a snapshot including a source file; referencing in the snapshot, upon modification of a first data block associated with the source file, the first data block; allocating a second data block for the source file; assigning a value to a first variable associated with the source file, wherein the value indicates the lack of a complete source file data block; and assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the second data block.
Claim 2
Independent Claim 92 words
A method for deferring copy-on-write, comprising: generating a snapshot including a source file; referencing in the snapshot, upon modification of a first data block associated with the source file, the first data block; allocating a second data block for the source file; assigning a value to a first variable associated with the source file, wherein the value indicates the lack of a complete source file data block; and assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the second data block.
Claim 3
Dependent Claim 31 words
The method of claim 1 , further comprising: allowing modification of the second data block; and modifying the value of the second variable to reflect modification of the second data block.
Claim 4
Dependent Claim 112 words
The method of claim 2 , further comprising: receiving a read request for the source file, wherein the read request refers to a portion of the source file; determining from the value of the first variable associated with the source file whether there is a complete source file data block; wherein if there is the complete source file data block, then retrieving the second data block associated with the source file; and wherein if there is not the complete source file data block, then determining from the second variable associated with the source file whether the requested portion of the source file corresponds to a valid portion of the second data block.
Claim 5
Dependent Claim 101 words
The method of claim 3 , further comprising: wherein if the requested portion of the source file corresponds to a valid portion of the second data block, then retrieving the requested portion of the source file from the second data block; and wherein if the requested portion of the source file corresponds to a portion of the second data block that is not valid, then copying to the second data block a portion of the first data block which was requested and found to be not valid and retrieving the copied portion of the source file from the second data block.
Claim 6
Dependent Claim 48 words
The method of claim 1 , further comprising: allowing complete modification of the second data block; modifying the value of the second variable to reflect complete validation of the second data block; and modifying the value of the first variable to reflect a complete source file data block.
Claim 7
Dependent Claim 126 words
The method of claim 5 , further comprising: receiving a read request for the source file, wherein the read request refers to a portion of the source file; determining from the value of the first variable associated with the source file whether there is a complete source file data block; wherein if there is a complete source file data block, then retrieving the second data block associated with the source file; and wherein if there is not a complete source file data block, then determining from the second variable associated with the source file that the requested portion of the source file corresponds to a valid portion of the second data block and retrieving the requested portion of the source file from the second data block.
Claim 8
Independent Claim 111 words
A method for deferring copy-on-write, comprising: generating a snapshot including a source file; referencing in the snapshot, upon modification of at least one data block associated with the source file, an indirect block associated with the source file, wherein the indirect block references at least one data block; allocating at least one data block for the source file; assigning a value to a first variable associated with the source file, wherein the value indicates incomplete data blocks associated with the source file; and assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the data blocks associated with the source file.
Claim 9
Independent Claim 111 words
A method for deferring copy-on-write, comprising: generating a snapshot including a source file; referencing in the snapshot, upon modification of at least one data block associated with the source file, an indirect block associated with the source file, wherein the indirect block references at least one data block; allocating at least one data block for the source file; assigning a value to a first variable associated with the source file, wherein the value indicates incomplete data blocks associated with the source file; and assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the data blocks associated with the source file.
Claim 10
Independent Claim 102 words
A system for deferring copy-on-write, comprising: means for generating a snapshot including a source file; means for referencing in the snapshot, upon modification of a first data block associated with the source file, the first data block; means for allocating a second data block for the source file; means for assigning a value to a first variable associated with the source file, wherein the value indicates the lack of a complete source file data block; and means for assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the second data block.
Claim 11
Independent Claim 102 words
A system for deferring copy-on-write, comprising: means for generating a snapshot including a source file; means for referencing in the snapshot, upon modification of a first data block associated with the source file, the first data block; means for allocating a second data block for the source file; means for assigning a value to a first variable associated with the source file, wherein the value indicates the lack of a complete source file data block; and means for assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the second data block.
Claim 12
Dependent Claim 35 words
The system of claim 8 , further comprising: means for allowing modification of the second data block; and means for modifying the value of the second variable to reflect modification of the second data block.
Claim 13
Dependent Claim 97 words
The system of claim 9 , further comprising: means for receiving a read request for the source file, wherein the read request refers to a portion of the source file; means for determining from the value of the first variable associated with the source file whether there is a complete source file data block; means for retrieving the second data block associated with the source file; and means for determining from the second variable associated with the source file whether the requested portion of the source file corresponds to a valid portion of the second data block.
Claim 14
Dependent Claim 62 words
The system of claim 10 , further comprising: means for retrieving the requested portion of the source file from the second data block; and means for copying to the second data block a portion of the first data block which was requested and found to be not valid and retrieving the copied portion of the source file from the second data block.
Claim 15
Dependent Claim 54 words
The system of claim 8 , further comprising: means for allowing complete modification of the second data block; means for modifying the value of the first variable to reflect a complete source file data block; and means for modifying the value of the second variable to reflect complete validation of the second data block.
Claim 16
Dependent Claim 113 words
The system of claim 12 , further comprising: means for receiving a read request for the source file, wherein the read request refers to a portion of the source file; means for determining from the value of the first variable associated with the source file whether there is a complete source file data block; means for retrieving the second data block associated with the source file; and means for determining from the second variable associated with the source file that the requested portion of the source file corresponds to a valid portion of the second data block and means for retrieving the requested portion of the source file from the second data block.
Claim 17
Independent Claim 121 words
A system for deferring copy-on-write, comprising: means for generating a snapshot including a source file; means for referencing in the snapshot, upon modification of at least one data block associated with the source file, an indirect block associated with the source file, wherein the indirect block references at least one data block; means for allocating at least one data block for the source file; means for assigning a value to a first variable associated with the source file, wherein the value indicates incomplete data blocks associated with the source file; and means for assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the data blocks associated with the source file.
Claim 18
Independent Claim 121 words
A system for deferring copy-on-write, comprising: means for generating a snapshot including a source file; means for referencing in the snapshot, upon modification of at least one data block associated with the source file, an indirect block associated with the source file, wherein the indirect block references at least one data block; means for allocating at least one data block for the source file; means for assigning a value to a first variable associated with the source file, wherein the value indicates incomplete data blocks associated with the source file; and means for assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the data blocks associated with the source file.
Claim 19
Dependent Claim 102 words
A computer readable medium including computer instructions for deferring copy-on-write, the computer instructions comprising instructions for: generating a snapshot including a source file; referencing in the snapshot, upon modification of a first data block associated with the source file, the first data block; allocating a second data block for the source file; assigning a value to a first variable associated with the source file, wherein the value indicates the lack of a complete source file data block; and assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the second data block.
Claim 20
Dependent Claim 102 words
A computer readable medium including computer instructions for deferring copy-on-write, the computer instructions comprising instructions for: generating a snapshot including a source file; referencing in the snapshot, upon modification of a first data block associated with the source file, the first data block; allocating a second data block for the source file; assigning a value to a first variable associated with the source file, wherein the value indicates the lack of a complete source file data block; and assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the second data block.
Claim 21
Dependent Claim 38 words
The computer readable medium of claim 15 , the computer instructions further comprising instructions for: allowing modification of the second data block; and modifying the value of the second variable to reflect modification of the second data block.
Claim 22
Dependent Claim 119 words
The computer readable medium of claim 16 , the computer instructions further comprising instructions for: receiving a read request for the source file, wherein the read request refers to a portion of the source file; determining from the value of the first variable associated with the source file whether there is a complete source file data block; wherein if there is the complete source file data block, then retrieving the second data block associated with the source file; and wherein if there is not the complete source file data block, then determining from the second variable associated with the source file whether the requested portion of the source file corresponds to a valid portion of the second data block.
Claim 23
Dependent Claim 105 words
The computer readable medium of claim 17 , further comprising instructions for: wherein if the requested portion of the source file corresponds to a valid portion of the second data block, then retrieving the requested portion of the source file from the second data block; and wherein if the requested portion of the source file corresponds to a portion of the second data block that is not valid, then copying to the second data block a portion of the first data block which was requested and found to be not valid and retrieving the copied portion of the source file from the second data block.
Claim 24
Dependent Claim 55 words
The computer readable medium of claim 15 , the computer instructions further comprising instructions for: allowing complete modification of the second data block; modifying the value of the first variable to reflect a complete source file data block; and modifying the value of the second variable to reflect complete validation of the second data block.
Claim 25
Dependent Claim 130 words
The computer readable medium of claim 19 , further comprising instructions for: receiving a read request for the source file, wherein the read request refers to a portion of the source file; determining from the value of the first variable associated with the source file whether there is a complete source file data block; wherein if there is a complete source file data block, then retrieving the second data block associated with the source file; and wherein if there is not a complete source file data block, then determining from the second variable associated with the source file that the requested portion of the source file corresponds to a valid portion of the second data block and retrieving the requested portion of the source file from the second data block.
Claim 26
Dependent Claim 121 words
A computer readable medium including computer instructions for deferring copy-on-write, the computer instructions comprising instructions for: generating a snapshot including a source file; referencing in the snapshot, upon modification of at least one data block associated with the source file, an indirect block associated with the source file, wherein the indirect block references at least one data block; allocating at least one data block for the source file; assigning a value to a first variable associated with the source file, wherein the value indicates incomplete data blocks associated with the source file; and assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the data blocks associated with the source file.
Claim 27
Dependent Claim 121 words
A computer readable medium including computer instructions for deferring copy-on-write, the computer instructions comprising instructions for: generating a snapshot including a source file; referencing in the snapshot, upon modification of at least one data block associated with the source file, an indirect block associated with the source file, wherein the indirect block references at least one data block; allocating at least one data block for the source file; assigning a value to a first variable associated with the source file, wherein the value indicates incomplete data blocks associated with the source file; and assigning a value to a second variable associated with the source file, wherein the value indicates a valid portion of the data blocks associated with the source file.
Claim 28
Independent Claim 99 words
A system for deferring copy-on-write, comprising: a snapshot including a source file; a reference to a first data block associated with the source file, the reference within the snapshot, wherein the reference is generated upon modification of the first data block; a second data block for the source file; a first variable associated with the source file, wherein a value of the first variable indicates the lack of a complete source file data block; and a second variable associated with the source file, wherein a value of the second variable indicates a valid portion of the second data block.
Claim 29
Independent Claim 99 words
A system for deferring copy-on-write, comprising: a snapshot including a source file; a reference to a first data block associated with the source file, the reference within the snapshot, wherein the reference is generated upon modification of the first data block; a second data block for the source file; a first variable associated with the source file, wherein a value of the first variable indicates the lack of a complete source file data block; and a second variable associated with the source file, wherein a value of the second variable indicates a valid portion of the second data block.
Claim 30
Dependent Claim 27 words
The system of claim 22 , further comprising: a read request for the source file, wherein the read request refers to a portion of the source file.
Claim 31
Independent Claim 119 words
A system for deferring copy-on-write, comprising: a snapshot including a source file; a reference to an indirect block associated with the source file, the reference in the snapshot, wherein the indirect block references at least one data block associated with the source file and wherein the reference is generated upon modification of at least one data block; at least one data block for the source file; a first variable associated with the source file, wherein a value of the first variable indicates incomplete data blocks associated with the source file; and a second variable associated with the source file, wherein a value of the second variable indicates a valid portion of the data blocks associated with the source file.
Claim 32
Independent Claim 119 words
A system for deferring copy-on-write, comprising: a snapshot including a source file; a reference to an indirect block associated with the source file, the reference in the snapshot, wherein the indirect block references at least one data block associated with the source file and wherein the reference is generated upon modification of at least one data block; at least one data block for the source file; a first variable associated with the source file, wherein a value of the first variable indicates incomplete data blocks associated with the source file; and a second variable associated with the source file, wherein a value of the second variable indicates a valid portion of the data blocks associated with the source file.
Claim 33
Independent Claim 128 words
A method for deferring copy-on-write, comprising: generating a snapshot including a source file; referencing in the snapshot, upon modification of at least one of a first plurality of data blocks associated with the source file, the at least one data block being modified; allocating a data block for the source file; assigning a value to a first variable associated with the source file, wherein the value indicates incomplete data blocks associated with the source file; and assigning a value to each of a plurality of variables, wherein each of the plurality of variables is associated with one of the plurality of data blocks associated with the source file and wherein the value of each of the plurality of variables indicates a valid portion of the corresponding data block.
Claim 34
Independent Claim 128 words
A method for deferring copy-on-write, comprising: generating a snapshot including a source file; referencing in the snapshot, upon modification of at least one of a first plurality of data blocks associated with the source file, the at least one data block being modified; allocating a data block for the source file; assigning a value to a first variable associated with the source file, wherein the value indicates incomplete data blocks associated with the source file; and assigning a value to each of a plurality of variables, wherein each of the plurality of variables is associated with one of the plurality of data blocks associated with the source file and wherein the value of each of the plurality of variables indicates a valid portion of the corresponding data block.
Claim 35
Independent Claim 66 words
A method for deferring copy-on-write, comprising: generating a snapshot including a source file; referencing in the snapshot, upon modification of a first data block associated with the source file, the first data block; allocating a second data block for the source file; and assigning a value to a variable associated with the source file, wherein the value indicates a valid portion of the second data block.
Claim 36
Independent Claim 66 words
A method for deferring copy-on-write, comprising: generating a snapshot including a source file; referencing in the snapshot, upon modification of a first data block associated with the source file, the first data block; allocating a second data block for the source file; and assigning a value to a variable associated with the source file, wherein the value indicates a valid portion of the second data block.
Claim 37
Dependent Claim 30 words
The method of claim 26 , further comprising: allowing modification of the second data block; and modifying the value of the variable to reflect modification of the second data block.
Claim 38
Dependent Claim 107 words
The method of claim 27 , further comprising: receiving a read request for the source file, wherein the read request refers to a portion of the source file; determining from the value of the variable associated with the source file whether the second data block is completely valid; wherein if the second data block is completely valid, then retrieving the second data block associated with the source file; and wherein if the second data block is not completely valid, then determining from the variable associated with the source file whether the requested portion of the source file corresponds to a valid portion of the second data block.
Claim 39
Dependent Claim 101 words
The method of claim 28 , further comprising: wherein if the requested portion of the source file corresponds to a valid portion of the second data block, then retrieving the requested portion of the source file from the second data block; and wherein if the requested portion of the source file corresponds to a portion of the second data block that is not valid, then copying to the second data block a portion of the first data block which was requested and found to be not valid and retrieving the copied portion of the source file from the second data block.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2007-06-08 2007-12-08 2008-06-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2011-06-08 2011-12-08 2012-06-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2015-06-08 2015-12-08 2016-06-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag