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

Method and system for providing a static snapshot of data stored on a mass storage system

Assignee: EMC Corp
•
Filing: 1994-10-13
•
Granted: 1997-07-15
•
Expires: 2014-10-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method for providing a static snapshot, or image, of data stored on a mass storage system are disclosed. First, a preservation memory is cleared and a virtual device is created. Whenever a write is to be performed on the mass storage system, a check is made of the preservation memory to determine if it contains a block associated with the mass storage write address. If there is not, a copy of the block in the mass storage system at the block write address is placed in the preservation memory. Whenever a read is to be performed on the virtual device, a check is made of the preservation memory to determine if it contains a block associated with the virtual device read address. If there is such a block, that block is returned as the result of the virtual device read. Otherwise, the block at the virtual device block read address is returned as the result.

Inventors

  • 👤 Richard S. Ohran
  • 👤 Michael R. Ohran

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 19:27
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1446; G06F11/1448; G06F11/1451; G06F2201/00; G06F2201/84

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 393 words
A method for providing a static snapshot of data used by a computer configuration including: a digital computer executing the steps of the method; a mass storage system connected to said digital computer, said mass storage system storing blocks of data each located at a unique mass storage write address; and a preservation memory connected to said digital computer and used for storing a copy of any of said blocks of data, each of said copies being associated with one of said unique addresses; the method comprising the steps of: (A) clearing said preservation memory so that no copies of blocks of data are in said preservation memory; (B) creating a virtual device; (C) whenever a write operation to said mass storage system occurs, and said write operation specifies one of said unique write addresses for receiving at that unique address of the mass storage system a new block of data to be written to said mass storage system, then (1) if and only if there is not already found within the preservation memory a copy of a block of data associated with said unique mass storage write address, then placing in said preservation memory a copy of the block of data located in said mass storage system at said unique mass storage write address prior to writing the new block of data in said mass storage system at that same address; and (2) writing said new block of data to said mass storage system at the location specified by said unique mass storage write address only after the preceding step (1) has been performed at least once for a given unique mass storage write address; and (D) whenever a read operation to said virtual device occurs, and said read operation specifies a virtual device read address, then (1) if there is not a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said block of data associated with said virtual read address from said mass storage system; and (2) if there is a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said copy of the block of data associated with said virtual device read address in said preservation memory.
Claim 2
Independent Claim 393 words
A method for providing a static snapshot of data used by a computer configuration including: a digital computer executing the steps of the method; a mass storage system connected to said digital computer, said mass storage system storing blocks of data each located at a unique mass storage write address; and a preservation memory connected to said digital computer and used for storing a copy of any of said blocks of data, each of said copies being associated with one of said unique addresses; the method comprising the steps of: (A) clearing said preservation memory so that no copies of blocks of data are in said preservation memory; (B) creating a virtual device; (C) whenever a write operation to said mass storage system occurs, and said write operation specifies one of said unique write addresses for receiving at that unique address of the mass storage system a new block of data to be written to said mass storage system, then (1) if and only if there is not already found within the preservation memory a copy of a block of data associated with said unique mass storage write address, then placing in said preservation memory a copy of the block of data located in said mass storage system at said unique mass storage write address prior to writing the new block of data in said mass storage system at that same address; and (2) writing said new block of data to said mass storage system at the location specified by said unique mass storage write address only after the preceding step (1) has been performed at least once for a given unique mass storage write address; and (D) whenever a read operation to said virtual device occurs, and said read operation specifies a virtual device read address, then (1) if there is not a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said block of data associated with said virtual read address from said mass storage system; and (2) if there is a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said copy of the block of data associated with said virtual device read address in said preservation memory.
Claim 3
Dependent Claim 16 words
A method as in claim 1, wherein said mass storage system comprises one or more disks.
Claim 4
Dependent Claim 17 words
A method as in claim 1, wherein said mass storage system is a partition of a disk.
Claim 5
Dependent Claim 14 words
A method as in claim 1, wherein said preservation memory is a random-access memory.
Claim 6
Dependent Claim 15 words
A method as in claim 1, wherein said preservation memory is one or more disks.
Claim 7
Dependent Claim 16 words
A method as in claim 1, wherein said preservation memory is a partition of a disk.
Claim 8
Dependent Claim 18 words
A method as in claim 1, wherein said preservation memory is a file stored on mass storage system.
Claim 9
Dependent Claim 140 words
A method as in claim 1 further comprising the steps of: (E) whenever a write operation to said virtual device occurs, and said write operation specifies a virtual device write address and a new block of data to be written to said virtual device, then (1) if there is not a copy of a block of data associated with said virtual device write address in said preservation memory, placing in said preservation memory said new block of data to be written to said virtual device; and (2) if there is a copy of a block of data associated with said virtual device write address in said preservation memory, replacing in said preservation memory said copy of the block of data associated with said virtual device write address with said new block of data to be written to said virtual device.
Claim 10
Dependent Claim 59 words
A method as in claim 1 further comprising the steps of: (E) whenever a read operation to said mass storage system occurs, and said read operation specifies a unique mass storage read address, then returning as the result of said read operation a block of data located in said mass storage system at said unique mass storage read address.
Claim 11
Dependent Claim 35 words
A method as in claim 1, said computer configuration further including a block association memory, said block association memory used to associate said copies of blocks stored in said preservation memory with said unique addresses.
Claim 12
Dependent Claim 42 words
A method as in claim 10, wherein said block association memory contains entries, each entry indicating a unique address in said mass storage system and a location in said preservation memory of a copy of a block associated with said unique address.
Claim 13
Dependent Claim 34 words
A method as in claim 11, wherein said copies of blocks of data in said preservation memory are associated with a unique address by searching said block association memory entries for a matching address.
Claim 14
Dependent Claim 35 words
A method as in claim 12, wherein there is not a copy of a block of data associated with an address if there is no entry in said block association memory with a matching address.
Claim 15
Dependent Claim 23 words
A method as in claim 11, wherein said block association memory contains an entry for each unique address in said mass storage system.
Claim 16
Dependent Claim 48 words
A method as in claim 14, where a special value for said preservation memory location in one of said entries indicates that there is not a copy of a block of data in said preservation memory associated with the unique address indicated by said one of said entries.
Claim 17
Dependent Claim 24 words
A method as in claim 1, wherein said digital computer acts as a file server, and said virtual device is exported to other computers.
Claim 18
Dependent Claim 16 words
A method as in claim 16, wherein said mass storage system is exported to other computers.
Claim 19
Dependent Claim 347 words
A method as in claim 1, said computer configuration further including a second mass storage system storing blocks of data each located at a unique storage write address, and the method further comprising the steps of: (E) creating a second virtual device in addition to the virtual device created in step (B); (F) whenever a write operation to said second mass storage system occurs, and said write operation specifies a unique mass storage write address of the second mass storage system and a new block of data to be written to said second mass storage system, then (1) if and only if there is not already found within the preservation memory a copy of a block of data associated with said unique mass storage write address of the second mass storage system, then placing in said preservation memory a copy of the block of data located in said second mass storage system at said unique mass storage write address of the second mass storage system; and (2) writing said new block of data to said second mass storage system at the location specified by said unique mass storage write address of the second mass storage system only after the preceding step (F)(1) has been performed at least once for a given unique mass storage write address of the second mass storage system; and (G) whenever a read operation to said second virtual device occurs., and said read operation specifies a second virtual device read address, then (1) if there is not a copy of a block of data associated with said second virtual device read address in said preservation memory, then returning in response to said read operation said block of data associated with said second virtual device read address from said second mass storage system; and (2) if there is a copy of a block of data associated with said second virtual device read address in said preservation memory, then returning in response to said read operation said copy of the block of data associated with said second virtual device read address in said preservation memory.
Claim 20
Dependent Claim 304 words
A method as in claim 1, said computer configuration further including a second preservation memory, and the method further comprising the steps of: (E) creating a second virtual device in addition to the virtual device created in step (B); (F) whenever a write operation to said mass storage system occurs, and said write operation specifies a unique mass storage write address and a new block of data to be written to said unique mass storage system, then (1) if and only if there is not already found within the second preservation memory a copy of a block of data associated with said unique mass storage write address, then placing in said second preservation memory a copy of the block of data located in said mass storage system at said unique mass storage write address; and (2) writing said new block of data to said mass storage system at the location specified by said unique mass storage write address only after the preceding step (F)(1) has been performed at least once for a given unique mass storage write address; and (G) whenever a read operation to said second virtual device occurs, and said read operation specifies a second virtual device read address, then (1) if there is not a copy of a block of data associated with said second virtual device read address in said second preservation memory, then returning in response to said read operation said block of data associated with said second virtual read address from said mass storage system; and (2) if there is a copy of a block of data associated with said second virtual device read address in said second preservation memory, then returning in response to said read operation said copy of the block of data associated with said second virtual device read address in said second preservation memory.
Claim 21
Independent Claim 418 words
A system for providing a static snapshot of data comprising: a mass storage system for storing blocks of data each located at a unique mass storage write address; a preservation memory used for storing a copy of any of said blocks of data, each of said copies being associated with one of said unique addresses; and a digital computer connected to said mass storage system and to said preservation memory, said digital computer being programmed so as to comprise: (A) means for clearing said preservation memory so that no copies of blocks of data are in said preservation memory; (B) means for creating a virtual device; (C) means for creating a static snapshot of the data blocks of said mass storage system whenever a write operation to said mass storage system occurs, and said write operation specifies one of said unique write addresses for receiving at that unique address of the mass storage system a new block of data to be written to said mass storage system, by performing the steps of: (1) if and only if there is not already found within the preservation memory a copy of a block of data associated with said unique mass storage write address, then placing in said preservation memory a copy of the block of data located in said mass storage system at said unique mass storage write address prior to writing the new block of data in said mass storage system at that same address; and (2) writing said new block of data to said mass storage system at the location specified by said unique mass storage write address only after the preceding step (1) has been performed at least once for a given unique mass storage write address; and (D) means for outputting data blocks of the static snapshot whenever a read operation to said virtual device occurs, and said read operation specifies a virtual device read address, by performing the steps of: (1) if there is not a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said block of data associated with said virtual read address from said mass storage system; and (2) if there is a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said copy of the block of data associated with said virtual device read address in said preservation memory.
Claim 22
Independent Claim 418 words
A system for providing a static snapshot of data comprising: a mass storage system for storing blocks of data each located at a unique mass storage write address; a preservation memory used for storing a copy of any of said blocks of data, each of said copies being associated with one of said unique addresses; and a digital computer connected to said mass storage system and to said preservation memory, said digital computer being programmed so as to comprise: (A) means for clearing said preservation memory so that no copies of blocks of data are in said preservation memory; (B) means for creating a virtual device; (C) means for creating a static snapshot of the data blocks of said mass storage system whenever a write operation to said mass storage system occurs, and said write operation specifies one of said unique write addresses for receiving at that unique address of the mass storage system a new block of data to be written to said mass storage system, by performing the steps of: (1) if and only if there is not already found within the preservation memory a copy of a block of data associated with said unique mass storage write address, then placing in said preservation memory a copy of the block of data located in said mass storage system at said unique mass storage write address prior to writing the new block of data in said mass storage system at that same address; and (2) writing said new block of data to said mass storage system at the location specified by said unique mass storage write address only after the preceding step (1) has been performed at least once for a given unique mass storage write address; and (D) means for outputting data blocks of the static snapshot whenever a read operation to said virtual device occurs, and said read operation specifies a virtual device read address, by performing the steps of: (1) if there is not a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said block of data associated with said virtual read address from said mass storage system; and (2) if there is a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said copy of the block of data associated with said virtual device read address in said preservation memory.
Claim 23
Independent Claim 561 words
A method for providing a static snapshot of data used by a computer configuration including: a digital computer executing the steps of the method; a mass storage system connected to said digital computer, said mass storage system storing blocks of data each located at a unique mass storage write address; and a preservation memory connected to said digital computer and used for storing a copy of any of said blocks of data, each of said copies being associated with one of said unique addresses; the method comprising the steps of: (A) clearing said preservation memory so that no copies of blocks of data are in said preservation memory; (B) creating a virtual device; (C) whenever a write operation to said mass storage system occurs, and said write operation specifies one of said unique write addresses for receiving at that unique address of the mass storage system a new block of data to be written to said mass storage system, then (1) if and only if there is not already found within the preservation memory a copy of a block of data associated with said unique mass storage write address, then placing in said preservation memory a copy of the block of data located in said mass storage system at said unique mass storage write address prior to writing the new block of data in said mass storage system at that same address; and (2) writing said new block of data to said mass storage system at the location specified by said unique mass storage write address only after the preceding step (1) has been performed at least once for a given unique mass storage write address; and (D) whenever a read operation to said virtual device occurs, and said read operation specifies a virtual device read address, then (1) if there is not a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said block of data associated with said virtual read address from said mass storage system; (2) if there is a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said copy of the block of data associated with said virtual device read address in said preservation memory; (E) whenever a write operation to said virtual device occurs that specifies a virtual device write address and data to be written, performing the following: (1) if there is not a copy of a block of data associated with said virtual device write address in said preservation memory, placing in said preservation memory said new block of data to be written to said virtual device; and (2) if there is a copy of a block of data associated with said virtual device write address in said preservation memory, replacing in said preservation memory said copy of the block of data associated with said virtual device write address with said new block of data to be written to said virtual device; and (F) whenever a read operation to said mass storage system occurs, and said read operation specifies a unique mass storage read address, then returning as the result of said read operation a block of data located in said mass storage system at said unique mass storage read address.
Claim 24
Independent Claim 561 words
A method for providing a static snapshot of data used by a computer configuration including: a digital computer executing the steps of the method; a mass storage system connected to said digital computer, said mass storage system storing blocks of data each located at a unique mass storage write address; and a preservation memory connected to said digital computer and used for storing a copy of any of said blocks of data, each of said copies being associated with one of said unique addresses; the method comprising the steps of: (A) clearing said preservation memory so that no copies of blocks of data are in said preservation memory; (B) creating a virtual device; (C) whenever a write operation to said mass storage system occurs, and said write operation specifies one of said unique write addresses for receiving at that unique address of the mass storage system a new block of data to be written to said mass storage system, then (1) if and only if there is not already found within the preservation memory a copy of a block of data associated with said unique mass storage write address, then placing in said preservation memory a copy of the block of data located in said mass storage system at said unique mass storage write address prior to writing the new block of data in said mass storage system at that same address; and (2) writing said new block of data to said mass storage system at the location specified by said unique mass storage write address only after the preceding step (1) has been performed at least once for a given unique mass storage write address; and (D) whenever a read operation to said virtual device occurs, and said read operation specifies a virtual device read address, then (1) if there is not a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said block of data associated with said virtual read address from said mass storage system; (2) if there is a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said copy of the block of data associated with said virtual device read address in said preservation memory; (E) whenever a write operation to said virtual device occurs that specifies a virtual device write address and data to be written, performing the following: (1) if there is not a copy of a block of data associated with said virtual device write address in said preservation memory, placing in said preservation memory said new block of data to be written to said virtual device; and (2) if there is a copy of a block of data associated with said virtual device write address in said preservation memory, replacing in said preservation memory said copy of the block of data associated with said virtual device write address with said new block of data to be written to said virtual device; and (F) whenever a read operation to said mass storage system occurs, and said read operation specifies a unique mass storage read address, then returning as the result of said read operation a block of data located in said mass storage system at said unique mass storage read address.
Claim 25
Independent Claim 571 words
A system for providing a static snapshot of data comprising: digital computer for executing the steps Of a programmable method; a mass storage system connected to said digital computer, said mass storage system storing blocks of data each located at a unique mass storage write address; and a preservation memory connected to said digital computer and used for storing a copy of any of said blocks of data, each of said copies being associated with one of said unique addresses; and wherein the programmable method is comprised of the steps of: (A) clearing said preservation memory so that no copies of blocks of data are in said preservation memory; (B) creating a virtual device; (C) whenever a write operation to said mass storage system occurs, and said write operation specifies one of said unique write addresses for receiving at that unique address of the mass storage system a new block of data to be written to said mass storage system, then (1) if and only if there is not already found within the preservation memory a copy of a block of data associated with said unique mass storage write address, then placing in said preservation memory a copy of the block of data located in said mass storage system at said unique mass storage write address prior to writing the new block of data in said mass storage system at that same address; and (2) writing said new block of data to said mass storage system at the location specified by said unique mass storage write address only after the preceding step (1) has been performed at least once for a given unique mass storage write address; and (D) whenever a read operation to said virtual device occurs, and said read operation specifies a virtual device read address, then (1) if there is not a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said block of data associated with said virtual read address from said mass storage system; (2) if there is a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said copy of the block of data associated with said virtual device read address in said preservation memory; (E) whenever a write operation to said virtual device occurs, and said write operation specifies a virtual device write address and a new block of data to be written to said virtual device, then (1) if there is not a copy of a block of data associated with said virtual device write address in said preservation memory, placing in said preservation memory said new block of data to be written to said virtual device; and (2) if there is a copy of a block of data associated with said virtual device write address in said preservation memory, replacing in said preservation memory said copy of the block of data associated with said virtual device write address with said new block of data to be written to said virtual device; and (F) whenever a read operation to said mass storage system occurs, and said read operation specifies a unique mass storage read address, then returning as the result of said read operation a block of data located in said mass storage system at said unique mass storage read address.
Claim 26
Independent Claim 571 words
A system for providing a static snapshot of data comprising: digital computer for executing the steps Of a programmable method; a mass storage system connected to said digital computer, said mass storage system storing blocks of data each located at a unique mass storage write address; and a preservation memory connected to said digital computer and used for storing a copy of any of said blocks of data, each of said copies being associated with one of said unique addresses; and wherein the programmable method is comprised of the steps of: (A) clearing said preservation memory so that no copies of blocks of data are in said preservation memory; (B) creating a virtual device; (C) whenever a write operation to said mass storage system occurs, and said write operation specifies one of said unique write addresses for receiving at that unique address of the mass storage system a new block of data to be written to said mass storage system, then (1) if and only if there is not already found within the preservation memory a copy of a block of data associated with said unique mass storage write address, then placing in said preservation memory a copy of the block of data located in said mass storage system at said unique mass storage write address prior to writing the new block of data in said mass storage system at that same address; and (2) writing said new block of data to said mass storage system at the location specified by said unique mass storage write address only after the preceding step (1) has been performed at least once for a given unique mass storage write address; and (D) whenever a read operation to said virtual device occurs, and said read operation specifies a virtual device read address, then (1) if there is not a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said block of data associated with said virtual read address from said mass storage system; (2) if there is a copy of a block of data associated with said virtual device read address in said preservation memory, then returning in response to said read operation said copy of the block of data associated with said virtual device read address in said preservation memory; (E) whenever a write operation to said virtual device occurs, and said write operation specifies a virtual device write address and a new block of data to be written to said virtual device, then (1) if there is not a copy of a block of data associated with said virtual device write address in said preservation memory, placing in said preservation memory said new block of data to be written to said virtual device; and (2) if there is a copy of a block of data associated with said virtual device write address in said preservation memory, replacing in said preservation memory said copy of the block of data associated with said virtual device write address with said new block of data to be written to said virtual device; and (F) whenever a read operation to said mass storage system occurs, and said read operation specifies a unique mass storage read address, then returning as the result of said read operation a block of data located in said mass storage system at said unique mass storage read address.
Claim 27
Dependent Claim 255 words
In a computer system having a processor, a mass storage system for storing blocks of data in response to write operations, and a preservation memory means, a method of providing a static snapshot of the mass storage system at a particular point in time so that said static snapshot does not change even though the contents of said mass storage system change, the method comprising the steps of: clearing the preservation memory means so that the preservation memory means is ready to preserve data blocks of said mass storage system: preserving a snapshot of the mass storage system at a particular point in time by executing at least the following steps: (1) when a data block is to be over-written by a new data block at said same write address, checking said preservation memory means to determine if the data block specified by said address has already been stored in the preservation memory means; (2) if and only if said data block has already been stored in said preservation memory means, performing the over-write operation so that said new data block replaces the data block at said address; and (3) if the data block that is to be overwritten has not been already stored in said preservation memory means, preserving the data block by first copying said data block into said preservation memory means prior to performing the over-write operation, thereby permitting said mass storage system to be updated as each data block is preserved at a given snapshot moment in the preservation memory means.
Claim 28
Dependent Claim 255 words
In a computer system having a processor, a mass storage system for storing blocks of data in response to write operations, and a preservation memory means, a method of providing a static snapshot of the mass storage system at a particular point in time so that said static snapshot does not change even though the contents of said mass storage system change, the method comprising the steps of: clearing the preservation memory means so that the preservation memory means is ready to preserve data blocks of said mass storage system: preserving a snapshot of the mass storage system at a particular point in time by executing at least the following steps: (1) when a data block is to be over-written by a new data block at said same write address, checking said preservation memory means to determine if the data block specified by said address has already been stored in the preservation memory means; (2) if and only if said data block has already been stored in said preservation memory means, performing the over-write operation so that said new data block replaces the data block at said address; and (3) if the data block that is to be overwritten has not been already stored in said preservation memory means, preserving the data block by first copying said data block into said preservation memory means prior to performing the over-write operation, thereby permitting said mass storage system to be updated as each data block is preserved at a given snapshot moment in the preservation memory means.
Claim 29
Independent Claim 196 words
A system for providing a static snapshot of a mass storage system at a particular point in time so that said static snapshot does not change even though the contents of said mass storage system subsequently change, said system comprising: a mass storage system for storing a plurality of data blocks, each of said plurality of data blocks being specified by a unique write address; preservation memory means for storing the data blocks of said mass storage system so as to store a static snapshot of the mass storage system at a particular point in time; and processor means for (1) identifying whether each data block of said mass storage system has been preserved in said preservation memory means, for (2) ensuring that each data block of said mass storage system is copied to said preservation memory means the first time said data block is to be over-written by a new data block when said static snapshot of said mass storage system is taken, and for (3) writing a new data block to said mass storage system without first preserving said data block if said data block has already been preserved in said preservation memory means.
Claim 30
Independent Claim 196 words
A system for providing a static snapshot of a mass storage system at a particular point in time so that said static snapshot does not change even though the contents of said mass storage system subsequently change, said system comprising: a mass storage system for storing a plurality of data blocks, each of said plurality of data blocks being specified by a unique write address; preservation memory means for storing the data blocks of said mass storage system so as to store a static snapshot of the mass storage system at a particular point in time; and processor means for (1) identifying whether each data block of said mass storage system has been preserved in said preservation memory means, for (2) ensuring that each data block of said mass storage system is copied to said preservation memory means the first time said data block is to be over-written by a new data block when said static snapshot of said mass storage system is taken, and for (3) writing a new data block to said mass storage system without first preserving said data block if said data block has already been preserved in said preservation memory means.
Claim 31
Dependent Claim 282 words
An article of manufacture for use in a computer system comprising a processor, a mass storage means and a preservation memory means, said article of manufacture comprising: a computer readable medium for storing programmable code means thereon to be executed by said processor: and programmable code means stored on said computer readable medium for causing said processor to perform at least the following steps when the computer readable medium is used to program said processor; (A) clearing the preservation memory means so that the preservation memory means is ready to preserve data blocks of said mass storage system; (B) preserving each original data block which exists at a given snapshot moment and which is specified by a write address on said mass storage system by executing at least the following steps: (1) when an original data block is to be over-written by a new data block at said same write address, checking said preservation memory means to determine if the original data block specified by said address has already been stored in the preservation memory means; (2) if and only if said original data block has already been stored in said preservation memory means, performing the over-write operation so that said new data block replaces the data block at said address; and (3) if the original data block that is to be overwritten has not been already stored in said preservation memory means, preserving the original data block by first copying said original data block into said preservation memory means prior to performing the over-write operation, thereby permitting said mass storage system to be updated as each original data block is preserved at a given snapshot moment in the preservation memory means.
Claim 32
Dependent Claim 282 words
An article of manufacture for use in a computer system comprising a processor, a mass storage means and a preservation memory means, said article of manufacture comprising: a computer readable medium for storing programmable code means thereon to be executed by said processor: and programmable code means stored on said computer readable medium for causing said processor to perform at least the following steps when the computer readable medium is used to program said processor; (A) clearing the preservation memory means so that the preservation memory means is ready to preserve data blocks of said mass storage system; (B) preserving each original data block which exists at a given snapshot moment and which is specified by a write address on said mass storage system by executing at least the following steps: (1) when an original data block is to be over-written by a new data block at said same write address, checking said preservation memory means to determine if the original data block specified by said address has already been stored in the preservation memory means; (2) if and only if said original data block has already been stored in said preservation memory means, performing the over-write operation so that said new data block replaces the data block at said address; and (3) if the original data block that is to be overwritten has not been already stored in said preservation memory means, preserving the original data block by first copying said original data block into said preservation memory means prior to performing the over-write operation, thereby permitting said mass storage system to be updated as each original data block is preserved at a given snapshot moment in the preservation memory means.

References Cited (Backward Citations)

US3054560A Cited
US3303474A Cited
US3444528A Cited
US3557315A Cited
US3636331A Cited
US3544477A Cited
US3533082A Cited
US3665173A Cited
US3602900A Cited
US3623014A Cited
US3681578A Cited
US3735356A Cited
US3864670A Cited
US3760364A Cited
US3761884A Cited
US3810119A Cited
US3771137A Cited
US3725861A Cited
US3754211A Cited
US3865999A Cited
US4012717A Cited
US3812469A Cited
US3824547A Cited
US3810121A Cited
US3828321A Cited
US3803568A Cited
US3820085A Cited
US4099241A Cited
US3889237A Cited
US4073005A Cited
US3959638A Cited
US4164017A Cited
US4076961A Cited
US4051461A Cited
US4118772A Cited
US4159517A Cited
US4484275A Cited
US4378588A Cited
US4152764A Cited
US4358823A Cited
US4208715A Cited
US4191996A Cited
US4156901A Cited
US4141066A Cited
US4270167A Cited
US4228503A Cited
US4402046A Cited
US4282572A Cited
US4257009A Cited
US4359718A Cited
US4428044A Cited
US4471429A Cited
US4318173A Cited
US4430699A Cited
US4351023A Cited
US4477895A Cited
US4445214A Cited
US4455645A Cited
US4439859A Cited
US4480304A Cited
US4371754A Cited
US4380047A Cited
US4403286A Cited
US4628508A Cited
US4380067A Cited
US4403303A Cited
US4516121A Cited
US4423414A Cited
US4486826A Cited
US4453215A Cited
US4332027A Cited
US4654857A Cited
US4750177A Cited
US4434487A Cited
US4455601A Cited
US4477882A Cited
US4459658A Cited
US4562535A Cited
US4581701A Cited
US4483001A Cited
US4479214A Cited
US4507751A Cited
US4648031A Cited
US4498145A Cited
US4530051A Cited
US4589090A Cited
US4521847A Cited
US4652940A Cited
US4530052A Cited
US4648061A Cited
US4590554A Cited
US4654819A Cited
US4727516A Cited
US4604690A Cited
US4583089A Cited
US4639856A Cited
US4610013A Cited
US4607365A Cited
US4646300A Cited
US4639852A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-07-14 2001-01-13 2001-07-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-07-14 2005-01-13 2005-07-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-07-14 2009-01-13 2009-07-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag